mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-13 21:05:09 -05:00
182 lines
12 KiB
XML
182 lines
12 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<!DOCTYPE xep SYSTEM 'xep.dtd' [
|
|
<!ENTITY % ents SYSTEM 'xep.ent'>
|
|
%ents;
|
|
]>
|
|
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
|
|
<xep>
|
|
<header>
|
|
<title>Extended Presence Protocol Suite</title>
|
|
<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.</abstract>
|
|
&LEGALNOTICE;
|
|
<number>0119</number>
|
|
<status>Retracted</status>
|
|
<type>Standards Track</type>
|
|
<sig>Standards</sig>
|
|
<dependencies>
|
|
<spec>XMPP Core</spec>
|
|
<spec>XMPP IM</spec>
|
|
<spec>XEP-0060</spec>
|
|
<spec>XEP-0073</spec>
|
|
<spec>XEP-0080</spec>
|
|
<spec>XEP-0084</spec>
|
|
<spec>XEP-0107</spec>
|
|
<spec>XEP-0108</spec>
|
|
<spec>XEP-0112</spec>
|
|
<spec>XEP-0163</spec>
|
|
</dependencies>
|
|
<supersedes/>
|
|
<supersededby>
|
|
<spec>XEP-0163</spec>
|
|
</supersededby>
|
|
<shortname>N/A</shortname>
|
|
&stpeter;
|
|
<revision>
|
|
<version>0.8</version>
|
|
<date>2006-08-08</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Retracted: superseded by Personal Eventing via Pubsub (XEP-0163).</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.7</version>
|
|
<date>2006-01-19</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Updated to reflect Personal Eventing via Pubsub (XEP-0163).</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.6</version>
|
|
<date>2005-03-28</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Added avatar support to required protocols.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.5</version>
|
|
<date>2004-07-22</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Further defined the pubsub/disco interaction.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.4</version>
|
|
<date>2004-05-12</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Removed text on auto-subscribe functionality.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.3</version>
|
|
<date>2004-05-11</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Added introduction and background; defined well-known service discovery node for extended presence information; described auto-subscribe functionality.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.2</version>
|
|
<date>2003-11-24</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Status changed to Deferred.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.1</version>
|
|
<date>2003-09-08</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Initial version.</p></remark>
|
|
</revision>
|
|
</header>
|
|
<section1 topic='Introduction' anchor='intro'>
|
|
<p><em>Note: This document has been retracted since its functionality is handled by &xep0163;.</em></p>
|
|
<p>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.</p>
|
|
<p>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).</p>
|
|
<p>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.</p>
|
|
</section1>
|
|
<section1 topic='Background' anchor='background'>
|
|
<p>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).</p>
|
|
<p>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 <strong>XEP-0060:</strong> &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 <cite>XEP-0060</cite>, as defined in <cite>XEP-0163</cite>.</p>
|
|
<p>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.</p>
|
|
<p>The following diagram provides a schematic representation of such a service.</p>
|
|
<code>
|
|
|
|
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
|
|
</code>
|
|
<p>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.</p>
|
|
</section1>
|
|
<section1 topic='Requirements' anchor='reqs'>
|
|
<p>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.</p>
|
|
<p>A protocol is deemed worthy of inclusion in this protocol suite if:</p>
|
|
<ul>
|
|
<li>It addresses "extended presence" data that is defined in other presence services or protocols (e.g., Wireless Village or SIMPLE), or that is felt to be needed within the Jabber/XMPP community.</li>
|
|
<li>It has achieved a status of at least Draft within the XMPP Standards Foundation's standards process (as defined in &xep0001;).</li>
|
|
</ul>
|
|
</section1>
|
|
<section1 topic='Extended Presence Protocol Suite' anchor='suite'>
|
|
<p>We define the Extended Presence Protocol Suite as follows:</p>
|
|
<table caption='Required and Recommended Specifications'>
|
|
<tr>
|
|
<th>Specification</th>
|
|
<th>Requirement Level</th>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>XEP-0073: Basic IM Protocol Suite</strong></td>
|
|
<td>REQUIRED (prerequisite)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>XEP-0163: Personal Eventing via Pubsub</strong></td>
|
|
<td>REQUIRED (prerequisite)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>&xep0080;</td>
|
|
<td>REQUIRED</td>
|
|
</tr>
|
|
<tr>
|
|
<td>&xep0112;</td>
|
|
<td>REQUIRED</td>
|
|
</tr>
|
|
<tr>
|
|
<td>&xep0108;</td>
|
|
<td>REQUIRED</td>
|
|
</tr>
|
|
<tr>
|
|
<td>&xep0107;</td>
|
|
<td>REQUIRED</td>
|
|
</tr>
|
|
<tr>
|
|
<td>&xep0084;</td>
|
|
<td>REQUIRED *</td>
|
|
</tr>
|
|
</table>
|
|
<p>* <em>Note:</em> The User Avatar specification (<cite>XEP-0084</cite>) 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.</p>
|
|
</section1>
|
|
<section1 topic='Node Discovery' anchor='discovery'>
|
|
<p>Discovery of extended presence pubsub nodes is expedited through the use of <cite>Personal Eventing via Pubsub</cite> (PEP), since in PEP services there is a one-to-one relationship between payload types and NodeIDs. The NodeIDs MUST be as follows:</p>
|
|
<ul>
|
|
<li>Activity: http://jabber.org/protocol/activity</li>
|
|
<li>Avatar: http://jabber.org/protocol/avatar#metadata</li>
|
|
<li>Geolocation: http://jabber.org/protocol/geoloc</li>
|
|
<li>Mood: http://jabber.org/protocol/mood</li>
|
|
<li>Physical Location: http://jabber.org/protocol/physloc</li>
|
|
</ul>
|
|
<p>These nodes SHOULD have an access model of either "presence" or "roster".</p>
|
|
</section1>
|
|
<section1 topic='Security Considerations' anchor='security'>
|
|
<p>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).</p>
|
|
</section1>
|
|
<section1 topic='IANA Considerations' anchor='iana'>
|
|
<p>This document requires no interaction with &IANA;.</p>
|
|
</section1>
|
|
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
|
|
<p>This document requires no interaction with the ®ISTRAR;.</p>
|
|
</section1>
|
|
</xep>
|