This specification defines a recommended best practice for linking to JabberIDs from documents hosted on the World Wide Web.
WARNING: This Standards-Track document is Experimental. Publication as an XMPP Extension Protocol does not imply approval of this proposal by the XMPP Standards Foundation. Implementation of the protocol described herein is encouraged in exploratory implementations, but production systems should not deploy implementations of this protocol until it advances to a status of Draft.
Series: XEP
Number: 0240
Publisher: XMPP Standards Foundation
Status:
Experimental
Type:
Standards Track
Version: 0.1
Last Updated: 2008-04-30
Approving Body: XMPP Council
Dependencies: XMPP Core
Supersedes: None
Superseded By: None
Short Name: NOT_YET_ASSIGNED
Wiki Page: <http://wiki.jabber.org/index.php/Auto-Discovery of JabberIDs (XEP-0240)>
JabberID:
stpeter@jabber.org
URI:
https://stpeter.im/
Email:
ralphm@ik.nu
JabberID:
ralphm@ik.nu
The preferred venue for discussion of this document is the Standards discussion list: <http://mail.jabber.org/mailman/listinfo/standards>.
Errata may be sent to <editor@xmpp.org>.
The Extensible Messaging and Presence Protocol (XMPP) is defined in the XMPP Core (RFC 3920) and XMPP IM (RFC 3921) specifications contributed by the XMPP Standards Foundation to the Internet Standards Process, which is managed by the Internet Engineering Task Force in accordance with RFC 2026. Any protocol defined in this document has been developed outside the Internet Standards Process and is to be understood as an extension to XMPP rather than as an evolution, development, or modification of XMPP itself.
The following keywords as used in this document are to be interpreted as described in RFC 2119: "MUST", "SHALL", "REQUIRED"; "MUST NOT", "SHALL NOT"; "SHOULD", "RECOMMENDED"; "SHOULD NOT", "NOT RECOMMENDED"; "MAY", "OPTIONAL".
1. Introduction
2. Link Format
3. Processing
4. Examples
5. Security Considerations
6. IANA Considerations
7. XMPP Registrar Considerations
Notes
Revision History
HTML 4.0 [1] defines a <link/> element that defines a relationship between a document and another resource on the Internet. Such a resource can be a JabberID. Examples include the JabberID of a document author, a Multi-User Chat [2] room where the document can be discussed, or a Publish-Subscribe [3] node where RSS or Atom feeds related to the document are hosted (e.g., see RFC 4287 [4]). This specification defines a recommended approach for linking to JabberIDs in this way.
The RECOMMENDED format is as follows.
<link href='xmpp-uri' rel='some-relation'/>
The 'href' attribute is REQUIRED and its value MUST be an XMPP URI or IRI that conforms to RFC 5122 [5]. The URI SHOULD NOT include an action as described in XMPP URI Query Components [6] and registered at <http://www.xmpp.org/registrar/querytypes.html>, so that the URI can be appropriately dereferenced as described below. The URI MAY include a node key as shown in the examples below.
The 'rel' attribute is RECOMMENED and its value SHOULD be a link relation as registered in the IANA MIME Atom Link Relations Registry [7] or other registry.
In addition to 'href' and 'rel', the HTML and XHTML specifications define a number of other allowable attributes for the <link/> element. These attributes MAY be included. However, because a JabberID is a bare address and there is no hosted media associated with a JabberID, the 'charset', 'media', and 'type' attribute SHOULD NOT be included.
When an application encounters an auto-discovery link to a JabberID, it SHOULD pass it to an appropriate helper application (such as an XMPP client). The helper application then SHOULD dereference the URI, and send an XMPP Service Discovery [8] request to the referenced JID, passing the optional node parameter. The service discovery response therefore enables a full range of future actions.
The following example shows a JabberID that points to the same entity as the document itself (e.g., the author of an "about-the-author" page).
Example 2. Link Pointing to an Author
<link href='xmpp:stpeter@jabber.org' rel='self'/>
The following example shows a JabberID that points to a multi-user chat room where the document can be discussed.
Example 3. Link Pointing to a Chat Room
<link href='xmpp:jdev@conference.jabber.org'/>
The following example shows a JabberID that points to a publish-subscribe node where notifications related to the document can be retrieved.
Example 4. Link Pointing to a Pubsub Node
<link href='xmpp:pubsub.jabber.org?;node=xeps' rel='alternate'/>
Advertising an XMPP address so that it can be automatically discovered may expose that address to abusive communications. Care should be taken when choosing whether to advertise a JID that corresponds to an end user's primary XMPP address.
This document currently requires no interaction with the Internet Assigned Numbers Authority (IANA) [9]. However, a future version of this specification may register new link relations with the IANA.
This document requires no interaction with the XMPP Registrar [10].
1. HTML 4.0 <http://www.w3.org/TR/REC-html40>.
2. XEP-0045: Multi-User Chat <http://www.xmpp.org/extensions/xep-0045.html>.
3. XEP-0060: Publish-Subscribe <http://www.xmpp.org/extensions/xep-0060.html>.
4. RFC 4287: The Atom Syndication Format <http://tools.ietf.org/html/rfc4287>.
5. RFC 5122: Internationalized Resource Identifiers (IRIs) and Uniform Resource Identifiers (URIs) for the Extensible Messaging and Presence Protocol (XMPP) <http://tools.ietf.org/html/rfc5122>.
6. XEP-0147: XMPP URI Query Components <http://www.xmpp.org/extensions/xep-0147.html>.
7. IANA registry of Atom link relations <http://www.iana.org/assignments/link-relations.html>.
8. XEP-0030: Service Discovery <http://www.xmpp.org/extensions/xep-0030.html>.
9. The Internet Assigned Numbers Authority (IANA) is the central coordinator for the assignment of unique parameter values for Internet protocols, such as port numbers and URI schemes. For further information, see <http://www.iana.org/>.
10. The XMPP Registrar maintains a list of reserved protocol namespaces as well as registries of parameters used in the context of XMPP extension protocols approved by the XMPP Standards Foundation. For further information, see <http://www.xmpp.org/registrar/>.
Initial published version.
(psa)First draft.
(psa/rm)END