mirror of
https://github.com/moparisthebest/xeps
synced 2024-12-22 23:58:51 -05:00
223 lines
8.5 KiB
XML
223 lines
8.5 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<!DOCTYPE xep SYSTEM 'xep.dtd' [
|
|
<!ENTITY % ents SYSTEM 'xep.ent'>
|
|
%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>Experimental</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'>
|
|
<p>
|
|
<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>
|
|
</p>
|
|
</section2>
|
|
|
|
<section2 topic='Modifiying a subscription of the list' anchor='usecases'>
|
|
<p>
|
|
<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>
|
|
</p>
|
|
</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>
|