1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-25 10:42:19 -05:00
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@922 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2007-06-07 22:44:32 +00:00
parent a432236a2e
commit a1dad80941

View File

@ -6,7 +6,7 @@
<?xml-stylesheet type='text/xsl' href='xep.xsl'?> <?xml-stylesheet type='text/xsl' href='xep.xsl'?>
<xep> <xep>
<header> <header>
<title>User Geolocation</title> <title>User Location</title>
<abstract>This document defines an XMPP protocol extension for communicating information about the current geographical location of an entity.</abstract> <abstract>This document defines an XMPP protocol extension for communicating information about the current geographical location of an entity.</abstract>
&LEGALNOTICE; &LEGALNOTICE;
<number>0080</number> <number>0080</number>
@ -26,10 +26,10 @@
&hildjj; &hildjj;
&stpeter; &stpeter;
<revision> <revision>
<version>1.4pre1</version> <version>1.4pre2</version>
<date>in progress, last updated 2007-05-30</date> <date>in progress, last updated 2007-06-07</date>
<initials>psa</initials> <initials>psa</initials>
<remark><p>Corrected PEP examples; added uri element.</p></remark> <remark><p>Renamed to User Location; corrected pubsub examples; removed non-pubsub examples; added uri element.</p></remark>
</revision> </revision>
<revision> <revision>
<version>1.3</version> <version>1.3</version>
@ -130,7 +130,7 @@
</ul> </ul>
</section1> </section1>
<section1 topic='Data Format' anchor='format'> <section1 topic='Data Format' anchor='format'>
<p>Information about the entity's location is provided by the entity and propagated on the network by the entity's associated application (usually a client). The information is structured by means of a &lt;geoloc/&gt; element that is qualified by the 'http://jabber.org/protocol/geoloc' namespace; the geolocation information itself is provided as the XML character data of the following child elements:</p> <p>Information about the entity's location is provided by the entity and propagated on the network by the entity's associated application (usually a client). The information is structured by means of a &lt;geoloc/&gt; element that is qualified by the 'http://jabber.org/protocol/geoloc' namespace; the location information itself is provided as the XML character data of the following child elements:</p>
<table caption='Child Elements'> <table caption='Child Elements'>
<tr> <tr>
<th>Element Name</th> <th>Element Name</th>
@ -255,8 +255,9 @@
</table> </table>
<p>NOTE: The datatypes specified above are defined in &w3xmlschema2;.</p> <p>NOTE: The datatypes specified above are defined in &w3xmlschema2;.</p>
</section1> </section1>
<section1 topic='Use Cases' anchor='usecases'> <section1 topic='Transport' anchor='transport'>
<p>Location information SHOULD be communicated and transported by means of the &xep0060; subset specified in &xep0163;. Because location information is not pure presence information and can change independently of the user's availability, it SHOULD NOT be provided as an extension to &PRESENCE;.</p> <p>Location information SHOULD be communicated and transported by means of &xep0060; or the subset thereof specified in &xep0163; (the examples below assume that the user's XMPP server supports PEP, thus the publish request lacks a 'to' address and the notification message has a 'from' address of the user's bare JID).</p>
<p>Because location information is not pure presence information and can change independently of the user's availability, it SHOULD NOT be provided as an extension to &PRESENCE;.</p>
<section2 topic='Entity publishes location via PEP' anchor='usecases-pubsub'> <section2 topic='Entity publishes location via PEP' anchor='usecases-pubsub'>
<example caption='Entity publishes location'><![CDATA[ <example caption='Entity publishes location'><![CDATA[
<iq type='set' from='portia@merchantofvenice.lit/pda' id='publish1'> <iq type='set' from='portia@merchantofvenice.lit/pda' id='publish1'>
@ -276,7 +277,7 @@
]]></example> ]]></example>
<example caption='Subscriber receives event with payload'><![CDATA[ <example caption='Subscriber receives event with payload'><![CDATA[
<message from='portia@merchantofvenice.lit' <message from='portia@merchantofvenice.lit'
to='bassanio@merchantofvenice.lit/home'> to='bassanio@merchantofvenice.lit'>
<event xmlns='http://jabber.org/protocol/pubsub#event'> <event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='http://jabber.org/protocol/geoloc'> <items node='http://jabber.org/protocol/geoloc'>
<item id='d81a52b8-0f9c-11dc-9bc8-001143d5d5db'> <item id='d81a52b8-0f9c-11dc-9bc8-001143d5d5db'>
@ -295,65 +296,6 @@
. .
]]></example> ]]></example>
</section2> </section2>
<section2 topic='Entity requests the location of another entity' anchor='usecases-request'>
<p>If an entity wishes to request the location of another entity but the requestee does not publish that information via pubsub (including PEP), the requestor MAY send an IQ to the requestee:</p>
<example caption='Location request'><![CDATA[
<iq type='get'
id='loc_1'
from='juliet@capulet.com/balcony'
to='romeo@montague.net/garden'>
<geoloc xmlns='http://jabber.org/protocol/geoloc'/>
</iq>]]></example>
<p>The receiving entity SHOULD make a careful access control decision before returning the actual location.</p>
<example caption='Successful location response'><![CDATA[
<iq type='result'
id='loc_1'
to='juliet@capulet.com/balcony'
from='romeo@montague.net/garden'>
<geoloc xmlns='http://jabber.org/protocol/geoloc' xml:lang='en'>
<country>Italy</country>
<lat>45.44</lat>
<locality>Venice</locality>
<lon>12.33</lon>
</geoloc>
</iq>]]></example>
<p>If the receiving entity decides not to return the actual location, it MUST return an IQ error, which SHOULD be &forbidden; but MAY be some other appropriate error, such as &notallowed;:</p>
<example caption='Access to location information denied'><![CDATA[
<iq type='error'
id='loc_1'
to='juliet@capulet.com/balcony'
from='romeo@montague.net/garden'>
<geoloc xmlns='http://jabber.org/protocol/geoloc'/>
<error code='403' type='auth'>
<forbidden xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
]]></example>
</section2>
<section2 topic='Sending location' anchor='usecases-send'>
<p>If an entity wants to send another entity its postition but it does not publish that information via pubsub, it MAY do so in a message. The message SHOULD NOT include an XMPP body element.</p>
<example caption='Message containing location'><![CDATA[
<message
to='polonius@hamlet.lit'
from='horatio@hamlet.lit/castle'>
<geoloc xmlns='http://jabber.org/protocol/geoloc' xml:lang='en'>
<description>Elsinore</description>
<lat>56.033</lat>
<lon>12.618</lon>
<uri>http://www.mapquest.com/maps/map.adp?latlongtype=decimal&latitude=56.033&longitude=12.618</uri>
</geoloc>
</x>
</message>]]></example>
</section2>
<section2 topic='Entity publishes location in presence' anchor='usecases-presence'>
<p>If an entity has generated or been issued a random resource identifier but it wishes to inform all of the entities on its roster about its location, the entity MAY publish a presence stanza that includes a location. It is RECOMMENDED to include only the &lt;description/&gt; element, since full locations SHOULD be published using PEP in order to save bandwidth and ensure appropriate access control.</p>
<example caption='Location in presence'><![CDATA[
<presence from='juliet@capulet.lit/0d662bc8-0f97-11dc-ad28-000bcd821bfb'>
<geoloc xmlns='http://jabber.org/protocol/geoloc' xml:lang='en'>
<description>balcony</description>
</geoloc>
</presence>]]></example>
</section2>
</section1> </section1>
<section1 topic='Implementation Notes' anchor='impl'> <section1 topic='Implementation Notes' anchor='impl'>
@ -447,7 +389,7 @@
<tr> <tr>
<td align='center'>--</td> <td align='center'>--</td>
<td align='center'>&lt;Accuracy/&gt; <td align='center'>&lt;Accuracy/&gt;
<note>This element provides accuracy in meters. The geolocation protocol defined in XEP-0080 specifies such an element for XMPP, which SHOULD be used when mapping from IMPS to XMPP.</note> <note>This element provides accuracy in meters. The location protocol defined in XEP-0080 specifies such an element for XMPP, which SHOULD be used when mapping from IMPS to XMPP.</note>
</td> </td>
<td align='center'>--</td> <td align='center'>--</td>
<td align='center'>--</td> <td align='center'>--</td>