diff --git a/xep-0292.xml b/xep-0292.xml index 9fccfd52..313387c3 100644 --- a/xep-0292.xml +++ b/xep-0292.xml @@ -155,16 +155,18 @@
This section describes the use of the vCard format for self-publication and retrieval of publicly-accessible information about any entity on an XMPP network, thus fulfilling all the use cases of the old vcard-temp format.
-As in XEP-0054, the primary method for publishing and retrieving vCards is the XMPP &IQ; stanza. (Although it would have been possible to use &xep0222; for public storage and retrieval, community consensus is that storage via IQ is more backward-compatible with XEP-0054, and that publish-subscribe is more appropriate only for event notifications.)
-An XMPP entity retrieves the vCard of another entity (or itself) by sending an IQ-get to the target entity containing a <vcard/> child element (note the lowercase "c"!) qualified by the 'urn:ietf:params:xml:ns:vcard-4.0' namespace.
+The primary method for publishing and retrieving vCards is via &xep0222; using the node name 'urn:xmpp:vcard4'.
+An XMPP entity retrieves the vCard of another entity (or itself) by sending a PEP-get to the target entity for the 'urn:xmpp:vcard4' node.
If a vCard exists for the target entity, the responsible entity (e.g., the XMPP server that hosts the account for a bare JID) MUST return the data in an IQ-result:
@@ -173,116 +175,118 @@ id='bx81v356' to='samizzi@cisco.com/foo' type='result'> -80202
- 80138
- If no vCard exists, the server MUST return an IQ-result containing an empty <vcard/> element.
-80202
+ 80138
+ An XMPP entity publishes or updates its vCard by sending an IQ-set to itself (typically its bare JID), containing a <vcard/> child element qualified by the 'urn:ietf:params:xml:ns:vcard-4.0' namespace. The publication request needs to include the entire vCard, not a "diff" against the prior data (if any).
+An XMPP entity publishes or updates its vCard by doing a PEP publish to its own 'urn:xmpp:vcard4' node. The publication request needs to include the entire vCard, not a "diff" against the prior data (if any).
If no error occurs, the responsible entity returns an IQ-result.
@@ -290,38 +294,41 @@Note: An entity MAY have authorization to update the vCard of another entity (e.g., a server administrator might have authorization to modify the server's vCard).
&xep0060; provides a way to subscribe to events, and &xep0163; defines a pubsub profile for events associated with instant messaging (IM) accounts. If PEP is supported by an IM server, it can be used to automatically generate event notifications when a user's vCard is modified.
-The canonical location for notifications regarding a user's vCard is a pubsub node whose name is "urn:xmpp:vcard4".
-&xep0163; also provides a way to subscribe to events. It can be used to automatically generate event notifications when a user's vCard is modified.
Let us imagine that Juliet wishes to receive the updates that Romeo publishes to his vCard. She has two options:
Because Juliet has sent presence to Romeo including Entity Capabilities data that includes the "urn:xmpp:vcard4+notify" feature, Romeo's XMPP server will send a PEP notification to Juliet. The notification can include an XMPP message body for backward-compatibility with XMPP clients that are not pubsub-capable. This is in accordance with XEP-0060, second 6.1.7.
+Because Juliet has sent presence to Romeo including Entity Capabilities data that includes the "urn:xmpp:vcard4+notify" feature, Romeo's XMPP server will send a PEP notification to Juliet.
Note: There is no payload, because this is a pure notification (the receiver needs to retrieve the vCard using an IQ-get as described earlier).
+Note: There is no payload, because this is a pure notification (the receiver needs to retrieve the vCard as described earlier).