2013-05-07 09:52:49 -04:00
<?xml version='1.0' encoding='UTF-8'?>
< !DOCTYPE xep SYSTEM 'xep.dtd' [
<!ENTITY % ents SYSTEM 'xep.ent'>
2017-01-01 17:34:35 -05:00
<!ENTITY subscription "<subscription/>">
2013-05-07 09:52:49 -04:00
%ents;
]>
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
<xep >
2017-01-01 17:34:35 -05:00
<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;
2013-06-12 13:51:29 -04:00
<number > 0330</number>
<status > Experimental</status>
2013-05-07 09:52:49 -04:00
<type > Standards Track</type>
<sig > Standards</sig>
<approver > Council</approver>
<dependencies >
2017-01-01 17:34:35 -05:00
<spec > XMPP Core</spec>
<spec > XEP-0001</spec>
<spec > XEP-0163</spec>
<spec > XEP-0060</spec>
2013-05-07 09:52:49 -04:00
</dependencies>
<supersedes />
<supersededby />
2013-06-12 13:51:29 -04:00
<shortname > NOT_YET_ASSIGNED</shortname>
2013-05-07 09:52:49 -04:00
<author >
2017-01-01 17:34:35 -05:00
<firstname > Christine</firstname>
<surname > Ho</surname>
<email > nodpounod@gmail.com</email>
<jid > christine.ho.dev@gmail.com</jid>
2013-05-07 09:52:49 -04:00
</author>
<author >
2017-01-01 17:34:35 -05:00
<firstname > Timothée</firstname>
<surname > Jaussoin</surname>
<email > edhelas@gmail.com</email>
<jid > edhelas@movim.eu</jid>
2013-05-07 09:52:49 -04:00
</author>
<revision >
2013-06-12 13:51:29 -04:00
<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>
2013-05-07 09:52:49 -04:00
</revision>
2017-01-01 17:34:35 -05:00
</header>
2013-05-07 09:52:49 -04:00
<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' >
2017-01-01 17:34:35 -05:00
<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>
2013-05-07 09:52:49 -04:00
<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>
2017-01-01 17:34:35 -05:00
<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
2013-05-07 09:52:49 -04:00
<link url= 'http://xmpp.org/extensions/xep-0163.html' > Personal Eventing Protocol</link> .
</dd>
</di>
</dl>
</section1>
<section1 topic= 'Use Cases' anchor= 'usecases' >
2017-01-01 17:34:35 -05:00
<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>
2013-05-07 09:52:49 -04:00
</section2>
<section2 topic= 'Adding a subscription to the list' anchor= 'usecases' >
2017-01-01 17:34:35 -05:00
<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>
2013-05-07 09:52:49 -04:00
</section2>
<section2 topic= 'Removing a subscription from the list' anchor= 'usecases' >
2017-01-01 17:34:35 -05:00
<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>
2013-05-07 09:52:49 -04:00
</section2>
<section2 topic= 'Modifiying a subscription of the list' anchor= 'usecases' >
2017-01-01 17:34:35 -05:00
<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>
2013-05-07 09:52:49 -04:00
</section2>
</section1>
<section1 topic= 'Internationalization Considerations' anchor= 'i18n' >
2017-01-01 17:34:35 -05:00
<p > The title element of a &subscription; item SHOULD be in the same language as the contents of the node in question.</p>
2013-05-07 09:52:49 -04:00
</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>