-
Notifications
You must be signed in to change notification settings - Fork 121
/
xep-0330.xml
204 lines (204 loc) · 7.8 KB
/
xep-0330.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
<?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>