%ents; ]>
Pubsub Subscription Storage This JEP defines a protocol for storing subscriptions to Pubsub nodes. &LEGALNOTICE; 0173 Deferred Historical Standards JIG Council XMPP Core JEP-0049 JEP-0060 pubsubs Magnus Henoch henoch@dtek.chalmers.se legoscia@jabber.cd.chalmers.se 0.1 2006-02-09 psa

Initial JEP version; changed title to Pubsub Subscription Storage; changed namespace to storage:pubsubs for consistency with other storage JEPs.

0.0.4 2005-12-11 mh

Add resource attribute.

0.0.3 2005-11-13 mh

Add subscription attribute.

0.0.2 2005-10-28 mh

Fix typo and schema.

0.0.1 2005-10-25 mh

First draft.

&jep0060; allows Jabber entities to subscribe to various kinds of information, but provides no way of remembering which nodes a user has subscribed to. Other protocols (e.g. &jep0080;, &jep0084;) allow information about a certain entity to be published to a Pubsub node. These protocols use &jep0030; to allow other entities to find the pubsub node used by a certain entity, but provide no way of performing the opposite mapping, from pubsub node to information source. This JEP attempts to fill that void, using &jep0049; for storing information about subscriptions.

This protocol enables Jabber clients to do the following:

The <subscriptions/> element qualified by the 'storage:pubsubs' namespace is the root element used in the jabber:iq:private transactions. It has zero or more <subscription/> child elements, each of which MUST possess the following attributes:

Additionally, the <subscription/> element MAY possess these attributes:

In this example, the user already has a subscription to Juliet's geolocation, possibly established through another client.

]]> ]]>

Due to the nature of JEP-0049, incremental updates are not possible; a client MUST send the entire <subscriptions/> node for each update. Before performing the update, the client SHOULD retrieve the stored subscriptions, and incorporate any changes.

In this example, the user has just subscribed to Romeo's tune (see &jep0118;). Assuming that retrieving happened as in the previous use case, updating the subscriptions proceeds as follows:

]]> ]]>

Having recorded the retrieved mappings, the client is now prepared to identify incoming pubsub events. Assume that the following event arrives:

Yes Heart of the Sunrise Yessongs 3 686 ]]>

The client now knows that this information comes from romeo@montague.net.

Pubsub events offer an opportunity to spoof sender addresses e.g. through 'replyto' data (as specified by the &jep0033; protocol). This protocol attempts to close that hole. It does so by the following rules and assumptions:

This JEP requires no interaction with &IANA;.

No namespaces or parameters need to be registered with the ®ISTRAR; as a result of this JEP.

]]>