1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-10-31 15:35:07 -04:00

1.0 Draft

git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1236 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2007-09-26 19:08:41 +00:00
parent 2c2585b07f
commit bea49ecf1e

View File

@ -10,7 +10,7 @@
<abstract>This document specifies an XMPP protocol extension for message receipts.</abstract> <abstract>This document specifies an XMPP protocol extension for message receipts.</abstract>
&LEGALNOTICE; &LEGALNOTICE;
<number>0184</number> <number>0184</number>
<status>Proposed</status> <status>Draft</status>
<type>Standards Track</type> <type>Standards Track</type>
<sig>Standards</sig> <sig>Standards</sig>
<approver>Council</approver> <approver>Council</approver>
@ -21,9 +21,18 @@
<spec>XEP-0022 (in part)</spec> <spec>XEP-0022 (in part)</spec>
</supersedes> </supersedes>
<supersededby/> <supersededby/>
<shortname>TO BE ASSIGNED</shortname> <shortname>receipts</shortname>
<schemaloc>
<url>http://www.xmpp.org/schemas/receipts.xsd</url>
</schemaloc>
&stpeter; &stpeter;
&hildjj; &hildjj;
<revision>
<version>1.0</version>
<date>2007-09-26</date>
<initials>psa</initials>
<remark><p>Per a vote of the XMPP Council, advanced to Draft.</p></remark>
</revision>
<revision> <revision>
<version>0.4</version> <version>0.4</version>
<date>2007-05-30</date> <date>2007-05-30</date>
@ -74,7 +83,7 @@
<p>Note: This document explicitly does not define a protocol for "guaranteed delivery", since that term (like "security") means different things to different people. Instead, we define a more focused protocol that addresses the need for message receipts, thus solving one problem that falls under the heading of "guaranteed delivery".</p> <p>Note: This document explicitly does not define a protocol for "guaranteed delivery", since that term (like "security") means different things to different people. Instead, we define a more focused protocol that addresses the need for message receipts, thus solving one problem that falls under the heading of "guaranteed delivery".</p>
</section1> </section1>
<section1 topic='Protocol Format' anchor='format'> <section1 topic='Protocol Format' anchor='format'>
<p>In order to make it possible for senders to request and for recipients to generate message receipts, we define a dedicated protocol extension qualified by the 'http://www.xmpp.org/extensions/xep-0184.html#ns' namespace &NSNOTE;.</p> <p>In order to make it possible for senders to request and for recipients to generate message receipts, we define a dedicated protocol extension qualified by the 'urn:xmpp:receipts' namespace &NSNOTE;.</p>
<p>There are two allowable elements in this namespace:</p> <p>There are two allowable elements in this namespace:</p>
<ul> <ul>
<li>&lt;request/&gt; -- included by a sending entity that wishes to know if the message has been received.</li> <li>&lt;request/&gt; -- included by a sending entity that wishes to know if the message has been received.</li>
@ -88,7 +97,7 @@
id='richard2-4.1.247' id='richard2-4.1.247'
to='kingrichard@royalty.england.lit/throne'> to='kingrichard@royalty.england.lit/throne'>
<body>My lord, dispatch; read o'er these articles.</body> <body>My lord, dispatch; read o'er these articles.</body>
<request xmlns='http://www.xmpp.org/extensions/xep-0184.html#ns'/> <request xmlns='urn:xmpp:receipts'/>
</message> </message>
]]></example> ]]></example>
<p>The recipient shall generate a receipt if and only if it supports the protocol defined herein and it is configured to return receipts, either globally or for this recipient (otherwise it MUST NOT return a receipt and SHOULD NOT return an error).</p> <p>The recipient shall generate a receipt if and only if it supports the protocol defined herein and it is configured to return receipts, either globally or for this recipient (otherwise it MUST NOT return a receipt and SHOULD NOT return an error).</p>
@ -97,7 +106,7 @@
from='kingrichard@royalty.england.lit/throne' from='kingrichard@royalty.england.lit/throne'
id='richard2-4.1.247' id='richard2-4.1.247'
to='northumberland@shakespeare.lit/westminster'> to='northumberland@shakespeare.lit/westminster'>
<received xmlns='http://www.xmpp.org/extensions/xep-0184.html#ns'/> <received xmlns='urn:xmpp:receipts'/>
</message> </message>
]]></example> ]]></example>
<p>The &lt;received/&gt; element SHOULD be the only child of the &MESSAGE; stanza and MUST mirror the 'id' of the sent message.</p> <p>The &lt;received/&gt; element SHOULD be the only child of the &MESSAGE; stanza and MUST mirror the 'id' of the sent message.</p>
@ -113,7 +122,7 @@
</section1> </section1>
<section1 topic='Determining Support' anchor='disco'> <section1 topic='Determining Support' anchor='disco'>
<p>If a sender wishes to request message receipts, it SHOULD first determine whether the intended recipient supports message receipts. This can be done directly via <cite>Service Discovery</cite> or indirectly via <cite>Entity Capabilities</cite>.</p> <p>If a sender wishes to request message receipts, it SHOULD first determine whether the intended recipient supports message receipts. This can be done directly via <cite>Service Discovery</cite> or indirectly via <cite>Entity Capabilities</cite>.</p>
<p>If an entity supports message receipts, it MUST report that by including a service discovery feature of "http://www.xmpp.org/extensions/xep-0184.html#ns" in response to disco#info requests &NSNOTE;:</p> <p>If an entity supports message receipts, it MUST report that by including a service discovery feature of "urn:xmpp:receipts" in response to disco#info requests &NSNOTE;:</p>
<example caption="Initial Service Discovery information request"><![CDATA[ <example caption="Initial Service Discovery information request"><![CDATA[
<iq from='northumberland@shakespeare.lit/westminster' <iq from='northumberland@shakespeare.lit/westminster'
to='kingrichard@royalty.england.lit/throne' to='kingrichard@royalty.england.lit/throne'
@ -127,14 +136,14 @@
type='result'> type='result'>
<query xmlns='http://jabber.org/protocol/disco#info'> <query xmlns='http://jabber.org/protocol/disco#info'>
... ...
<feature var='http://www.xmpp.org/extensions/xep-0184.html#ns'/> <feature var='urn:xmpp:receipts'/>
... ...
</query> </query>
</iq> </iq>
]]></example> ]]></example>
</section1> </section1>
<section1 topic='Negotiation' anchor='neg'> <section1 topic='Negotiation' anchor='neg'>
<p>Two entities MAY negotiate the use of message receipts for a given session using <cite>Stanza Session Negotiation</cite>. The parameter to be negotiated is named "http://www.xmpp.org/extensions/xep-0184.html#ns" &NSNOTE;. Its use is illustrated in the following examples.</p> <p>Two entities MAY negotiate the use of message receipts for a given session using <cite>Stanza Session Negotiation</cite>. The parameter to be negotiated is named "urn:xmpp:receipts" &NSNOTE;. Its use is illustrated in the following examples.</p>
<example caption="User requests chat session"><![CDATA[ <example caption="User requests chat session"><![CDATA[
<message type='normal' <message type='normal'
from='northumberland@shakespeare.lit/westminster' from='northumberland@shakespeare.lit/westminster'
@ -154,7 +163,7 @@
</field> </field>
<field label='Enable Message Receipts?' <field label='Enable Message Receipts?'
type='boolean' type='boolean'
var='http://www.xmpp.org/extensions/xep-0184.html#ns'> var='urn:xmpp:receipts'>
<value>0</value> <value>0</value>
</field> </field>
</x> </x>
@ -175,7 +184,7 @@
<field var='accept'> <field var='accept'>
<value>true</value> <value>true</value>
</field> </field>
<field var='http://www.xmpp.org/extensions/xep-0184.html#ns'> <field var='urn:xmpp:receipts'>
<value>1</value> <value>1</value>
</field> </field>
</x> </x>
@ -194,7 +203,7 @@
</section1> </section1>
<section1 topic='XMPP Registrar Considerations' anchor='registrar'> <section1 topic='XMPP Registrar Considerations' anchor='registrar'>
<section2 topic='Protocol Namespaces' anchor='ns'> <section2 topic='Protocol Namespaces' anchor='ns'>
<p>Until this specification advances to a status of Draft, its associated namespace shall be "http://www.xmpp.org/extensions/xep-0184.html#ns"; upon advancement of this specification, the &REGISTRAR; shall issue a permanent namespace in accordance with the process defined in Section 4 of &xep0053;.</p> <p>The &REGISTRAR; includes "urn:xmpp:receipts" in its registry of protocol namespaces (see &NAMESPACES;).</p>
</section2> </section2>
<section2 topic='Field Standardization' anchor='registrar-formtype'> <section2 topic='Field Standardization' anchor='registrar-formtype'>
<p>&xep0068; defines a process for standardizing the fields used within Data Forms qualified by a particular namespace, and the XMPP Registrar maintains a registry of such fields (see &FORMTYPES;). The Registrar shall add the following field for use in Stanza Session Negotiation forms:</p> <p>&xep0068; defines a process for standardizing the fields used within Data Forms qualified by a particular namespace, and the XMPP Registrar maintains a registry of such fields (see &FORMTYPES;). The Registrar shall add the following field for use in Stanza Session Negotiation forms:</p>
@ -202,13 +211,43 @@
<form_type> <form_type>
<name>urn:xmpp:ssn</name> <name>urn:xmpp:ssn</name>
<field <field
var='http://www.xmpp.org/extensions/xep-0184.html#ns' var='urn:xmpp:receipts'
type='boolean' type='boolean'
label='Whether to enable Message Receipts per XEP-0184'/> label='Whether to enable Message Receipts per XEP-0184'/>
</form_type> </form_type>
]]></code> ]]></code>
</section2> </section2>
</section1> </section1>
<section1 topic='XML Schema' anchor='schema'>
<code><![CDATA[
<?xml version='1.0' encoding='UTF-8'?>
<xs:schema
xmlns:xs='http://www.w3.org/2001/XMLSchema'
targetNamespace='urn:xmpp:receipts'
xmlns='urn:xmpp:receipts'
elementFormDefault='qualified'>
<xs:annotation>
<xs:documentation>
The protocol documented by this schema is defined in
XEP-0184: http://www.xmpp.org/extensions/xep-0184.html
</xs:documentation>
</xs:annotation>
<xs:element name='received' type='empty'/>
<xs:element name='request' type='empty'/>
<xs:simpleType name='empty'>
<xs:restriction base='xs:string'>
<xs:enumeration value=''/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
]]></code>
</section1>
<section1 topic='Acknowledgements' anchor='ack'> <section1 topic='Acknowledgements' anchor='ack'>
<p>Thanks to Joe Kemp and Kevin Smith for their input.</p> <p>Thanks to Joe Kemp and Kevin Smith for their input.</p>
</section1> </section1>