1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-22 01:02:17 -05:00

XEP-0357 v0.1 - Initial published version approved by the XMPP Council.

This commit is contained in:
Matthew A. Miller 2015-03-18 08:30:59 -06:00
parent 246bcbd46e
commit 123d2d8cba

View File

@ -9,8 +9,8 @@
<title>Push</title> <title>Push</title>
<abstract>This specification defines a way for an XMPP servers to deliver information for use in push notifications to mobile and other devices.</abstract> <abstract>This specification defines a way for an XMPP servers to deliver information for use in push notifications to mobile and other devices.</abstract>
&LEGALNOTICE; &LEGALNOTICE;
<number>xxxx</number> <number>0357</number>
<status>ProtoXEP</status> <status>Experimental</status>
<type>Standards Track</type> <type>Standards Track</type>
<sig>Standards</sig> <sig>Standards</sig>
<dependencies> <dependencies>
@ -22,13 +22,19 @@
</dependencies> </dependencies>
<supersedes /> <supersedes />
<supersededby/> <supersededby/>
<shortname>NOT_YET_ASSIGNED</shortname> <shortname>push</shortname>
<author> <author>
<firstname>Lance</firstname> <firstname>Lance</firstname>
<surname>Stout</surname> <surname>Stout</surname>
<email>lancestout@gmail.com</email> <email>lancestout@gmail.com</email>
<jid>lance@lance.im</jid> <jid>lance@lance.im</jid>
</author> </author>
<revision>
<version>0.1</version>
<date>2015-03-18</date>
<initials>XEP Editor (mam)</initials>
<remark><p>Initial published version approved by the XMPP Council.</p></remark>
</revision>
<revision> <revision>
<version>0.0.2</version> <version>0.0.2</version>
<date>2015-03-10</date> <date>2015-03-10</date>
@ -59,7 +65,7 @@
<li>Eliminate the need for clients to proxy a user's XMPP session in order to enable push notifications.</li> <li>Eliminate the need for clients to proxy a user's XMPP session in order to enable push notifications.</li>
</ul> </ul>
<p class='em'>Note: Any publish-subscribe use cases not described herein are described in <cite>XEP-0060</cite>. Also, this document does not show error flows related to the generic publish-subscribe use cases referenced herein, since they are exhaustively defined in <cite>XEP-0060</cite>. The reader is referred to <cite>XEP-0060</cite> for all relevant protocol details related to the XMPP publish-subscribe extension. This document merely defines a "subset" or "profile" of XMPP publish-subscribe.</p> <p class='em'>Note: Any publish-subscribe use cases not described herein are described in &xep0060;. Also, this document does not show error flows related to the generic publish-subscribe use cases referenced herein, since they are exhaustively defined in <cite>XEP-0060</cite>. The reader is referred to <cite>XEP-0060</cite> for all relevant protocol details related to the XMPP publish-subscribe extension. This document merely defines a "subset" or "profile" of XMPP publish-subscribe.</p>
</section1> </section1>
<section1 topic='Concepts and Approach' anchor='concepts'> <section1 topic='Concepts and Approach' anchor='concepts'>
@ -159,7 +165,7 @@
</section1> </section1>
<section1 topic='XMPP Push Service'> <section1 topic='XMPP Push Service'>
<p>An XMPP Push Service is a PubSub service as defined by the XMPP &xep0060; extension. The functional difference between a Push Service and a generic pubsub service is that a Push Service will generally summarize and forward published content via non-XMPP mechanisms.</p> <p>An XMPP Push Service is a PubSub service as defined by the XMPP <cite>XEP-0060</cite> extension. The functional difference between a Push Service and a generic pubsub service is that a Push Service will generally summarize and forward published content via non-XMPP mechanisms.</p>
<p class='em'>Note: a Push Service is provided by a specific client application as part of the App Server. A user's XMPP server will typically <em>not</em> act as a Push Service itself, but will instead publish to the Push Services for the user's client applications.</p> <p class='em'>Note: a Push Service is provided by a specific client application as part of the App Server. A user's XMPP server will typically <em>not</em> act as a Push Service itself, but will instead publish to the Push Services for the user's client applications.</p>
<section2 topic='Recommended Defaults'> <section2 topic='Recommended Defaults'>
@ -262,7 +268,7 @@
</iq> </iq>
]]></example> ]]></example>
<p>An App Server MAY require additional information to be provided with each published notification, such as authentication credentials. These parameters are included in the enable request by adding a <cite>XEP-0004</cite> data form with a FORM_TYPE of 'http://jabber.org/protocol/pubsub#publish-options'.</p> <p>An App Server MAY require additional information to be provided with each published notification, such as authentication credentials. These parameters are included in the enable request by adding a &xep0004; data form with a FORM_TYPE of 'http://jabber.org/protocol/pubsub#publish-options'.</p>
<example caption='Enabling Notifications, with provided publish options'><![CDATA[ <example caption='Enabling Notifications, with provided publish options'><![CDATA[
<iq type='set' id='x43'> <iq type='set' id='x43'>
@ -302,7 +308,7 @@
<section1 topic='Publishing Notifications' anchor='publishing'> <section1 topic='Publishing Notifications' anchor='publishing'>
<p>When the user's server detects an event warranting a push notification, it performs a PubSub publish to all XMPP Push Services registered for the user, where the item payload is a &lt;notification /&gt; element in the 'urn:xmpp:push:0' namespace.</p> <p>When the user's server detects an event warranting a push notification, it performs a PubSub publish to all XMPP Push Services registered for the user, where the item payload is a &lt;notification /&gt; element in the 'urn:xmpp:push:0' namespace.</p>
<p>A <cite>XEP-0004</cite> data form whose FORM_TYPE is 'urn:xmpp:push:summary' MAY be included to provide summarized information such as the number of unread messages or number of pending subscription requests.</p> <p>A &xep0004; data form whose FORM_TYPE is 'urn:xmpp:push:summary' MAY be included to provide summarized information such as the number of unread messages or number of pending subscription requests.</p>
<p>Other elements MAY be included if relevant for the notification.</p> <p>Other elements MAY be included if relevant for the notification.</p>
<example caption='Server publishes a push notification'><![CDATA[ <example caption='Server publishes a push notification'><![CDATA[
<iq type='set' <iq type='set'
@ -424,7 +430,7 @@
&NSVER; &NSVER;
</section2> </section2>
<section2 topic='Field Standardization' anchor='registrar-formtypes'> <section2 topic='Field Standardization' anchor='registrar-formtypes'>
<p><cite>XEP-0068</cite> defines a process for standardizing the fields used within Data Forms scoped by a particular namespace, and the XMPP Registrar maintains a registry of such FORM_TYPES (see &FORMTYPES;).</p> <p>&xep0068; defines a process for standardizing the fields used within Data Forms scoped by a particular namespace, and the XMPP Registrar maintains a registry of such FORM_TYPES (see &FORMTYPES;).</p>
<section3 topic='urn:xmpp:push:summary FORM_TYPE' anchor='registrar-formtypes'> <section3 topic='urn:xmpp:push:summary FORM_TYPE' anchor='registrar-formtypes'>
<code><![CDATA[ <code><![CDATA[
@ -453,7 +459,7 @@
</section3> </section3>
</section2> </section2>
<section2 topic='Service Discovery Category/Type' anchor='registrar-disco'> <section2 topic='Service Discovery Category/Type' anchor='registrar-disco'>
<p>The &REGISTRAR; includes a category of "component" in its registry of Service Discovery identities (see &DISCOCATEGORIES;); as a result of this document, the Registrar includes a type of "jidprep" to that category.</p> <p>The XMPP Registrar includes a category of "component" in its registry of Service Discovery identities (see &DISCOCATEGORIES;); as a result of this document, the Registrar includes a type of "jidprep" to that category.</p>
<p>The registry submission is as follows:</p> <p>The registry submission is as follows:</p>
<code><![CDATA[ <code><![CDATA[
<category> <category>