%ents; ]>
Extended Presence Protocol Suite This document specifies a set of XMPP extensions that provide support for extended presence information. &LEGALNOTICE; 0119 Retracted Standards Track Standards XMPP Core XMPP IM XEP-0060 XEP-0073 XEP-0080 XEP-0084 XEP-0107 XEP-0108 XEP-0112 XEP-0163 XEP-0163 N/A &stpeter; 0.8 2006-08-08 psa

Retracted: superseded by Personal Eventing via Pubsub (XEP-0163).

0.7 2006-01-19 psa

Updated to reflect Personal Eventing via Pubsub (XEP-0163).

0.6 2005-03-28 psa

Added avatar support to required protocols.

0.5 2004-07-22 psa

Further defined the pubsub/disco interaction.

0.4 2004-05-12 psa

Removed text on auto-subscribe functionality.

0.3 2004-05-11 psa

Added introduction and background; defined well-known service discovery node for extended presence information; described auto-subscribe functionality.

0.2 2003-11-24 psa

Status changed to Deferred.

0.1 2003-09-08 psa

Initial version.

A number of network services enable the exchange of information about an entity's availability for communications over the network. This information is usually called "presence". Examples include a person's availability to talk over a traditional or mobile telephony network, chat over an instant messaging (IM) network, or participate in a video conference. In this core sense, presence is a boolean, "on/off" indicator of network availability.

Over time, this core notion of presence has been extended to include other information about the entity that either (1) changes quickly or (2) affects the entity's interest in or ability to engage in communications. Examples of such "extended presence" include a person's proximity to or interaction with a user agent (e.g., "away" or "do not disturb"), activity (e.g., "driving"), ambient environment (e.g., "noisy"), and mood (e.g., "grumpy"). Related information includes data about the person's available devices (e.g., "phone" or "IM"), current contact modes or address, and date/time ranges for availability. Because extended presence information can change quite often (e.g., several times in the course of a typical IM session), it is distinct from more stable information about the individual (such as is captured in a vCard or other user profile).

This document describes a unified approach to the provision and communication of extended presence information using the Extensible Messaging and Presence Protocol (XMPP), in the form of a "protocol suite" that incorporates by reference a number of existing XMPP extensions.

XMPP began life as a dedicated instant messaging and presence protocol within the Jabber community. The needs of this community were not advanced (simple IM and presence), and the presence model designed by that community mainly takes account of basic presence only (i.e., on/off availability on an IM network). Within this model (and using the terminology of &rfc2778;), the only watchers are those in the principal's contact list (in XMPP called a "roster"). In addition, authorization to receive basic presence broadcasts is handled by the principal through a combination of roster management and basic presence subscriptions as defined in &xmppim;. The presence service is tied to the principal's session with a server, and the server's internal session manager handles both presence and instant messaging functionality (although IM and presence can be separated in system configuration or "on the fly" via negative presence priorities).

This basic presence model was not designed for the more advanced world of extended presence. While some existing IM clients publish extended presence information as XML extensions to the XMPP &PRESENCE; stanza, that model does not scale well, does not respect the bandwidth restrictions of many clients on the network, and does not provide for more granular control over information access (anyone who receives presence will also receive geolocation data and the like). However, there is a more advanced protocol that is specially designed to fully implement the publish-subscribe design pattern on top of XMPP, specified in XEP-0060: &xep0060;. The publish-subscribe protocol can be used to create a service that provides full control over each type of extended presence data, sending that data only to those specifically authorized to receive it and those who have an active interest in each extension. In particular, for extended presence related to IM users, we specify the use of the personal eventing subset of XEP-0060, as defined in XEP-0163.

The provision and communication of extended presence information follows the classic publish-subscribe design pattern: an individual publishes information such as geographical location data, and the data is broadcasted to all subscribers who are authorized to receive that data. (Alternatively, the data can be published on behalf of the individual, such as by a mobile telephony service that has knowledge of the individual's geographical location and authorization to act as a publisher of that data.) In general, the relationship between the publisher and subscriber is mediated by a service that receives publication requests, broadcasts data to subscribers, and enables the individual to manage lists of entities that are authorized to publish or subscribe to the data. This model makes it possible to deploy highly flexible extended presence services within the context of XMPP.

The following diagram provides a schematic representation of such a service.

Mobile XMPP Telephony Principal Session Service | Manager |__________ ________|_________ __________| | | | | | | | | |1| |2| |3| |4| |5| |6| +-------------------------+ | | | Extended Presence | | Service | | | +-------------------------+ |1| |2| |3| |4| |5| |6| |___| |_| | _______|_ | | || | | Sub Sub Sub Sub Sub

In this example, there are six different extended presence nodes (these might be, for example, geographical location, avatar, activity, mood, network availability, etc.). The principal is authorized to publish to all six, a Mobile Telephony Service is also authorized to publish to Node 1 (e.g., geolocation), and an XMPP Session Manager is also authorized to publish to Node 6 (e.g., network availability). There are five subscribers: Subscriber 1 is authorized to receive data from Node 1 and Node 2, Subscriber 2 is authorized to Node 2 and Node 3, Subscriber 3 is authorized to receive data from Node 4 and Node 6, and Subscribers 4 and 5 are authorized to receive data from Node 6 only.

This document follows the same approach as &xep0073;. By design, the Basic IM Protocol Suite does not include more advanced functionality related to "extended presence"; the present document fills the need for a protocol suite that addresses such functionality.

A protocol is deemed worthy of inclusion in this protocol suite if:

We define the Extended Presence Protocol Suite as follows:

Specification Requirement Level
XEP-0073: Basic IM Protocol Suite REQUIRED (prerequisite)
XEP-0163: Personal Eventing via Pubsub REQUIRED (prerequisite)
&xep0080; REQUIRED
&xep0112; REQUIRED
&xep0108; REQUIRED
&xep0107; REQUIRED
&xep0084; REQUIRED *

* Note: The User Avatar specification (XEP-0084) has not yet advanced to a status of Draft within the XSF's standards process, and the Extended Presence Protocol Suite will not be submitted for approval until it does so.

Discovery of extended presence pubsub nodes is expedited through the use of Personal Eventing via Pubsub (PEP), since in PEP services there is a one-to-one relationship between payload types and NodeIDs. The NodeIDs MUST be as follows:

These nodes SHOULD have an access model of either "presence" or "roster".

This document introduces no new security considerations above and beyond those defined in the documents on which it depends. Because publicly exposing some forms of extended presence information (e.g., geolocation information) may lead to unnecessary risks, care should be taken in setting the access model for the relevant pubsub nodes (minimally, an access model of "presence" to take advantage of the bidirectional authorization scheme inherent in XMPP presence subscriptions).

This document requires no interaction with &IANA;.

This document requires no interaction with the ®ISTRAR;.