Per a vote of the XMPP Council, advanced status to Draft; also modified namespace to use XMPP URN.
The simple communications blocking protocol specified herein is intended to be a user-friendly "front end" to a subset of the functionality defined by the privacy lists protocol. If a service deploys both privacy lists and simple communications blocking, both protocols MUST use the same back-end data store.
-Wherever possible, this document attempts to define a protocol that is fully consistent with XEP-0016. If a particular aspect of functionality (e.g., stanza processing or JID matching rules) is not specified herein, the relevant text in XEP-0016 shall be taken to apply.
+The simple communications blocking protocol specified herein is intended to be a user-friendly "front end" to a subset of the functionality defined by the privacy lists protocol (XEP-0016). If a service deploys both privacy lists and simple communications blocking, both protocols MUST use the same back-end data store.
+Wherever possible, this document attempts to define a protocol that is fully consistent with XEP-0016. If a particular aspect of functionality is not specified herein, the relevant text in XEP-0016 shall be taken to apply.
Matching of JIDs as specified in the 'jid' attribute of the <item/> element SHOULD proceed in the following order (this is consistent with XEP-0016):
@@ -97,28 +103,28 @@If the server supports the protocol defined herein, it MUST return a feature of "http://jabber.org/protocol/blocking":
+If the server supports the protocol defined herein, it MUST return a feature of "urn:xmpp:blocking":
In order for a client to request a user's list of blocked contacts (e.g., in order to determine whether to unblock a contact), it shall send an IQ-get with no 'to' address (thus handled by the user's server) containing a <blocklist/> element qualified by the 'http://jabber.org/protocol/blocking' namespace:
+In order for a client to request a user's list of blocked contacts (e.g., in order to determine whether to unblock a contact), it shall send an IQ-get with no 'to' address (thus handled by the user's server) containing a <blocklist/> element qualified by the 'urn:xmpp:blocking' namespace:
If the user has any contacts in its blocklist, the server MUST return an IQ-result containing a <blocklist/> element that in turn contains one child <item/> element for each blocked contact:
If the user has no contacts in its blocklist, the server MUST return an IQ-result containing an empty <blocklist/> element:
A client SHOULD retrieve the block list after authenticating with its server and before completing any blocking or unblocking operations.
In order for a user to block communications with a contact, the user's client shall send an IQ-set with no 'to' address (thus handled by the user's server) containing a <block/> element qualified by the 'http://jabber.org/protocol/blocking' namespace, where the JID to be blocked is encapsulated as the 'jid' attribute of the <item/> child element:
+In order for a user to block communications with a contact, the user's client shall send an IQ-set with no 'to' address (thus handled by the user's server) containing a <block/> element qualified by the 'urn:xmpp:blocking' namespace, where the JID to be blocked is encapsulated as the 'jid' attribute of the <item/> child element:
The server MUST also send an IQ-set to all of the user's resources that have requested the blocklist, containing the blocked item(s):
If the foregoing suggestions are followed, the user will appear offline to the contact.
-If the user attempts to send an outbound stanza to the contact, the user's server MUST NOT route the stanza to the contact but instead MUST return a ¬acceptable; error containing an application-specific error condition of <blocked/> qualified by the 'http://jabber.org/protocol/blocking#errors' namespace:
+If the user attempts to send an outbound stanza to the contact, the user's server MUST NOT route the stanza to the contact but instead MUST return a ¬acceptable; error containing an application-specific error condition of <blocked/> qualified by the 'urn:xmpp:blocking:errors' namespace:
In order for a user to unblock communications with a contact, the user's client shall send an IQ-set with no 'to' address (thus handled by the user's server) containing an <unblock/> element qualified by the 'http://jabber.org/protocol/blocking' namespace, where the JID to be unblocked is encapsulated as the 'jid' attribute of the <item/> child element:
+In order for a user to unblock communications with a contact, the user's client shall send an IQ-set with no 'to' address (thus handled by the user's server) containing an <unblock/> element qualified by the 'urn:xmpp:blocking' namespace, where the JID to be unblocked is encapsulated as the 'jid' attribute of the <item/> child element:
The server MUST also send an IQ-set to all of the user's resources that have requested the blocklist, containing the unblocked item(s):
After the user has unblocked communications with the contact, the user's server MUST deliver any subsequent XML stanzas from the contact to the user.
In order for a user to unblock communications with all contacts, the user's client shall send an IQ-set with no 'to' address (thus handled by the user's server) containing an empty <unblock/> element qualified by the 'http://jabber.org/protocol/blocking' namespace:
+In order for a user to unblock communications with all contacts, the user's client shall send an IQ-set with no 'to' address (thus handled by the user's server) containing an empty <unblock/> element qualified by the 'urn:xmpp:blocking' namespace:
If the server can successfully process the unblock command, it MUST return an IQ-result:
@@ -224,11 +230,11 @@The server MUST also send an IQ-set to all of the user's resources that have requested the blocklist, containing notification of global unblocking:
Once the user has unblocked communications with all contacts, the user's server MUST deliver any XML stanzas from those contacts to the user.
@@ -246,7 +252,7 @@The ®ISTRAR; shall include 'http://jabber.org/protocol/blocking' and 'http://jabber.org/protocol/blocking#errors' in its registry of protocol namespaces (see &NAMESPACES;).
+The ®ISTRAR; includes 'urn:xmpp:blocking' and 'urn:xmpp:blocking:errors' in its registry of protocol namespaces (see &NAMESPACES;).
@@ -328,6 +334,6 @@
Thanks to Valerie Mercier, Maciek Niedzielski, and Remko Tronçon for their feedback.
+Thanks to Valerie Mercier, Maciek Niedzielski, Kevin Smith, and Remko Tronçon for their feedback.