No Description
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.

xep-0330.xml 7.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <!DOCTYPE xep SYSTEM 'xep.dtd' [
  3. <!ENTITY % ents SYSTEM 'xep.ent'>
  4. <!ENTITY subscription "&lt;subscription/&gt;">
  5. %ents;
  6. ]>
  7. <?xml-stylesheet type='text/xsl' href='xep.xsl'?>
  8. <xep>
  9. <header>
  10. <title>Pubsub Subscription</title>
  11. <abstract>This specification describe a method that allow a user to share a list of nodes on which it is Pubsub registered</abstract>
  12. &LEGALNOTICE;
  13. <number>0330</number>
  14. <status>Deferred</status>
  15. <type>Standards Track</type>
  16. <sig>Standards</sig>
  17. <approver>Council</approver>
  18. <dependencies>
  19. <spec>XMPP Core</spec>
  20. <spec>XEP-0001</spec>
  21. <spec>XEP-0163</spec>
  22. <spec>XEP-0060</spec>
  23. </dependencies>
  24. <supersedes/>
  25. <supersededby/>
  26. <shortname>NOT_YET_ASSIGNED</shortname>
  27. <author>
  28. <firstname>Christine</firstname>
  29. <surname>Ho</surname>
  30. <email>nodpounod@gmail.com</email>
  31. <jid>christine.ho.dev@gmail.com</jid>
  32. </author>
  33. <author>
  34. <firstname>Timothée</firstname>
  35. <surname>Jaussoin</surname>
  36. <email>edhelas@gmail.com</email>
  37. <jid>edhelas@movim.eu</jid>
  38. </author>
  39. <revision>
  40. <version>0.1</version>
  41. <date>2013-06-11</date>
  42. <initials>psa</initials>
  43. <remark><p>Initial published version approved by the XMPP Council.</p></remark>
  44. </revision>
  45. <revision>
  46. <version>0.0.1</version>
  47. <date>2013-03-04</date>
  48. <initials>psa</initials>
  49. <remark><p>First draft.</p></remark>
  50. </revision>
  51. </header>
  52. <section1 topic='Introduction' anchor='intro'>
  53. <p>
  54. &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.
  55. </p>
  56. <p>
  57. 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.
  58. </p>
  59. </section1>
  60. <section1 topic='Protocol' anchor='protocol'>
  61. <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>
  62. <table caption='attributes'>
  63. <tr>
  64. <td><strong>Name</strong></td>
  65. <td><strong>Type</strong></td>
  66. <td><strong>Description</strong></td>
  67. <td><strong>Support</strong></td>
  68. </tr>
  69. <tr>
  70. <td>server</td>
  71. <td>attribute</td>
  72. <td>Any server's address</td>
  73. <td>REQUIRED</td>
  74. </tr>
  75. <tr>
  76. <td>node</td>
  77. <td>attribute</td>
  78. <td></td>
  79. <td>REQUIRED</td>
  80. </tr>
  81. <tr>
  82. <td>id</td>
  83. <td>node</td>
  84. <td></td>
  85. <td>RECOMMENDED</td>
  86. </tr>
  87. <tr>
  88. <td>title</td>
  89. <td>node</td>
  90. <td></td>
  91. <td>OPTIONAL</td>
  92. </tr>
  93. </table>
  94. <section2 topic="Item ID generation method">
  95. <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>
  96. <ol>
  97. <li>Initialize an empty string S</li>
  98. <li>Append the name of the server, followed by the '&lt;' character</li>
  99. <li>Append the name of the node, followed by the '&lt;' character</li>
  100. <li>Append the jid of the current account</li>
  101. <li>Compute the ID by hashing the S string using the SHA1 algorythm</li>
  102. </ol>
  103. <section3 topic="Generation Example">
  104. <ol>
  105. <li>S = ''</li>
  106. <li>S = 'pubsub.montague.lit&lt;'</li>
  107. <li>S = 'pubsub.montague.lit&lt;party'</li>
  108. <li>id = de6c6772ff43d9a604ea78e51ce28b63ab8692eb</li>
  109. </ol>
  110. </section3>
  111. </section2>
  112. </section1>
  113. <section1 topic='Requirements' anchor='reqs'>
  114. <p>The motivations for this document are to :</p>
  115. <ul>
  116. <li>Allow Jabber user's to share their &xep0060; subscriptions</li>
  117. <li>Add a new way to discover &xep0060; nodes</li>
  118. </ul>
  119. </section1>
  120. <section1 topic='Glossary' anchor='glossary'>
  121. <dl>
  122. <di>
  123. <dt>Personnal Eventing</dt>
  124. <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
  125. <link url='http://xmpp.org/extensions/xep-0163.html'>Personal Eventing Protocol</link>.
  126. </dd>
  127. </di>
  128. </dl>
  129. </section1>
  130. <section1 topic='Use Cases' anchor='usecases'>
  131. <section2 topic='Requesting the list of subscription' anchor='usecases'>
  132. <example caption='Requests the list of subscriptions'><![CDATA[
  133. <iq type='get'
  134. from='romeo@montague.lit'
  135. to='pubsub.shakespeare.lit'
  136. id='items1'>
  137. <pubsub xmlns='http://jabber.org/protocol/pubsub'>
  138. <items node='urn:xmpp:pubsub:subscription'/>
  139. </pubsub>
  140. </iq>]]></example>
  141. </section2>
  142. <section2 topic='Adding a subscription to the list' anchor='usecases'>
  143. <example caption='Add a subscription to the list '><![CDATA[
  144. <iq type="set" from="romeo@montague.lit" id="sub123">
  145. <pubsub xmlns="http://jabber.org/protocol/pubsub">
  146. <publish node="urn:xmpp:pubsub:subscription">
  147. <item id="0bc0e76cb803b3b107aa369169d8c0d45086f844">
  148. <subscription xmlns="urn:xmpp:pubsub:subscription:0"
  149. server="pubsub.shakespeare.lit" node="party">
  150. <title>Party at the Capulets</title>
  151. </subscription>
  152. </item>
  153. </publish>
  154. </pubsub>
  155. </iq>]]></example>
  156. </section2>
  157. <section2 topic='Removing a subscription from the list' anchor='usecases'>
  158. <example caption='Remove a subscription from the list '><![CDATA[
  159. <iq type='set'
  160. from='romeo@montague.lit'
  161. to='pubsub.shakespeare.lit'
  162. id='unsub1'>
  163. <pubsub xmlns='http://jabber.org/protocol/pubsub'>
  164. <retract node='urn:xmpp:pubsub:subscription'>
  165. <item id='0bc0e76cb803b3b107aa369169d8c0d45086f844'/>
  166. </retract>
  167. </pubsub>
  168. </iq>]]></example>
  169. </section2>
  170. <section2 topic='Modifiying a subscription of the list' anchor='usecases'>
  171. <example caption='Change the information of a subscription of the list '><![CDATA[
  172. <iq type='set'
  173. from='romeo@montague.lit'
  174. to='pubsub.shakespeare.lit'
  175. id='unsub1'>
  176. <pubsub xmlns='http://jabber.org/protocol/pubsub'>
  177. <publish node='urn:xmpp:pubsub:subscription'>
  178. <item id='0bc0e76cb803b3b107aa369169d8c0d45086f844'>
  179. <subscription xmlns='urn:xmpp:pubsub:subscription:0'
  180. server='pubsub.shakespeare.lit' node='party'>
  181. <title>Party at the Capulets [canceled !]</title>
  182. </subscription>
  183. </item>
  184. </publish>
  185. </pubsub>
  186. </iq>]]></example>
  187. </section2>
  188. </section1>
  189. <section1 topic='Internationalization Considerations' anchor='i18n'>
  190. <p>The title element of a &subscription; item SHOULD be in the same language as the contents of the node in question.</p>
  191. </section1>
  192. <section1 topic='Security Considerations' anchor='security'>
  193. <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>
  194. </section1>
  195. <section1 topic='IANA Considerations' anchor='iana'>
  196. <p>This document requires no interaction with &IANA;.</p>
  197. </section1>
  198. <section1 topic='XMPP Registrar Considerations' anchor='registrar'>
  199. <p>The &REGISTRAR; is requested to issue an initial namespace of "urn:xmpp:pubsub:subscription".</p>
  200. </section1>
  201. <section1 topic='XML Schema' anchor='schema'>
  202. <p>REQUIRED for protocol specifications.</p>
  203. </section1>
  204. </xep>