| Abstract: | This document specifies a set of XMPP extensions that provide support for extended presence information. Note: This document has been retracted since its functionality is handled by XEP-0163. |
| Author: | Peter Saint-Andre |
| Copyright: | © 1999 - 2013 XMPP Standards Foundation. SEE LEGAL NOTICES. |
| Status: | Retracted |
| Type: | Standards Track |
| Version: | 0.8 |
| Last Updated: | 2006-08-08 |
WARNING: This document has been retracted by the author(s). Implementation of the protocol described herein is not recommended. Developers desiring similar functionality are advised to implement the protocol that supersedes this one (if any).
1. Introduction
2. Background
3. Requirements
4. Extended Presence Protocol Suite
5. Node Discovery
6. Security Considerations
7. IANA Considerations
8. XMPP Registrar Considerations
Appendices
A: Document Information
B: Author Information
C: Legal Notices
D: Relation to XMPP
E: Discussion Venue
F: Requirements Conformance
G: Notes
H: Revision History
Note: This document has been retracted since its functionality is handled by Personal Eventing Protocol [1].
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 RFC 2778 [2]), 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 XMPP IM [3]. 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: Publish-Subscribe [4]. 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 Basic IM Protocol Suite [5]. 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:
Table 1: Required and Recommended Specifications
| Specification | Requirement Level |
|---|---|
| XEP-0073: Basic IM Protocol Suite | REQUIRED (prerequisite) |
| XEP-0163: Personal Eventing via Pubsub | REQUIRED (prerequisite) |
| User Geolocation [7] | REQUIRED |
| User Physical Location [8] | REQUIRED |
| User Activity [9] | REQUIRED |
| User Mood [10] | REQUIRED |
| User Avatar [11] | 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 the Internet Assigned Numbers Authority (IANA) [12].
This document requires no interaction with the XMPP Registrar [13].
Series: XEP
Number: 0119
Publisher: XMPP Standards Foundation
Status:
Retracted
Type:
Standards Track
Version: 0.8
Last Updated: 2006-08-08
Approving Body: XMPP Council
Dependencies: XMPP Core, XMPP IM, XEP-0060, XEP-0073, XEP-0080, XEP-0084, XEP-0107, XEP-0108, XEP-0112, XEP-0163
Supersedes: None
Superseded By: XEP-0163
Short Name: N/A
Source Control:
HTML
This document in other formats:
XML
PDF
Email:
stpeter@jabber.org
JabberID:
stpeter@jabber.org
URI:
https://stpeter.im/
The Extensible Messaging and Presence Protocol (XMPP) is defined in the XMPP Core (RFC 6120) and XMPP IM (RFC 6121) specifications contributed by the XMPP Standards Foundation to the Internet Standards Process, which is managed by the Internet Engineering Task Force in accordance with RFC 2026. Any protocol defined in this document has been developed outside the Internet Standards Process and is to be understood as an extension to XMPP rather than as an evolution, development, or modification of XMPP itself.
The primary venue for discussion of XMPP Extension Protocols is the <standards@xmpp.org> discussion list.
Discussion on other xmpp.org discussion lists might also be appropriate; see <http://xmpp.org/about/discuss.shtml> for a complete list.
Errata can be sent to <editor@xmpp.org>.
The following requirements keywords as used in this document are to be interpreted as described in RFC 2119: "MUST", "SHALL", "REQUIRED"; "MUST NOT", "SHALL NOT"; "SHOULD", "RECOMMENDED"; "SHOULD NOT", "NOT RECOMMENDED"; "MAY", "OPTIONAL".
1. XEP-0163: Personal Eventing Protocol <http://xmpp.org/extensions/xep-0163.html>.
2. RFC 2778: A Model for Presence and Instant Messaging <http://tools.ietf.org/html/rfc2778>.
3. RFC 6121: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence <http://tools.ietf.org/html/rfc6121>.
4. XEP-0060: Publish-Subscribe <http://xmpp.org/extensions/xep-0060.html>.
5. XEP-0073: Basic IM Protocol Suite <http://xmpp.org/extensions/xep-0073.html>.
6. XEP-0001: XMPP Extension Protocols <http://xmpp.org/extensions/xep-0001.html>.
7. XEP-0080: User Geolocation <http://xmpp.org/extensions/xep-0080.html>.
8. XEP-0112: User Physical Location <http://xmpp.org/extensions/xep-0112.html>.
9. XEP-0108: User Activity <http://xmpp.org/extensions/xep-0108.html>.
10. XEP-0107: User Mood <http://xmpp.org/extensions/xep-0107.html>.
11. XEP-0084: User Avatar <http://xmpp.org/extensions/xep-0084.html>.
12. The Internet Assigned Numbers Authority (IANA) is the central coordinator for the assignment of unique parameter values for Internet protocols, such as port numbers and URI schemes. For further information, see <http://www.iana.org/>.
13. The XMPP Registrar maintains a list of reserved protocol namespaces as well as registries of parameters used in the context of XMPP extension protocols approved by the XMPP Standards Foundation. For further information, see <http://xmpp.org/registrar/>.
Note: Older versions of this specification might be available at http://xmpp.org/extensions/attic/
Retracted: superseded by Personal Eventing via Pubsub (XEP-0163).
(psa)Updated to reflect Personal Eventing via Pubsub (XEP-0163).
(psa)Added avatar support to required protocols.
(psa)Further defined the pubsub/disco interaction.
(psa)Removed text on auto-subscribe functionality.
(psa)Added introduction and background; defined well-known service discovery node for extended presence information; described auto-subscribe functionality.
(psa)Status changed to Deferred.
(psa)Initial version.
(psa)END