This commit is contained in:
Peter Saint-Andre 2013-09-25 21:34:41 -06:00
parent aa6e99df45
commit d80cf397fe
1 changed files with 47 additions and 18 deletions

View File

@ -7,7 +7,7 @@
<xep>
<header>
<title>Reachability Addresses</title>
<abstract>This document defines an XMPP protocol extension for communicating information about how an entity can be reached using methods other than the entity's normal JID.</abstract>
<abstract>This document defines an XMPP protocol extension for communicating information about how an entity can be reached temporarily using methods other than the entity's normal JID.</abstract>
&LEGALNOTICE;
<number>0152</number>
<status>Proposed</status>
@ -24,6 +24,12 @@
<shortname>reach</shortname>
&stpeter;
&hildjj;
<revision>
<version>0.5</version>
<date>2013-09-25</date>
<initials>psa</initials>
<remark><p>Modified the text and examples to better illustrate the primary use case.</p></remark>
</revision>
<revision>
<version>0.4</version>
<date>2013-02-05</date>
@ -70,6 +76,7 @@
<li><p>Send the address(es) within a &PRESENCE; stanza; this option is described in the <link url='#transport-presence'>Presence Transport</link> section of this document and is consistent with &rfc6121; since reachability is one aspect of a user's availability for communication.</p></li>
<li><p>Send address(es) to the appropriate &xep0060; node; this option is described in the <link url='#transport-pep'>PEP Transport</link> section of this document but might not be available at all service providers.</p></li>
</ul>
<p>This document defines methods for publishing addresses at which a user can be reached temporarily, as opposed to semi-permanent addresses of the kind that are more appropriately communicated in a user's vCard.</p>
</section1>
<section1 topic='Requirements' anchor='reqs'>
@ -85,7 +92,7 @@
<example caption="Data Format for Reachability Addresses"><![CDATA[
<reach xmlns='urn:xmpp:reach:0'>
<addr uri='tel:+1-303-555-1212'/>
<addr uri='sip:romeo@sipspeare.lit'/>
<addr uri='sip:room123@example.com'/>
</reach>
]]></example>
<p>When publishing reachability addresses, the &lt;reach/&gt; element MUST contain at least one &lt;addr/&gt; element. Each &lt;addr/&gt; element MUST possess a 'uri' attribute, whose value MUST be the Uniform Resource Identifier (&rfc3986;) or Internationalized Resource Identifier (&rfc3987;) of an alternate communications method for reaching the user.</p>
@ -93,10 +100,10 @@
<example caption="Reachability Addresses With Descriptions"><![CDATA[
<reach xmlns='urn:xmpp:reach:0'>
<addr uri='tel:+1-303-555-1212'>
<desc xml:lang='en'>New conference room number</desc>
<desc xml:lang='en'>Conference room phone</desc>
</addr>
<addr uri='sip:romeo@sipspeare.lit'>
<desc xml:lang='en'>My softphone</desc>
<addr uri='sip:room123@example.com'>
<desc xml:lang='en'>In-room video system</desc>
</addr>
</reach>
]]></example>
@ -110,13 +117,15 @@
</ul>
<p>This document does not recommend one transport method over the other.</p>
<p>In addition, a contact MAY request a user's reachability addresses in an XMPP &IQ; stanza of type "get" and a user MAY send reachability addresses in an XMPP &MESSAGE; stanza. However, the presence and PEP transport methods are preferred.</p>
<section2 topic='Presence Transport' anchor='transport-presence'>
<p>To broadcast reachability addresses in presence information, a user's client includes the &lt;reach/&gt; element in the &PRESENCE; stanza it sends to its server:</p>
<p>To broadcast reachability addresses in presence information, a user's client includes the &lt;reach/&gt; element in the &PRESENCE; stanza it sends to its server.</p>
<p>For example, consider someone who walks into a conference room at the office. Via nearfield communication, the user's XMPP client might auto-discovery a 'tel:' URI for the room audio system and a 'sip:' URI for the room video system.</p>
<example caption="User&apos;s Client Includes Reachability Addresses in Presence"><![CDATA[
<presence from='romeo@montague.net'>
<presence from='romeo@example.com/mobile'>
<reach xmlns='urn:xmpp:reach:0'>
<addr uri='tel:+1-303-555-1212'/>
<addr uri='sip:romeo@sipspeare.lit'/>
<addr uri='sip:room123@example.com'/>
</reach>
</presence>
]]></example>
@ -125,28 +134,33 @@
<presence from='romeo@montague.net' to='juliet@capulet.com'>
<reach xmlns='urn:xmpp:reach:0'>
<addr uri='tel:+1-303-555-1212'/>
<addr uri='sip:romeo@sipspeare.lit'/>
<addr uri='sip:room123@example.com'/>
</reach>
</presence>
]]></example>
<p>Naturally, a reachability address MAY alternatively be included in directed presence.</p>
<p>(Naturally, a reachability address MAY alternatively be included in directed presence.)</p>
<p>Upon leaving the conference room, the user's client would send updated presence without the reachability extension.</p>
<example caption="User&apos;s Client Sends Updated Presence Without Reachability Addresses"><![CDATA[
<presence from='romeo@example.com/mobile'/>
]]></example>
</section2>
<section2 topic='Personal Eventing Protocol' anchor='transport-pep'>
<p>To publish reachability addresses via the personal eventing protocol (<cite>XEP-0163</cite>), the entity publishes data to the "urn:xmpp:reach:0" node.</p>
<example caption='Entity Publishes Reachability Addresses via PEP'><![CDATA[
<iq type='set'
from='romeo@montague.net'
to='pubsub.shakespeare.lit'
from='romeo@example.com'
to='pubsub.shakespeare.example'
id='publish1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='urn:xmpp:reach:0'>
<item id='a1s2d3f4g5h6bjeh936'>
<reach xmlns='urn:xmpp:reach:0'>
<addr uri='tel:+1-303-555-1212'>
<desc xml:lang='en'>My mobile number</desc>
<desc xml:lang='en'>Conference room phone</desc>
</addr>
<addr uri='sip:romeo@sipspeare.lit'>
<desc xml:lang='en'>My softphone</desc>
<addr uri='sip:room123@example.com'>
<desc xml:lang='en'>In-room video system</desc>
</addr>
</reach>
</item>
@ -162,10 +176,10 @@
<item id='a1s2d3f4g5h6bjeh936'>
<reach xmlns='urn:xmpp:reach:0'>
<addr uri='tel:+1-303-555-1212'>
<desc xml:lang='en'>My mobile number</desc>
<desc xml:lang='en'>Conference room phone</desc>
</addr>
<addr uri='sip:romeo@sipspeare.lit'>
<desc xml:lang='en'>My softphone</desc>
<addr uri='sip:room123@example.com'>
<desc xml:lang='en'>In-room video system</desc>
</addr>
</reach>
</item>
@ -173,6 +187,21 @@
</event>
</message>
]]></example>
<p>As above, when leaving the conference room the user's client would publish an updated payload indicating that it no longer has any temporary reachability addresses.</p>
<example caption='Entity Publishes Payload with Empty Reachability Addresses'><![CDATA[
<iq type='set'
from='romeo@example.com'
to='pubsub.shakespeare.example'
id='publish1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='urn:xmpp:reach:0'>
<item id='a1s2d3f4g5h6bjeh936'>
<reach xmlns='urn:xmpp:reach:0'/>
</item>
</publish>
</pubsub>
</iq>
]]></example>
</section2>
</section1>