mirror of https://github.com/moparisthebest/xeps
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
204 lines
7.8 KiB
204 lines
7.8 KiB
<?xml version='1.0' encoding='UTF-8'?> |
|
<!DOCTYPE xep SYSTEM 'xep.dtd' [ |
|
<!ENTITY % ents SYSTEM 'xep.ent'> |
|
<!ENTITY subscription "<subscription/>"> |
|
%ents; |
|
]> |
|
<?xml-stylesheet type='text/xsl' href='xep.xsl'?> |
|
<xep> |
|
<header> |
|
<title>Pubsub Subscription</title> |
|
<abstract>This specification describe a method that allow a user to share a list of nodes on which it is Pubsub registered</abstract> |
|
&LEGALNOTICE; |
|
<number>0330</number> |
|
<status>Deferred</status> |
|
<type>Standards Track</type> |
|
<sig>Standards</sig> |
|
<approver>Council</approver> |
|
<dependencies> |
|
<spec>XMPP Core</spec> |
|
<spec>XEP-0001</spec> |
|
<spec>XEP-0163</spec> |
|
<spec>XEP-0060</spec> |
|
</dependencies> |
|
<supersedes/> |
|
<supersededby/> |
|
<shortname>NOT_YET_ASSIGNED</shortname> |
|
<author> |
|
<firstname>Christine</firstname> |
|
<surname>Ho</surname> |
|
<email>nodpounod@gmail.com</email> |
|
<jid>christine.ho.dev@gmail.com</jid> |
|
</author> |
|
<author> |
|
<firstname>Timothée</firstname> |
|
<surname>Jaussoin</surname> |
|
<email>edhelas@gmail.com</email> |
|
<jid>edhelas@movim.eu</jid> |
|
</author> |
|
<revision> |
|
<version>0.1</version> |
|
<date>2013-06-11</date> |
|
<initials>psa</initials> |
|
<remark><p>Initial published version approved by the XMPP Council.</p></remark> |
|
</revision> |
|
<revision> |
|
<version>0.0.1</version> |
|
<date>2013-03-04</date> |
|
<initials>psa</initials> |
|
<remark><p>First draft.</p></remark> |
|
</revision> |
|
</header> |
|
<section1 topic='Introduction' anchor='intro'> |
|
<p> |
|
&xep0060; nodes are commonly used by XMPP users to subscribe to news feeds. This document describe a way, for them, to share some of the nodes to which they have subscribed with other users. |
|
</p> |
|
<p> |
|
The list of &xep0060; subcribed nodes is stored on a classic &xep0163; node qualified by the 'urn:xmpp:subscription' namespace. If an entity wishes to make pubsub subscriptions publicly available then the entity MAY publish them on this node. The entity SHOULD ensure that this information is kept up to date. |
|
</p> |
|
</section1> |
|
<section1 topic='Protocol' anchor='protocol'> |
|
<p>Information about the subscribed node is provided by the user client. The subscription container is defined as a classic &subscription; element with theses specific constraints :</p> |
|
<table caption='attributes'> |
|
<tr> |
|
<td><strong>Name</strong></td> |
|
<td><strong>Type</strong></td> |
|
<td><strong>Description</strong></td> |
|
<td><strong>Support</strong></td> |
|
</tr> |
|
<tr> |
|
<td>server</td> |
|
<td>attribute</td> |
|
<td>Any server's address</td> |
|
<td>REQUIRED</td> |
|
</tr> |
|
<tr> |
|
<td>node</td> |
|
<td>attribute</td> |
|
<td></td> |
|
<td>REQUIRED</td> |
|
</tr> |
|
<tr> |
|
<td>id</td> |
|
<td>node</td> |
|
<td></td> |
|
<td>RECOMMENDED</td> |
|
</tr> |
|
<tr> |
|
<td>title</td> |
|
<td>node</td> |
|
<td></td> |
|
<td>OPTIONAL</td> |
|
</tr> |
|
</table> |
|
<section2 topic="Item ID generation method"> |
|
<p>The aim of this XEP is to handle a list of subscriptions. To simplify the managment of this list the ID of the &xep0060; items MUST be generated according to the following method :</p> |
|
<ol> |
|
<li>Initialize an empty string S</li> |
|
<li>Append the name of the server, followed by the '<' character</li> |
|
<li>Append the name of the node, followed by the '<' character</li> |
|
<li>Append the jid of the current account</li> |
|
<li>Compute the ID by hashing the S string using the SHA1 algorythm</li> |
|
</ol> |
|
<section3 topic="Generation Example"> |
|
<ol> |
|
<li>S = ''</li> |
|
<li>S = 'pubsub.montague.lit<'</li> |
|
<li>S = 'pubsub.montague.lit<party'</li> |
|
<li>id = de6c6772ff43d9a604ea78e51ce28b63ab8692eb</li> |
|
</ol> |
|
</section3> |
|
</section2> |
|
</section1> |
|
<section1 topic='Requirements' anchor='reqs'> |
|
<p>The motivations for this document are to :</p> |
|
<ul> |
|
<li>Allow Jabber user's to share their &xep0060; subscriptions</li> |
|
<li>Add a new way to discover &xep0060; nodes</li> |
|
</ul> |
|
</section1> |
|
<section1 topic='Glossary' anchor='glossary'> |
|
<dl> |
|
<di> |
|
<dt>Personnal Eventing</dt> |
|
<dd>A simplified subset of Publish-Subscribe for use in the context of instant messaging and presence applications, whereby each IM user's JID is a virtual pubsub service; for details, see |
|
<link url='http://xmpp.org/extensions/xep-0163.html'>Personal Eventing Protocol</link>. |
|
</dd> |
|
</di> |
|
</dl> |
|
</section1> |
|
<section1 topic='Use Cases' anchor='usecases'> |
|
<section2 topic='Requesting the list of subscription' anchor='usecases'> |
|
<example caption='Requests the list of subscriptions'><![CDATA[ |
|
<iq type='get' |
|
from='romeo@montague.lit' |
|
to='pubsub.shakespeare.lit' |
|
id='items1'> |
|
<pubsub xmlns='http://jabber.org/protocol/pubsub'> |
|
<items node='urn:xmpp:pubsub:subscription'/> |
|
</pubsub> |
|
</iq>]]></example> |
|
</section2> |
|
<section2 topic='Adding a subscription to the list' anchor='usecases'> |
|
<example caption='Add a subscription to the list '><![CDATA[ |
|
<iq type="set" from="romeo@montague.lit" id="sub123"> |
|
<pubsub xmlns="http://jabber.org/protocol/pubsub"> |
|
<publish node="urn:xmpp:pubsub:subscription"> |
|
<item id="0bc0e76cb803b3b107aa369169d8c0d45086f844"> |
|
<subscription xmlns="urn:xmpp:pubsub:subscription:0" |
|
server="pubsub.shakespeare.lit" node="party"> |
|
<title>Party at the Capulets</title> |
|
</subscription> |
|
</item> |
|
</publish> |
|
</pubsub> |
|
</iq>]]></example> |
|
</section2> |
|
<section2 topic='Removing a subscription from the list' anchor='usecases'> |
|
<example caption='Remove a subscription from the list '><![CDATA[ |
|
<iq type='set' |
|
from='romeo@montague.lit' |
|
to='pubsub.shakespeare.lit' |
|
id='unsub1'> |
|
<pubsub xmlns='http://jabber.org/protocol/pubsub'> |
|
<retract node='urn:xmpp:pubsub:subscription'> |
|
<item id='0bc0e76cb803b3b107aa369169d8c0d45086f844'/> |
|
</retract> |
|
</pubsub> |
|
</iq>]]></example> |
|
</section2> |
|
<section2 topic='Modifiying a subscription of the list' anchor='usecases'> |
|
<example caption='Change the information of a subscription of the list '><![CDATA[ |
|
<iq type='set' |
|
from='romeo@montague.lit' |
|
to='pubsub.shakespeare.lit' |
|
id='unsub1'> |
|
<pubsub xmlns='http://jabber.org/protocol/pubsub'> |
|
<publish node='urn:xmpp:pubsub:subscription'> |
|
<item id='0bc0e76cb803b3b107aa369169d8c0d45086f844'> |
|
<subscription xmlns='urn:xmpp:pubsub:subscription:0' |
|
server='pubsub.shakespeare.lit' node='party'> |
|
<title>Party at the Capulets [canceled !]</title> |
|
</subscription> |
|
</item> |
|
</publish> |
|
</pubsub> |
|
</iq>]]></example> |
|
</section2> |
|
</section1> |
|
<section1 topic='Internationalization Considerations' anchor='i18n'> |
|
<p>The title element of a &subscription; item SHOULD be in the same language as the contents of the node in question.</p> |
|
</section1> |
|
<section1 topic='Security Considerations' anchor='security'> |
|
<p>The publication of user tune information is not known to introduce any new security considerations above and beyond those defined in XEP-0060: Publish-Subscribe.</p> |
|
</section1> |
|
<section1 topic='IANA Considerations' anchor='iana'> |
|
<p>This document requires no interaction with &IANA;.</p> |
|
</section1> |
|
<section1 topic='XMPP Registrar Considerations' anchor='registrar'> |
|
<p>The ®ISTRAR; is requested to issue an initial namespace of "urn:xmpp:pubsub:subscription".</p> |
|
</section1> |
|
<section1 topic='XML Schema' anchor='schema'> |
|
<p>REQUIRED for protocol specifications.</p> |
|
</section1> |
|
</xep>
|
|
|