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'> - - Peter Saint-Andre - Saint-AndrePeter - stpeter - psa - https://stpeter.im/images/stpeter_oscon.jpg - 1966-08-06 - - - workvoice - 1 - - Suite 600 - 1899 Wynkoop Street - Denver - CO - 80202 - USA - - - home - - - Parker - CO - 80138 - USA - - - - workvoice - 1 - - tel:+1-303-308-3282 - - - workfax - tel:+1-303-308-3219 - - - - cellvoicetext - - tel:+1-720-256-6756 - - - homevoice - tel:+1-303-555-1212 - - geo:39.59,-105.01 - <text>Executive Director</text> - Patron Saint - - work - XMPP Standards Foundation - - https://stpeter.im/ - - - More information about me is located on my - personal website: https://stpeter.im/ - - - M - - 1 - en - - - work - psaintan@cisco.com - - - home - stpeter@jabber.org - - - work - xmpp:psaintan@cisco.com - - - home - xmpp:stpeter@jabber.org - - - https://stpeter.im/stpeter.asc - - - -]]> -

If no vCard exists, the server MUST return an IQ-result containing an empty <vcard/> element.

- - + + + + + Peter Saint-Andre + Saint-AndrePeter + stpeter + psa + https://stpeter.im/images/stpeter_oscon.jpg + 1966-08-06 + + + workvoice + 1 + + Suite 600 + 1899 Wynkoop Street + Denver + CO + 80202 + USA + + + home + + + Parker + CO + 80138 + USA + + + + workvoice + 1 + + tel:+1-303-308-3282 + + + workfax + tel:+1-303-308-3219 + + + + cellvoicetext + + tel:+1-720-256-6756 + + + homevoice + tel:+1-303-555-1212 + + geo:39.59,-105.01 + <text>Executive Director</text> + Patron Saint + + work + XMPP Standards Foundation + + https://stpeter.im/ + + + More information about me is located on my + personal website: https://stpeter.im/ + + + M + + 1 + en + + + work + psaintan@cisco.com + + + home + stpeter@jabber.org + + + work + xmpp:psaintan@cisco.com + + + home + xmpp:stpeter@jabber.org + + + https://stpeter.im/stpeter.asc + + + + + ]]>
-

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 @@ + type='result'> + + + + + + ]]>

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:

    -
  1. Implicitly subscribe by advertising support for "urn:xmpp:vcard4+notify" in her &xep0115; data. Romeo's PEP service then automatically sends vCard updates to her when it receives presence from her, until and unless she sends presence of type unavailable or stops advertising an interest in vCard updates. This is in accordance with XEP-0060, section 6.1.
  2. +
  3. Implicitly subscribe by advertising support for "urn:xmpp:vcard4+notify" in her &xep0115; data. Romeo's PEP service then automatically sends vCard updates to her when it receives presence from her, until and unless she sends presence of type unavailable or stops advertising an interest in vCard updates. This is in accordance with &xep0060;, section 6.1.
  4. Explicitly subscribe by sending a formal subscription request to the "urn:xmpp:vcard4" node at Romeo's JabberID. Romeo's PEP service might send her all vCard updates even if she is offline at the time (depending on service policies regarding presence integration).
-

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).