SIMPLE WG M. Isomaki
Internet-Draft E. Leppanen
Expires: April 22, 2005 Nokia
October 22, 2004
An Extensible Markup Language (XML) Configuration Access Protocol
(XCAP) Usage for Manipulating Presence Document Contents
draft-ietf-simple-xcap-pidf-manipulation-usage-02
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 April 22, 2005.
Copyright Notice
Copyright (C) The Internet Society (2004).
Abstract
This document describes a usage of the Extensible Markup Language
(XML) Configuration Access Protocol (XCAP) for manipulating the
contents of Presence Information Data Format (PIDF) based presence
document. It is intended to be used in Session Initiation Protocol
(SIP) based presence systems, where the Event State Compositor can
use the XCAP-manipulated presence document as one of the inputs on
Isomaki & Leppanen Expires April 22, 2005 [Page 1]
Internet-Draft XCAP Usage for Manipulating Presence Document October 2004
which it builds the overall presence state for the presentity.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Relationship with Presence State Published Using SIP
PUBLISH . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Application Usage ID . . . . . . . . . . . . . . . . . . . . 6
5. Structure of Manipulated Presence Information . . . . . . . 6
6. Additional Constraints . . . . . . . . . . . . . . . . . . . 6
7. Resource Interdependencies . . . . . . . . . . . . . . . . . 6
8. Naming Conventions . . . . . . . . . . . . . . . . . . . . . 6
9. Authorization Policies . . . . . . . . . . . . . . . . . . . 6
10. Example Document . . . . . . . . . . . . . . . . . . . . . . 6
11. Security Considerations . . . . . . . . . . . . . . . . . . 8
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . 8
12.1 XCAP Application Usage ID . . . . . . . . . . . . . . . 8
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
14.1 Normative References . . . . . . . . . . . . . . . . . . . 9
14.2 Informative References . . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 10
Intellectual Property and Copyright Statements . . . . . . . 11
Isomaki & Leppanen Expires April 22, 2005 [Page 2]
Internet-Draft XCAP Usage for Manipulating Presence Document October 2004
1. Introduction
The Session Initiation Protocol (SIP) for Instant Messaging and
Presence (SIMPLE) specifications allow a user, called a watcher, to
subscribe to another user, called a presentity, in order to learn
their presence information [7]. The presence data model has been
specified in [10]. The data model makes a clean separation between
person, service and device related information.
A SIP based mechanism, SIP PUBLISH method, has been defined for
publishing presence state [4]. Using SIP PUBLISH a Presence User
Agent (PUA) can publish its view of the presence state, independently
of and without the need to learn about the states set by other PUAs.
However, SIP PUBLISH has a limited scope and does not address all the
requirements for setting presence state. The main issue is that SIP
PUBLISH creates a soft state which expires after the negotiated
lifetime unless it is refreshed. This makes it unsuitable for cases
where the state should prevail without active devices capable of
refreshing the state.
There are three main use cases where setting of permanent presence
state that is independent of activeness of any particular device is
useful. The first case concerns setting person related state. The
presentity would often like to set its presence state even for
periods when it has no active devices capable of publishing
available. Good examples are traveling, vacations and so on. The
second case is about setting state for services that are open for
communication even if the presentity does not have a device running
that service on-line. Examples of this kind of services include
e-mail, MMS and SMS. In these services the presentity is provisioned
with a server that makes the service persistently available, at least
in certain form, and it would be good to be able to advertise this to
the watchers. Since it is not realistic to assume that all e-mail,
MMS or SMS servers can publish presence state on their own (and even
if this were possible, such state would almost never change), this
has to be done by some other device - and since the availability of
the service is not dependent on that device, it would be unpractical
to require that device to be constantly active just to publish such
availability. The third case concerns setting the default state of
person, any service or any device in the absence of any device
capable of actively publishing such state. For instance the
presentity might want to advertise that his or her voice service is
right now closed, just to let the watchers to know that such service
might be open at some point. Again, this type of default state is
independent of any particular device, and can be considered to be
rather persistent.
Even though SIP PUBLISH remains to be the main way of publishing
Isomaki & Leppanen Expires April 22, 2005 [Page 3]
Internet-Draft XCAP Usage for Manipulating Presence Document October 2004
presence state in SIMPLE based presence systems and is espcially well
suited for publishing dynamic state (which presence mainly is), it
needs to be complemented by the mechanism described in this document
to address the use cases presented above.
XML Configuration Access Protocol (XCAP) [2] allows a client to read,
write and modify application configuration data, stored in XML format
on a server. The data has no expiration time, so it must be
explicitly inserted and deleted. The protocol allows multiple
clients to manipulate the data, provided that they are authorized to
do so. XCAP is already used in SIMPLE based presence systems for
manipulation of presence lists and presence authorization policies.
This makes XCAP an ideal choice for doing device independent presence
document manipulation.
This document defines an XML Configuration Access Protocol (XCAP)
application usage for manipulating the contents of presence document.
Presence Information Document Format (PIDF) [3] is used as the
presence document format, since event state compositor already has to
support it, as it is used in SIP PUBLISH.
Section 3 describes in more detail how the presence document
manipulated with XCAP is related to soft state publishing done with
SIP PUBLISH.
XCAP requires application usages to standardize several pieces of
information, including a unique application usage ID (AUID), and an
XML schema for the manipulated data. These are specified starting
from Section 4.
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.
Comprehensive terminology of presence and event state publishing is
provided in Session Initiation Protocol (SIP) Extension for Event
State Publication [4].
3. Relationship with Presence State Published Using SIP PUBLISH
The framework for publishing presence state is described in Figure 1.
A central part of the framework is the event state compositor element
whose function is to compose presence information received from
several sources into a single coherent presence document.
Isomaki & Leppanen Expires April 22, 2005 [Page 4]
Internet-Draft XCAP Usage for Manipulating Presence Document October 2004
The presence state manipulated with XCAP can be seen as one of the
information sources for the compositor to be combined with the soft
state information published using SIP PUBLISH. This is illustrated
in Figure 1. It is expected that in the normal case there can be
several PUAs publishing their separate views with SIP PUBLISH, but
only a single XCAP manipulated presence document. As shown in the
figure, there can be multiple XCAP clients (for instance in different
physical devices) manipulating the same document on the XCAP server,
but this still creates only one input to the event state compositor.
As individual inputs the presence states set by XCAP and SIP PUBLISH
are completely separated and it is not possible to directly
manipulate the state set by one mechanism with the other. How the
compositor treats XCAP based inputs with respect to SIP PUBLISH based
inputs is a matter of compositor policy, which is beyond the scope of
this specification. Since the SIP PUBLISH specification already
mandates the compositor to be able to construct the overall presence
state from multiple inputs which may contain non-orthogonal (or in
some ways even conflicting) information, this XCAP usage does not
impose any new requirements on the compositor functionality.
+---------------+ +------------+
| Event State | | Presence |<-- SIP SUBSCRIBE
| Compositor +---------+ Agent |--> SIP NOTIFY
| | | (PA) |
+-------+-------+ +------------+
^ ^ ^
| | |
| | | +---------------+
+--------+ | +-------| XCAP server |
| | +-------+-------+
| | ^ ^
| SIP Publish | | XCAP |
| | | |
+--+--+ +--+--+ +-------+ +-------+
| PUA | | PUA | | XCAP | | XCAP |
| | | | | client| | client|
+-----+ +-----+ +-------+ +-------+
Figure 1: Framework for Presence Publishing and Event State
Composition
The protocol interface between XCAP server and the event state
compositor is not specified here.
Isomaki & Leppanen Expires April 22, 2005 [Page 5]
Internet-Draft XCAP Usage for Manipulating Presence Document October 2004
4. Application Usage ID
XCAP requires application usages to define a unique application usage
ID (AUID) in either the IETF tree or a vendor tree. This
specification defines the 'pidf-manipulation' AUID within the IETF
tree, via the IANA registration in the Section 12.
5. Structure of Manipulated Presence Information
The XML Schema of the presence information (PIDF) is defined in CPIM
Presence Information Data Format [3]. The PIDF also defines a
mechanism for extending presence information. See [8], [9], [11] and
[12] for currently defined PIDF extensions and their XML Schemas.
The namespace URI for PIDF is 'urn:ietf:params:xml:ns:pidf'.
6. Additional Constraints
There are no constraints on the document beyond those described in
the XML schemas (PIDF and its extensions) and in the description of
CPIM PIDF [3].
7. Resource Interdependencies
There are no resource interdependencies beyond the possible
interdependencies defined in CPIM PIDF [3] and XCAP [2] that need to
be defined for this application usage.
8. Naming Conventions
There are no naming conventions beyond the possible conventions
defined in CPIM PIDF [3] that need to be defined for this application
usage.
9. Authorization Policies
This application usage does not modify the default XCAP authorization
policy, which allows only a user (owner) to read, write or modify
their own documents. A server can allow privileged users to modify
documents that they do not own, but the establishment and indication
of such policies is outside the scope of this document.
10. Example Document
The section provides an example of presence document provided by an
XCAP Client to an XCAP Server. The presence document illustrates the
situation where a (human) presentity has left for vacation, and
before that has set his presence information such that he is only
Isomaki & Leppanen Expires April 22, 2005 [Page 6]
Internet-Draft XCAP Usage for Manipulating Presence Document October 2004
available via e-mail. In the absence of any published soft state
information, this would be the sole input to the compositor forming
the presence document. The example document contain PIDF extensions
specified in RPID: Rich Presence Extensions to the Presence
Information Data Format (PIDF) [8] and CIPID: Contact Information in
Presence Information Data Format [9].
First, the presence document is created.
PUT http://xcap.example.com/services/pidf-manipulation/users/someone/pidf.xml
HTTP/1.1
Content type:appliation/pidf+xml
closed
auth-1
sip:user@example.com
I'm available only by e-mail.
2004-02-06T16:49:29Z
open
auth-1
mailto:someone@example.com
I'm reading mail a couple of times a week
auth-A
http://www.example.com/~someone
Vacation
Isomaki & Leppanen Expires April 22, 2005 [Page 7]
Internet-Draft XCAP Usage for Manipulating Presence Document October 2004
HTTP/1.1 201 Created
Etag: "xyz"
Next, the note concerning the e-mail is changed.
PUT http://xcap.example.com/services/pidf-manipulation/users/someone/pidf.xml
/~~/presence/tuple%5b@id=%228eg92n%22%5d/note HTTP/1.1
If-Match: "xyz"
Content type:appliation/xcap-el+xml
I'm reading mails on Tuesdays and Fridays
HTTP/1.1 200 OK
Etag:"xyzz"
11. Security Considerations
A presence document may contain information that is highly sensitive.
Its delivery to watchers needs to happen strictly according to the
relevant authorization policies. It is also important that only
authorized clients are able to manipulate the presence information.
The XCAP base specification mandates that all XCAP servers MUST
implement HTTP Digest authentication specified in RFC 2617 [5].
Furthermore, XCAP servers MUST implement HTTP over TLS [6]. It is
recommended that administrators of XCAP servers use an HTTPS URI as
the XCAP root services URI, so that the digest client authentication
occurs over TLS. By using these means, XCAP client and server can
ensure the confidentiality and integrity of the XCAP presence
document manipulation operations, and that only authorized clients
are allowed to perform them.
12. IANA Considerations
There is an IANA consideration associated with this specification.
12.1 XCAP Application Usage ID
This section registers a new XCAP Application Usage ID (AUID)
Isomaki & Leppanen Expires April 22, 2005 [Page 8]
Internet-Draft XCAP Usage for Manipulating Presence Document October 2004
according to the IANA procedures defined in [2].
Name of the AUID: pidf-manipulation
Description: Pidf-manipulation application usage defines how XCAP is
used to manipulate the contents of PIDF based presence documents.
13. Acknowledgements
The authors would like to thank Jonathan Rosenberg, Hisham Khartabil,
Aki Niemi, Mikko Lonnfors, Oliver Biot, Alex Audu, Krisztian Kiss,
Jose Costa-Requena, George Foti and Paul Kyzivat for their comments.
14. References
14.1 Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[2] Rosenberg, J., "The Extensible Markup Language (XML)
Configuration Access Protocol (XCAP)",
draft-ietf-simple-xcap-03 (work in progress), July 2004.
[3] Sugano, H., "CPIM presence information data format",
draft-ietf-impp-cpim-pidf-08, May 2003.
[4] Niemi, A., "An Event State Publication Extension for Session
Initiation Protocol (SIP)", draft-ietf-sip-publish-04.txt, May
2004.
[5] Franks, J., "HTTP Authentication: Basic and Digest Access
Authentication", RFC 2617, June 1999.
[6] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.
14.2 Informative References
[7] Rosenberg, J., "A Presence Event Package for the Session
Initiation Protocol (SIP)", RFC 3856, August 2004.
[8] Schulzrinne, H., "RPID: Rich Presence Extensions to the
Presence Information Data Format (PIDF)",
draft-ietf-simple-rpid-03.txt (work in progress), March 2004.
[9] Schulzrinne, H., "CIPID: Contact Information in Presence
Information Data Format", draft-ietf-simple-cipid-03.txt (work
in progress), July 2004.
Isomaki & Leppanen Expires April 22, 2005 [Page 9]
Internet-Draft XCAP Usage for Manipulating Presence Document October 2004
[10] Rosenberg, J., "A Data Model for Presence",
draft-ietf-simple-presence-data-model-00 (work in progress),
September 2004.
[11] Lonnfors, M., "User Agent Capability Extension to Presence
Information Data Format (PIDF)",
draft-ietf-simple-prescaps-ext-01 (work in progress), May 2004.
[12] Schulzrinne, H., "Timed Presence Extensions to the Presence
Information Data Format (PIDF) to Indicate Presence Information
for Past and Future Time Intervals",
draft-ietf-simple-future-02 (work in progress), July 2004.
Authors' Addresses
Markus Isomaki
Nokia
P.O.BOX 100
00045 NOKIA GROUP
Finland
Phone:
EMail: markus.isomaki@nokia.com
Eva Leppanen
Nokia
P.O BOX 785
33101 Tampere
Finland
Phone:
EMail: eva-maria.leppanen@nokia.com
Isomaki & Leppanen Expires April 22, 2005 [Page 10]
Internet-Draft XCAP Usage for Manipulating Presence Document October 2004
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 (2004). 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.
Isomaki & Leppanen Expires April 22, 2005 [Page 11]