mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-25 10:42:19 -05:00
1.4pre2
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@922 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
parent
a432236a2e
commit
a1dad80941
78
xep-0080.xml
78
xep-0080.xml
@ -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 <geoloc/> 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 <geoloc/> 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 ¬allowed;:</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 <description/> 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'><Accuracy/>
|
<td align='center'><Accuracy/>
|
||||||
<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>
|
||||||
|
Loading…
Reference in New Issue
Block a user