One document matched: draft-ietf-simple-partial-pidf-format-04.txt
Differences from draft-ietf-simple-partial-pidf-format-03.txt
SIMPLE WG M. Lonnfors
Internet-Draft E. Leppanen
Expires: August 5, 2005 Nokia
H. Khartabil
Telio
J. Urpalainen
Nokia Research Center
February 2005
Presence Information Data format (PIDF) Extension for Partial
Presence
draft-ietf-simple-partial-pidf-format-04
Status of this Memo
This document is an Internet-Draft and is subject to all provisions
of Section 3 of RFC 3667. By submitting this Internet-Draft, each
author represents that any applicable patent or other IPR claims of
which he or she is aware have been or will be disclosed, and any of
which he or she become aware will be disclosed, in accordance with
RFC 3668.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as
Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on August 5, 2005.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
The Presence Information Document Format (PIDF) specifies the
Lonnfors, et al. Expires August 5, 2005 [Page 1]
Internet-Draft Partial PIDF February 2005
baseline XML based format for describing presence information. One
of the characteristic of the PIDF is that document always needs to
carry all presence information available for the presentity. In some
environments where low bandwidth and high latency links can exist it
is often beneficial to limit the amount of transported information
over the network. This document introduces a new MIME type which
enables transporting of either only the changed parts or the full
PIDF based presence information.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Structure of PIDF diff documents . . . . . . . . . . . . . . 3
3.1 'version' attribute . . . . . . . . . . . . . . . . . . . 4
3.2 'entity' attribute . . . . . . . . . . . . . . . . . . . . 4
4. Usage of 'application/pidf-diff+xml' . . . . . . . . . . . . 4
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . 5
5.1 Content-type registration for
'application/pidf-diff+xml' . . . . . . . . . . . . . . . 5
5.2 URN sub-namespace registration for
'urn:ietf:params:xml:ns:pidf-diff' . . . . . . . . . . . . 6
5.3 XML Schema Registration . . . . . . . . . . . . . . . . . 7
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 7
7. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . 11
8. Interoperability Considerations . . . . . . . . . . . . . . 12
9. Security Considerations . . . . . . . . . . . . . . . . . . 12
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 12
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
11.1 Normative references . . . . . . . . . . . . . . . . . . 13
11.2 Informative references . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 14
Intellectual Property and Copyright Statements . . . . . . . 15
Lonnfors, et al. Expires August 5, 2005 [Page 2]
Internet-Draft Partial PIDF February 2005
1. Introduction
The Presence Information Document Format (PIDF) [3] specifies the
baseline XML based format for describing presence information. One
of the characteristic of the PIDF is that document always needs to
carry all presence information available for the presentity. In some
environments where low bandwidth and high latency links can exist, it
is often beneficial to limit the amount of transported information
over the network.
This document introduces a new MIME-Type 'application/pidf-diff+xml'
which enables transporting of either only the changed parts or the
full PIDF based presence information. The root element of the
document distinguishes whether the partial or full PIDF document
content was transported.
2. Conventions
In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" are to be interpreted as described in RFC 2119 [1] and
indicate requirement levels for compliant implementations.
This memo makes use of the vocabulary defined in RFC2778 [2]. In
addition, the following terms are defined:
Full presence document: A presence document that contains all the
presentity's presence information that is available to a
particular watcher.
Partial presence document: A presence document that represents a
fragment of the full presence document. A partial presence
documents can only be understood in the context of the full
presence document, i.e. a partial presence document modifies a
local copy of the full presence document.
3. Structure of PIDF diff documents
A new MIME type 'application/pidf-diff+xml' defines this content
type.
The XML Schema imports the PIDF [3] schema so that the full PIDF
document content with the addition of a 'version' attribute can be
transported. The root element of the document is then <pidf-full>
and the 'version' attribute information is included within it.
Otherwise the content of <pidf-full> element is exactly the same than
what would have been if 'application/pidf+xml' content type had been
Lonnfors, et al. Expires August 5, 2005 [Page 3]
Internet-Draft Partial PIDF February 2005
used. Although the XML Schema allows using also <presence> as the
document root element it is disallowed from applications utilizing
this content type.
When only the changes of the presence document are transported, the
model described in XML patch operations [7] is used. The root
element of the document is then <pidf-diff>. The patch operation
elements: <add>, <remove> and <replace> allow changing the fragments
of the local copy of the full presence document. The <add> element
is used to add new content, the <replace> element updates and the
<remove> element removes existing content.
The 'version' attribute within the two possible document root
elements contains a sequence number that is progressively incremented
by one between subsequent document updates, i.e. a more recent
document update has a higher 'version' value than the previous one.
This is used to ensure consistent updates as the recipient of the
document can use the 'version' number to properly order received
documents. This number increments independently regardless of
whether the <pidf-full> or <pidf-diff> content is transported.
Implementations using this document format must follow guidelines
specified in the PIDF [3]. Specifically, the XML document MUST be
well formed and SHOULD be valid. Presence documents MUST be based on
XML 1.0 and MUST be encoded using UTF-8. This specification makes
use of XML namespaces for identifying presence documents and document
fragments. The namespace URI for elements defined by this
specification is a URN [4], using the namespace identifier 'ietf'
specified in RFC 2648 [5] and extended by RFC3688 [6]. This URN is:
urn:ietf:params:xml:ns:pidf-diff
3.1 'version' attribute
Every presence document compliant with this specification contains a
'version' attribute within the <pidf-diff> and <pidf-full> element.
3.2 'entity' attribute
Every presence document compliant with this specification can contain
an 'entity' attribute within the <pidf-diff> element. It's content
MUST then be the same than that of the full presence document.
4. Usage of 'application/pidf-diff+xml'
The partial presence document SHOULD only contain those elements or
attributes that have changed. However, when there are a lot of
queued changes the full presence document content can then be
Lonnfors, et al. Expires August 5, 2005 [Page 4]
Internet-Draft Partial PIDF February 2005
transported instead.
5. IANA Considerations
This memo calls for IANA to:
o register a new XML namespace URN per [6].
o register a new content type 'application/pidf-diff+xml' per
RFC2048 [10].
o register a new XML Schema URN per [6].
5.1 Content-type registration for 'application/pidf-diff+xml'
MIME media type name: application
MIME subtype name: pidf-diff+xml
Mandatory parameters: none
Optional parameters: charset
Indicates the character encoding of enclosed XML. Default is
UTF-8.
Encoding considerations:
Uses XML, which can employ 8-bit characters, depending on the
character encoding used. See RFC 3023 [8], section 3.2.
Security considerations:
This content type is designed to carry presence data, which may be
considered private information. Appropriate precautions should be
adopted to limit disclosure of this information. Please refer to
[[[RFCXXXX]]] security considerations section for more
information.
Interoperability considerations: none
Published specification: [[[RFCXXXX]]]
Applications which use this media type: SIP-based presence systems
Additional information:
Magic Number: None
File Extension: .xml
Lonnfors, et al. Expires August 5, 2005 [Page 5]
Internet-Draft Partial PIDF February 2005
Macintosh file type code: "TEXT"
Personal and email address for further information: Mikko
Lonnfors, mikko.lonnfors@nokia.com
Intended usage: LIMITED USE
Author/Change controller:
This specification is a work item of the IETF SIMPLE working
group, with mailing list address <simple@ietf.org>.
5.2 URN sub-namespace registration for
'urn:ietf:params:xml:ns:pidf-diff'
URI:
urn:ietf:params:xml:ns:pidf-diff
Description:
This is the XML namespace for XML elements defined by
[[[RFCXXXX]]] to describe the 'application/pidf-diff+xml' content
type for partial PIDF.
Registrant Contact:
IETF, SIMPLE working group, <simple@ietf.org>
Mikko Lonnfors, <mikko.lonnfors@nokia.com>
XML:
BEGIN
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml
<head>
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/>
<title>PIDF extension for partial PIDF</title>
</head>
<body>
<h1>Namespace for PIDF extension for partial
notifications</h1>
<h2>urn:ietf:params:xml:ns:pidf-diff</h2>
<p>See <a href="[[[URL of published RFC]]]">
RFCXXXX</a>.</p>
</body>
</html>
END
Lonnfors, et al. Expires August 5, 2005 [Page 6]
Internet-Draft Partial PIDF February 2005
5.3 XML Schema Registration
This section registers a new XML Schema.
URI:
urn:ietf:params:xml:schema:pidf-diff
Registrant Contact:
IETF, SIMPLE working group, <simple@ietf.org>
Mikko Lonnfors, <mikko.lonnfors@nokia.com>
6. Examples
An 'application/pidf-diff+xml' document that contains the full state
presence information:
<?xml version="1.0" encoding="UTF-8"?>
<p:pidf-full xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:p="urn:ietf:params:xml:ns:pidf-diff"
xmlns:r="urn:ietf:params:xml:ns:pidf:rpid"
xmlns:c="urn:ietf:params:xml:ns:pidf:caps"
entity="pres:someone@example.com"
version="567">
<tuple id="sg89ae">
<status>
<basic>open</basic>
<r:relationship>assistant</r:relationship>
</status>
<c:servcaps>
<c:audio>true</c:audio>
<c:video>false</c:video>
<c:message>true</c:message>
</c:servcaps>
<contact priority="0.8">tel:09012345678</contact>
</tuple>
<tuple id="cg231jcr">
<status>
<basic>open</basic>
</status>
<contact priority="1.0">im:pep@example.com</contact>
</tuple>
<tuple id="r1230d">
<status>
<basic>closed</basic>
Lonnfors, et al. Expires August 5, 2005 [Page 7]
Internet-Draft Partial PIDF February 2005
<r:activity>meeting</r:activity>
</status>
<r:homepage>http://example.com/~pep/</r:homepage>
<r:icon>http://example.com/~pep/icon.gif</r:icon>
<r:card>http://example.com/~pep/card.vcd</r:card>
<contact priority="0.9">sip:pep@example.com</contact>
</tuple>
<note xml:lang="en">Full state presence document</note>
<r:person>
<r:status>
<r:activities>
<r:on-the-phone/>
<r:busy/>
</r:activities>
</r:status>
</r:person>
<r:device id="urn:esn:600b40c7">
<r:status>
<c:devcaps>
<c:mobility>
<c:supported>
<c:mobile/>
</c:supported>
</c:mobility>
</c:devcaps>
</r:status>
</r:device>
</p:pidf-full>
An example partial update document with the <pidf-diff> root
element:
Lonnfors, et al. Expires August 5, 2005 [Page 8]
Internet-Draft Partial PIDF February 2005
<?xml version="1.0" encoding="UTF-8"?>
<p:pidf-diff xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:p="urn:ietf:params:xml:ns:pidf-diff"
xmlns:r="urn:ietf:params:xml:ns:pidf:rpid"
entity="pres:someone@example.com"
version="568">
<p:add sel="presence/note" pos="before"><tuple id="ert4773">
<status>
<basic>open</basic>
</status>
<contact priority="0.4">mailto:pep@example.com</contact>
<note xml:lang="en">This is a new tuple inserted
between the last tuple and note element</note>
</tuple>
</p:add>
<p:replace sel="*/tuple[@id='r1230d']/status/basic/text()"
>open</p:replace>
<p:remove sel="*/r:person/r:status/r:activities/r:busy"/>
<p:replace sel="*/tuple[@id='cg231jcr']/contact/@priority"
>0.7</p:replace>
</p:pidf-diff>
An updated local composition presence document after applying the
patches:
<?xml version="1.0" encoding="UTF-8"?>
<p:pidf-full xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:p="urn:ietf:params:xml:ns:pidf-diff"
xmlns:r="urn:ietf:params:xml:ns:pidf:rpid"
xmlns:c="urn:ietf:params:xml:ns:pidf:caps"
entity="pres:someone@example.com"
version="568">
<tuple id="sg89ae">
<status>
<basic>open</basic>
<r:relationship>assistant</r:relationship>
</status>
<c:servcaps>
<c:audio>true</c:audio>
<c:video>false</c:video>
Lonnfors, et al. Expires August 5, 2005 [Page 9]
Internet-Draft Partial PIDF February 2005
<c:message>true</c:message>
</c:servcaps>
<contact priority="0.8">tel:09012345678</contact>
</tuple>
<tuple id="cg231jcr">
<status>
<basic>open</basic>
</status>
<contact priority="0.7">im:pep@example.com</contact>
</tuple>
<tuple id="r1230d">
<status>
<basic>open</basic>
</status>
<r:homepage>http://example.com/~pep/</r:homepage>
<r:icon>http://example.com/~pep/icon.gif</r:icon>
<r:card>http://example.com/~pep/card.vcd</r:card>
<contact priority="0.9">sip:pep@example.com</contact>
</tuple>
<tuple id="ert4773">
<status>
<basic>open</basic>
</status>
<contact priority="0.4">mailto:pep@example.com</contact>
<note xml:lang="en">This is a new tuple inserted
between the last tuple and note element</note>
</tuple>
<note xml:lang="en">Full state presence document</note>
<r:person>
<r:status>
<r:activities>
<r:on-the-phone/>
</r:activities>
</r:status>
</r:person>
<r:device id="urn:esn:600b40c7">
<r:status>
<c:devcaps>
<c:mobility>
<c:supported>
<c:mobile/>
</c:supported>
Lonnfors, et al. Expires August 5, 2005 [Page 10]
Internet-Draft Partial PIDF February 2005
</c:mobility>
</c:devcaps>
</r:status>
</r:device>
</p:pidf-full>
7. XML Schema
The XML schema for the 'application/pidf-diff+xml' data format. The
included schema "patch-ops.xsd" is defined in [7] and the PIDF Schema
"pidf.xsd" is imported from [3].
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
targetNamespace="urn:ietf:params:xml:ns:pidf-diff"
xmlns:tns="urn:ietf:params:xml:ns:pidf-diff"
xmlns:pidf="urn:ietf:params:xml:ns:pidf"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xsd:include schemaLocation="patch-ops.xsd"/>
<xsd:import namespace="urn:ietf:params:xml:ns:pidf"
schemaLocation="pidf.xsd"/>
<xsd:element name="pidf-diff">
<xsd:complexType>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:choice>
<xsd:element name="add" type="tns:add"/>
<xsd:element name="replace" type="tns:replace"/>
<xsd:element name="remove" type="tns:remove"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="version" type="xsd:unsignedInt"
use="required"/>
<xsd:attribute name="entity" type="xsd:anyURI"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="pidf-full">
<xsd:complexType>
<xsd:complexContent>
Lonnfors, et al. Expires August 5, 2005 [Page 11]
Internet-Draft Partial PIDF February 2005
<xsd:extension base="pidf:presence">
<xsd:attribute name="version" type="xsd:unsignedInt"
use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:schema>
8. Interoperability Considerations
Systems compliant with CPP [9] will not be by default able to use
this specification. However, this will not cause any
interoperability problems because all endpoints and gateways must
support the default MIME type (application/pidf+xml) regardless if
they support this specification. Thus if a gateway or another end
point does not understand this specification it will not be used. In
SIMPLE based systems use of this MIME type is nagotiated using SIP
contect type nagotiation mechanism as specified in partial
notification [14].
Other CPP compliant (other than SIP based) systems can also support
this specification if they have a mechanism to indicate support for
it. If they do it is possible to build a gateway which will preserve
end-to-end integrity with usage of partial PIDF.
9. Security Considerations
All security considerations identified for PIDF [3] apply unchanged
for this document as presence information may contain highly
sensitive information. In addition, once the partial content is
transformed, a malicious man-in-the-middle MAY easily mess up the
patching process. The protocol used to distribute this content
SHOULD ensure privacy, message integrity and authentication.
Furthermore, the protocol should provide access controls which
restrict who can see who else's presence information.
10. Acknowledgments
The authors would like to thank Jose Costa-Requena, Jyrki Aarnos,
Jonathan Rosenberg, Dean Willis, Miguel Garcia, Krisztian Kiss, Ben
Cambell, Robert Sparks, Anders Kristenssen and Aki Niemi for their
valuable comments and contributions.
Lonnfors, et al. Expires August 5, 2005 [Page 12]
Internet-Draft Partial PIDF February 2005
11. References
11.1 Normative references
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[2] Day, M., Rosenberg, J. and H. Sugano, "A Model for Presence and
Instant Messaging", RFC 2778, February 2000.
[3] Sugano, H., "CPIM presence information data format", RFC 3863,
May 2003.
[4] Moats, R., "URN syntax", RFC 2141, May 1997.
[5] Moats, R., "A URN namespace for IETF documents", RFC 2648, Aug.
1999.
[6] Mealling, M., "The IETF XML Registry", RFC 3688, BCP 81, January
2004.
[7] Urpalainen, J., "An Extensible Markup Language (XML) Patch
Operations Framework Utilizing XML Path Language (XPath)
Selectors", draft-urpalainen-simple-xml-patch-ops-00, March
2005.
11.2 Informative references
[8] Murata, M., "XML media types", RFC 3023, January 2001.
[9] Peterson, J., "Common Profile for Presence (CPP)", RFC 3859.
[10] Freed, N., Klensin, J. and J. Postel, "Multipurpose Internet
Mail Extensions (MIME) Part Four: Registration Procedures",
RFC 2048, November 1996.
[11] Rosenberg, J., "A Data Model for Presence",
draft-ietf-simple-presence-data-model-02 (work in progress),
February 2005.
[12] Schulzrinne, H., Gurbani, V., Kyzivat, P. and J. Rosenberg,
"RPID: Rich Presence Extensions to the Presence Information
Data Format (PIDF)", draft-ietf-simple-rpid-05 (work in
progress), February 2004.
[13] Schulzrinne, H., "CIPID: Contact Information in Presence
Information Data Format", draft-ietf-simple-cipid-03 (work in
progress), July 2004.
Lonnfors, et al. Expires August 5, 2005 [Page 13]
Internet-Draft Partial PIDF February 2005
[14] Lonnfors, M., Costa-Requena, J., Leppanen, E. and H. Khartabil,
"Session Initiation Protocol (SIP) extension for Partial
Notification of Presence Information",
draft-ietf-simple-partial-notify-04 (work in progress),
February 2005.
Authors' Addresses
Mikko Lonnfors
Nokia
Itamerenkatu 11-13 00180
Helsinki
Finland
Phone: +358 71 8008000
Email: mikko.lonnfors@nokia.com
Eva Leppanen
Nokia
P.O BOX 785
Tampere
Finland
Phone: +358 7180 77066
Email: eva-maria.leppanen@nokia.com
Hisham Khartabil
Telio
P.O. Box 1203 Vika
Oslo
Norway
Phone: +47 2167 3544
Email: hisham.khartabil@telio.no
Jari Urpalainen
Nokia Research Center
Itamerenkatu 11-13 00180
Helsinki
Finland
Phone: +358 7180 37686
Email: jari.urpalainen@nokia.com
Lonnfors, et al. Expires August 5, 2005 [Page 14]
Internet-Draft Partial PIDF February 2005
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The Internet Society (2005). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Lonnfors, et al. Expires August 5, 2005 [Page 15]
| PAFTECH AB 2003-2026 | 2026-04-23 03:32:25 |