diff --git a/xep-0110.xml b/xep-0110.xml index 7de5f84a..7a37bb30 100644 --- a/xep-0110.xml +++ b/xep-0110.xml @@ -1,29 +1,22 @@ - + %ents; ]> - - + +
Generic Maps A protocol for transport of generic maps (graphical displays of specific subsets of buddies). - &LEGALNOTICE; - 0110 Deferred Standards Track Standards JIG None - None None Not yet assigned - - Jiri Komzak @@ -45,7 +38,7 @@

Generic maps provide a way to extending the roster into a general display showing contacts (JIDs) together with further additional information. The further information is provided by the position in the map (and possibly by the dot type - e.g. shape or colour). In addition to showing people belonging to one roster group, it is possible to cluster people, use more detailed inset maps etc. each of these features providing a unique context.

-

The motivations for this JEP are:

+

The motivations for this document are:

  • It is faster and easier to find people using a rich graphical view as compared to linear lists/trees
  • Maps provide easily understandable further information (context) about the contact
  • @@ -85,7 +78,7 @@

    The map in Example 1 uses an implicit map projection assuming that attributes x and y are directly the co-ordinates of a particular entity (e.g. buddy1@jabber.org) in the image (ortho_0.gif) expressed in pixels.

    -

    A similar map with coordinates specified using geographic latitude + longitude (possibly obtained using Geographic Location Information JEP-0080: Geographic Location Information http://www.jabber.org/jeps/jep-0080.html extension) is shown in Example 2 (only the map tag is shown).

    +

    A similar map with coordinates specified using geographic latitude + longitude (possibly obtained using Geographic Location Information XEP-0080: Geographic Location Information http://www.xmpp.org/extensions/xep-0080.html extension) is shown in Example 2 (only the map tag is shown).

    @@ -114,9 +107,6 @@ ]]>
    -

    The following guidelines may assist the developers of a mapping plug-in in the Jabber clients.

    @@ -126,7 +116,7 @@

    The image files (maps) are transferred as an extra extension of packet using the filename as a unique id.

    -

    The attributes are either specified in the <map/> tag or known in the environment (e.g. presence), but they could be also provided by a subscribed service using Publish-Subscribe JEP-0060: Publish-Subscribe http://www.jabber.org/jeps/jep-0060.html (e.g. GPS or LBS from a mobile operator).

    +

    The attributes are either specified in the <map/> tag or known in the environment (e.g. presence), but they could be also provided by a subscribed service using Publish-Subscribe XEP-0060: Publish-Subscribe http://www.xmpp.org/extensions/xep-0060.html (e.g. GPS or LBS from a mobile operator).

    The clustering of items can be specified directly in the map tag or done using a pixel resolution of the display available.

    @@ -138,19 +128,7 @@

    No IANA interaction required.

    - -

    The Jabber Registrar The Jabber Registrar maintains a list of reserved Jabber namespaces as well as a registry of parameters used in the context of JEPs approved by the JSF. For further information, see http://www.jabber.org/registrar/ will need to register the new namespace of "http://jabber.org/protocol/map".

    + +

    The ®ISTRAR; will need to register the new namespace of "http://jabber.org/protocol/map".

    - - - + diff --git a/xep-0111.xml b/xep-0111.xml index 2ed7dccf..17a2baa9 100644 --- a/xep-0111.xml +++ b/xep-0111.xml @@ -1,10 +1,10 @@ - + %ents; ]> - - + +
    A Transport for Initiating and Negotiating Sessions (TINS) This document defined a SIP-compatible transport for initiating and negotiating sessions using SDP over XMPP. @@ -20,7 +20,7 @@ - JEP-0166 + XEP-0166 tins &hildjj; @@ -29,7 +29,7 @@ 0.8 2005-12-21 psa/jjh - Retracted in favor of Jingle (JEP-0166). + Retracted in favor of Jingle (XEP-0166). 0.7 @@ -41,7 +41,7 @@ 0.6 2004-10-26 psa/jjh - Added extended addresses and SHIM headers to examples in order to illustrate the use of JEP-0033 and JEP-0121. + Added extended addresses and SHIM headers to examples in order to illustrate the use of XEP-0033 and XEP-0121. 0.5 @@ -75,13 +75,13 @@
    -

    Note Well: This proposal has been retracted by the authors in favor of &jep0166;.

    +

    Note Well: This proposal has been retracted by the authors in favor of &xep0166;.

    The Session Description Protocol (SDP; see &rfc2327;) provides a mechanism for describing multimedia sessions that are advertised and negotiated over the Internet. The "Transport for Initiating and Negotiating Sessions" (TINS) specified herein describes how to use SDP to build a framework for media stream/session initiation and negotiation between entities that natively support XMPP (see &rfc3920;). The approach taken herein is to send pure SDP. While earlier versions of this document used &sdpng; (an XML representation of SDP), SDPng is a more experimental technology; by contrast, SDP is a stable protocol and there is broad support for it by existing gateways and devices. The use of SDP rather than SDPng thus enables the Jabber/XMPP community to implement solutions that are deployable on the Internet today. In particular, TINS provides an XMPP representation of standard session management semantics such as those provided by the Session Initiation Protocol (SIP; see &rfc3261;). As a result, native XMPP clients that support TINS can negotiate out-of-band multimedia sessions (e.g., use of the Real-Time Transport Protocol or RTP; see &rfc3550;) and XMPP services that support TINS can easily interoperate with SIP services through gateways.

    -

    This JEP addresses the following requirements:

    +

    This document addresses the following requirements:

    1. Enable an XMPP entity to negotiate an out-of-band multimedia session with another XMPP entity.
    2. Enable an XMPP entity to negotiate an out-of-band multimedia session with a non-XMPP entity through a gateway.
    3. @@ -102,14 +102,14 @@ Any restricted XML characters in the SDP data (i.e., & ' < > ") MUST be properly escaped when contained in the XML character data of the <sdp/> element (for example, the ' character MUST be escaped to &apos;). It is the responsibility of the XMPP recipient or translating gateway to unescape these restricted characters for processing.

      The request stanza MAY also include either or both of the following:

        -
      • Header information or Internet metadata (such as that defined by RFC 3261) in the format specified by &jep0131;.
      • -
      • Multicast addresses as specified by &jep0033;.
      • +
      • Header information or Internet metadata (such as that defined by RFC 3261) in the format specified by &xep0131;.
      • +
      • Multicast addresses as specified by &xep0033;.

      In reply to a request, the receiver MUST send zero or more replies, with the value of the 'method' attribute set to a value of "result" and the value of the 'code' attribute set to one of the valid SIP response codes as specified in Section 21 of RFC 3261.

      -

      Before initiating a TINS negotiation, an XMPP entity SHOULD determine that the target entity supports the 'http://jabber.org/protocol/tins' namespace. Such discovery SHOULD occur by means of &jep0030;, either directly by querying the target entity or indirectly by means of &jep0115;. If the target entity is a non-XMPP entity that is contacted through a gateway, the gateway itself SHOULD reply to service discovery queries on behalf of the non-XMPP entity and SHOULD insert a client capabilities extension into the presence stanzas it generates on behalf of the non-XMPP entity.

      -

      If an XMPP entity receives, or a gateway handles, a &MESSAGE; stanza containing a <tins/> element qualified by the 'http://jabber.org/protocol/tins' namespace but it does not understand the TINS protocol, it SHOULD either silently ignore it or return a &unavailable; error (see &jep0086; for error syntax).

      +

      Before initiating a TINS negotiation, an XMPP entity SHOULD determine that the target entity supports the 'http://jabber.org/protocol/tins' namespace. Such discovery SHOULD occur by means of &xep0030;, either directly by querying the target entity or indirectly by means of &xep0115;. If the target entity is a non-XMPP entity that is contacted through a gateway, the gateway itself SHOULD reply to service discovery queries on behalf of the non-XMPP entity and SHOULD insert a client capabilities extension into the presence stanzas it generates on behalf of the non-XMPP entity.

      +

      If an XMPP entity receives, or a gateway handles, a &MESSAGE; stanza containing a <tins/> element qualified by the 'http://jabber.org/protocol/tins' namespace but it does not understand the TINS protocol, it SHOULD either silently ignore it or return a &unavailable; error (see &xep0086; for error syntax).

      @@ -279,10 +279,10 @@ -

      This JEP requires no interaction with &IANA;.

      +

      This document requires no interaction with &IANA;.

      - +

      The ®ISTRAR; shall include 'http://jabber.org/protocol/tins' in its registry of protocol namespaces.

      @@ -332,4 +332,4 @@
      - + diff --git a/xep-0112.xml b/xep-0112.xml index 2f8e08b6..2aa8c0e5 100644 --- a/xep-0112.xml +++ b/xep-0112.xml @@ -1,13 +1,13 @@ - + %ents; ]> - - + +
      User Physical Location - This document defines a protocol for communicating information about the current physical location of a Jabber entity. NOTE WELL: The protocol defined herein has been folded into JEP-0080. + This document defines a protocol for communicating information about the current physical location of a Jabber entity. NOTE WELL: The protocol defined herein has been folded into XEP-0080. &LEGALNOTICE; 0112 Obsolete @@ -15,16 +15,13 @@ Standards JIG XMPP Core - JEP-0060 + XEP-0060 - JEP-0080 + XEP-0080 physloc - - http://jabber.org/protocol/physloc/physloc.xsd - &stpeter; 1.0 @@ -54,19 +51,19 @@ 0.5 2004-05-11 psa - Changed root element, namespace, and shortname to physloc to prevent conflict with JEP-0033. + Changed root element, namespace, and shortname to physloc to prevent conflict with XEP-0033. 0.4 2004-04-25 psa - Corrected several errors; added reference to JEP-0033. + Corrected several errors; added reference to XEP-0033. 0.3 2004-02-19 psa - Revived JEP upon modifications to JEP-0080; changed root element, namespace, and shortname to 'address'. + Revived document upon modifications to XEP-0080; changed root element, namespace, and shortname to 'address'. 0.2 @@ -82,8 +79,8 @@
      -

      NOTE WELL: The protocol defined herein has been folded into &jep0080;.

      -

      This JEP defines an extension mechanism for capturing "extended presence" information about a user's current physical location. The information structures defined herein are intended to provide a format for describing a location or address that may change fairly frequently (e.g., one's location on a campus or in a large building) in situations where the user or application does not possess, or does not wish to communicate, detailed latitude/longitude data of the type defined in JEP-0080.

      +

      NOTE WELL: The protocol defined herein has been folded into &xep0080;.

      +

      This document defines an extension mechanism for capturing "extended presence" information about a user's current physical location. The information structures defined herein are intended to provide a format for describing a location or address that may change fairly frequently (e.g., one's location on a campus or in a large building) in situations where the user or application does not possess, or does not wish to communicate, detailed latitude/longitude data of the type defined in XEP-0080.

      Information about the user's location is provided by the user and propagated on the network by the user's client. The information is structured by means of an <physloc/> element that is qualified by the 'http://jabber.org/protocol/physloc' namespace. The location information itself is provided as the XML character data of the following children of the <physloc/> element:

      @@ -102,7 +99,7 @@
      -

      The <physloc/> information SHOULD be communicated by means of &jep0060;. Because physical location information is not pure presence information and can change independently of the user's availability, it SHOULD NOT be provided as an extension to &PRESENCE;.

      +

      The <physloc/> information SHOULD be communicated by means of &xep0060;. Because physical location information is not pure presence information and can change independently of the user's availability, it SHOULD NOT be provided as an extension to &PRESENCE;.

      -

      As mentioned in JEP-0060, the stanza containing the event notification or payload MAY also include 'replyto' data (as specified by the &jep0033; protocol) to provide an explicit association between the published data and the user:

      +

      As mentioned in XEP-0060, the stanza containing the event notification or payload MAY also include 'replyto' data (as specified by the &xep0033; protocol) to provide an explicit association between the published data and the user:

      -

      There are many XML data formats for physical location or address information. It is beyond the scope of this JEP to provide a mapping from the extension defined herein to every such format. However, it would be valuable to provide a mapping from the Jabber/XMPP format to the formats used in other presence or extended presence protocols. The two main protocols of interest are:

      +

      There are many XML data formats for physical location or address information. It is beyond the scope of this document to provide a mapping from the extension defined herein to every such format. However, it would be valuable to provide a mapping from the Jabber/XMPP format to the formats used in other presence or extended presence protocols. The two main protocols of interest are:

      1. The Wireless Village (now "IMPS") specifications for mobile instant messaging; these specifications define a presence attribute for address information as encapsulated in the IMPS "Address" element The Wireless Village Initiative: Presence Attributes v1.1 (WV-029); for further information, visit <http://www.openmobilealliance.org/tech/affiliates/wv/wvindex.html>..

      2. The SIP-based SIMPLE specifications; in particular, the IETF's GEOPRIV Working Group has defined an extension to the IETF's &pidf; for location information, as specified in &rfc4119; (also known as "PIDF-LO").

      -

      The following table also maps the format defined herein to the vCard XML format specified in &jep0054;.

      +

      The following table also maps the format defined herein to the vCard XML format specified in &xep0054;.

      @@ -189,7 +186,7 @@ @@ -253,7 +250,7 @@ @@ -275,11 +272,11 @@

      It is imperative to control access to location information, at least by default. Imagine that a stalker got unauthorized access to this information, with enough accuracy and timeliness to be able to find the target person. This scenario could lead to loss of life, so please take access control checks seriously. A user SHOULD take care in approving subscribers and in characterizing his or her current physical location.

      -

      This JEP requires no interaction with &IANA;.

      +

      This document requires no interaction with &IANA;.

      - + -

      The ®ISTRAR; includes 'http://jabber.org/protocol/physloc' in its registry of protocol namespaces.

      +

      The ®ISTRAR; includes 'http://jabber.org/protocol/physloc' in its registry of protocol namespaces, but the namespace is deprecated.

      @@ -292,13 +289,6 @@ xmlns='http://jabber.org/protocol/physloc' elementFormDefault='qualified'> - - - The protocol documented by this schema is defined in - JEP-0112: http://www.jabber.org/jeps/jep-0112.html - - - @@ -319,4 +309,4 @@ ]]> - + diff --git a/xep-0113.xml b/xep-0113.xml index ab4e9d4b..f5852364 100644 --- a/xep-0113.xml +++ b/xep-0113.xml @@ -1,10 +1,10 @@ - + %ents; ]> - - + +
      Simple Whiteboarding A proposal for an extremely simple whiteboarding protocol over Jabber. @@ -37,14 +37,14 @@
      -

      As explained in the now obsolete JEP-0010: Whiteboarding JIG JEP-0010: Whiteboarding JIG http://www.jabber.org/jeps/jep-0010.html: "Jabber is often thought of simply as a system for instant messaging, albeit an open one. However, Jabber technology can be used, and is being used, in applications quite different from simple IM. One of these applications is whiteboarding. In collaborative work, the ability to draw (for example, to design sketches, UML schemas, house architectures, and organizational plans) is essential, as exemplified by the success of real-world whiteboarding applications such as Microsoft NetMeeting. Whiteboarding can also be used for entertainment purposes such as games and quizzes. Because of the value of whiteboarding as an important real-time collaboration tool, other IM services are beginning to offer these capabilities. For these and other reasons, I believe that a good protocol for whiteboarding in Jabber would be of great value".

      +

      As explained in the now obsolete XEP-0010: Whiteboarding JIG XEP-0010: Whiteboarding JIG http://www.xmpp.org/extensions/xep-0010.html: "Jabber is often thought of simply as a system for instant messaging, albeit an open one. However, Jabber technology can be used, and is being used, in applications quite different from simple IM. One of these applications is whiteboarding. In collaborative work, the ability to draw (for example, to design sketches, UML schemas, house architectures, and organizational plans) is essential, as exemplified by the success of real-world whiteboarding applications such as Microsoft NetMeeting. Whiteboarding can also be used for entertainment purposes such as games and quizzes. Because of the value of whiteboarding as an important real-time collaboration tool, other IM services are beginning to offer these capabilities. For these and other reasons, I believe that a good protocol for whiteboarding in Jabber would be of great value".

      The increasing penetration of pen-based devices, such as PDAs and tablet PCs, makes the need for a protocol that allows for sending freehand drawing information more urgent.

      Several attempts have been made to create a whiteboarding protocol for Jabber:

      1. Collaborative Imaging (Whiteboarding via Streaming XPM) XPM over Jabber (http://docs.jabber.org/draft-proto/html/sxpm.html) describes a protocol that sends partial bitmaps. This protocol is not suitable for freehand drawing and has not been implemented.
      2. Jabber Whiteboarding using SVG Jabber Whiteboarding using SVG http://www.protocol7.com/jabber/whiteboard_proposal.txt describes a protocol that uses a subset of SVG. It refers to a missing DTD that describes the precise subset, but there is little doubt that that subset will be hard to implement. This protocol has not been implemented.
      3. Coccinella Coccinella Project Information - JabberStudio http://www.jabberstudio.org/projects/coccinella/project/view.php is an open source implementation of a whiteboarding protocol. However, the protocol has not been documented and does not seem easy to implement. In fact it is mostly raw TCL, making an implementation of that protocol in a language other than TCL rather difficult.
      4. -
      5. Tkabber Tkabber Project Information - JabberStudio http://www.jabberstudio.org/projects/tkabber/project/view.php has a whiteboard plugin. The protocol has not been documented, but it uses a subset of SVG, similar to the one defined in this JEP.
      6. +
      7. Tkabber Tkabber Project Information - JabberStudio http://www.jabberstudio.org/projects/tkabber/project/view.php has a whiteboard plugin. The protocol has not been documented, but it uses a subset of SVG, similar to the one defined in this document.
      @@ -177,7 +177,7 @@ -

      Usually when a user wants to send a message to a contact, the client will present her with a choice between sending a message or starting a chat. If the client implements the present protocol, the client can add the options of sending a whiteboard message and starting a whiteboard chat. Whether the client offers these options for an individual contact could be based on standard &jep0030; or &jep0011; techniques.

      +

      Usually when a user wants to send a message to a contact, the client will present her with a choice between sending a message or starting a chat. If the client implements the present protocol, the client can add the options of sending a whiteboard message and starting a whiteboard chat. Whether the client offers these options for an individual contact could be based on standard &xep0030; or &xep0011; techniques.

      Presentation of a path in case of a "Single whiteboard message" is rather obvious. The presentation of multiple-user whiteboards, either chat or conference, leaves more to the imagination of the implementor. The implementor could decide to use different colors for paths drawn by different users. The saturation of a path could decrease with age.

      @@ -220,10 +220,10 @@

      There are no security features or concerns related to this proposal.

      -

      This JEP requires no interaction with the &IANA;.

      +

      This document requires no interaction with the &IANA;.

      - -

      This JEP requires registration of the namespace "http://jabber.org/protocol/swb" by the ®ISTRAR;.

      + +

      This document requires registration of the namespace "http://jabber.org/protocol/swb" by the ®ISTRAR;.

      @@ -380,4 +380,4 @@

      The author would like to thank Alexey Shchepin for helpful comments.

      -
      + diff --git a/xep-0114.xml b/xep-0114.xml index be391fa2..57764d9c 100644 --- a/xep-0114.xml +++ b/xep-0114.xml @@ -1,10 +1,10 @@ - + %ents; ]> - - + +
      Jabber Component Protocol This specification documents the existing protocol used for communication between servers and "external" components over the Jabber network. @@ -21,11 +21,11 @@ component jabber:component:accept - http://jabber.org/protocol/component/accept.xsd + http://www.xmpp.org/schemas/component-accept.xsd jabber:component:connect - http://jabber.org/protocol/component/connect.xsd + http://www.xmpp.org/schemas/component-connect.xsd &stpeter; @@ -72,14 +72,14 @@
      -

      The Jabber network has long included a wire protocol that enables trusted components to connect to Jabber servers. While this component protocol is minimal and will probably be superseded by a more comprehensive component protocol at some point, informational documentation of the existing protocol would be helpful for component and server developers. This JEP provides such documentation.

      +

      The Jabber network has long included a wire protocol that enables trusted components to connect to Jabber servers. While this component protocol is minimal and will probably be superseded by a more comprehensive component protocol at some point, informational documentation of the existing protocol would be helpful for component and server developers. This specification provides such documentation.

      Traditionally there have been two basic kinds of server-side components: "internal components" (which utilize the internal API of a server, in the past particularly the &jabberd; server) and "external components" (which communicate with a server over a wire protocol and therefore are not tied to any particular server implementation). The wire component protocol in use today enables an external component to connect to a server (with proper configuration and authentication) and to send and receive XML stanzas through the server. There are two connection methods: "accept" and "connect". When the "accept" method is used, the server waits for connections from components and accepts them when they are initiated by a component. When the "connect" method is used, the server initiates the connection to a component. The "accept" method is by far the most common method, but both are documented herein. (In the past, there has been one other connection method for external components: "execute". However, this method is obsolete and is not documented herein.)

      -

      An external component is called "trusted" because it authenticates with a server using authentication credentials that include a shared secret. This secret is commonly specified in the configuration files used by the server and component, but could be provided at runtime on the command line or extracted from a database. An external component is commonly trusted to do things that clients cannot, such as write 'from' addresses for the server's domain(s). Some server may also allow components to send packets that are used by the server's internal protocol (e.g., <log/> and <xdb/> packets in the jabberd 1.x series); however, those internal protocols are out of scope for this JEP.

      +

      An external component is called "trusted" because it authenticates with a server using authentication credentials that include a shared secret. This secret is commonly specified in the configuration files used by the server and component, but could be provided at runtime on the command line or extracted from a database. An external component is commonly trusted to do things that clients cannot, such as write 'from' addresses for the server's domain(s). Some server may also allow components to send packets that are used by the server's internal protocol (e.g., <log/> and <xdb/> packets in the jabberd 1.x series); however, those internal protocols are out of scope for this document.

      -

      The main difference between the jabber:component:* namespaces and the 'jabber:client' or 'jabber:server' namespace is authentication. External components do not use the older &jep0078; protocol (i.e., the 'jabber:iq:auth' namespace), nor do they (yet) use SASL authentication as defined in &xmppcore; (although a future component protocol would most likely use SASL). Instead, they use a special <handshake/> element whose XML character data specifies credentials for the component's session with the server. The protocol flow for stream negotiation and authentication using jabber:component:accept is as follows:

      +

      The main difference between the jabber:component:* namespaces and the 'jabber:client' or 'jabber:server' namespace is authentication. External components do not use the older &xep0078; protocol (i.e., the 'jabber:iq:auth' namespace), nor do they (yet) use SASL authentication as defined in &xmppcore; (although a future component protocol would most likely use SASL). Instead, they use a special <handshake/> element whose XML character data specifies credentials for the component's session with the server. The protocol flow for stream negotiation and authentication using jabber:component:accept is as follows:

      Given that an external component is trusted to write 'from' addresses for any user at the component's hostname, server administrators SHOULD make sure that they in fact do trust the component software.

      -

      This JEP requires no interaction with the &IANA;

      +

      This document requires no interaction with the &IANA;

      - +

      The ®ISTRAR; includes 'jabber:component:accept' and 'jabber:component:connect' in its registry of protocol namespaces.

      @@ -139,7 +139,7 @@ The protocol documented by this schema is defined in - JEP-0114: http://www.jabber.org/jeps/jep-0114.html + XEP-0114: http://www.xmpp.org/extensions/xep-0114.html @@ -343,7 +343,7 @@ The protocol documented by this schema is defined in - JEP-0114: http://www.jabber.org/jeps/jep-0114.html + XEP-0114: http://www.xmpp.org/extensions/xep-0114.html @@ -532,4 +532,4 @@ ]]> -
      + diff --git a/xep-0115.xml b/xep-0115.xml index 5b0f5f24..c6815d33 100644 --- a/xep-0115.xml +++ b/xep-0115.xml @@ -1,13 +1,13 @@ - + %ents; ]> - - + +
      Entity Capabilities - This JEP defines a protocol for broadcasting and discovering client, device, or generic entity capabilities in a way that minimizes network impact. + This document defines an XMPP protocol extension for broadcasting and discovering client, device, or generic entity capabilities in a way that minimizes network impact. &LEGALNOTICE; 0115 Draft @@ -16,13 +16,13 @@ XMPP Core XMPP IM - JEP-0030 + XEP-0030 caps - http://jabber.org/protocol/caps/caps.xsd + http://www.xmpp.org/schemas/caps.xsd &hildjj; &stpeter; @@ -87,14 +87,14 @@

      It is often desirable for a Jabber/XMPP application (commonly but not necessarily a client) to take different actions depending on the capabilities of another application from which it receives presence information. Examples include:

      • Showing a different set of icons depending on the capabilities of other clients.
      • -
      • Not sending &jep0071; content to plaintext clients such as cell phones.
      • +
      • Not sending &xep0071; content to plaintext clients such as cell phones.
      • Allowing the initiation of Voice over IP (VoIP) sessions only to clients that support VoIP.
      • -
      • Not showing a "Send a File" button if another user's client does not support &jep0096;.
      • +
      • Not showing a "Send a File" button if another user's client does not support &xep0096;.
      -

      Recently, some existing Jabber clients have begun sending &jep0092; requests to each entity from which they receive presence. That solution is impractical on a larger scale, particularly for users or applications with large rosters. This JEP proposes a more robust and scalable solution: namely, a presence-based mechanism for exchanging information about entity capabilities. This proposal is not limited to clients, and could be used by any entity that exchanges presence with another entity, e.g., a gateway. However, this JEP uses the example of clients throughout.

      +

      Recently, some existing Jabber clients have begun sending &xep0092; requests to each entity from which they receive presence. That solution is impractical on a larger scale, particularly for users or applications with large rosters. This document proposes a more robust and scalable solution: namely, a presence-based mechanism for exchanging information about entity capabilities. This proposal is not limited to clients, and could be used by any entity that exchanges presence with another entity, e.g., a gateway. However, this document uses the example of clients throughout.

      -

      This JEP makes several assumptions:

      +

      This document makes several assumptions:

      • The type of client I am using is of interest to the people on my roster.
      • Clients for the people on my roster might want to make user interface decisions based on my capabilities.
      • @@ -111,11 +111,11 @@

        The protocol defined herein addresses the following requirements:

          -
        1. Clients MUST be able to participate even if they support only &xmppcore;, &xmppim;, and &jep0030;.
        2. -
        3. Clients MUST be able to participate even if they are on networks without connectivity to other XMPP servers, services offering specialized XMPP extensions, or HTTP servers.These first two requirements effectively eliminated &jep0060; as a possible implementation of entity capabilities.
        4. +
        5. Clients MUST be able to participate even if they support only &xmppcore;, &xmppim;, and &xep0030;.
        6. +
        7. Clients MUST be able to participate even if they are on networks without connectivity to other XMPP servers, services offering specialized XMPP extensions, or HTTP servers.These first two requirements effectively eliminated &xep0060; as a possible implementation of entity capabilities.
        8. Clients MUST be able to retrieve information without querying each user.
        9. Since presence is normally broadcasted to many users, the byte size of the proposed extension MUST be as small as possible.
        10. -
        11. It MUST be possible to write a &jep0045; implementation that passes the given information along.
        12. +
        13. It MUST be possible to write a &xep0045; implementation that passes the given information along.
        14. It MUST be possible to publish a change in capabilities within a single session.
        15. Server infrastructure above and beyond that defined in XMPP Core and XMPP IM MUST NOT be required for this approach to work, although additional server infrastructure MAY be used for optimization purposes.
        @@ -147,7 +147,7 @@ -

        Once someone on my roster knows what client I am using, they need to be able to figure out what features are supported by that client. The client that received the annotated presence sends a disco#info request (as defined in JEP-0030: Service Discovery) to exactly one of the users that sent a particular combination of node and ver. If the requestor has received the same annotation from multiple JIDs, the requestor SHOULD pick a random JID from that list to which the requestor will send the disco#info request.

        +

        Once someone on my roster knows what client I am using, they need to be able to figure out what features are supported by that client. The client that received the annotated presence sends a disco#info request (as defined in XEP-0030: Service Discovery) to exactly one of the users that sent a particular combination of node and ver. If the requestor has received the same annotation from multiple JIDs, the requestor SHOULD pick a random JID from that list to which the requestor will send the disco#info request.

        The disco#info request is sent to a JID + node combination that consists of the chosen <user@host/resource> JID and a service discovery node that is constructed as follows: concatenate (1) the value of the caps 'node' attribute, (2) the "#" character, and (3) the version number specified in the caps 'ver' attribute.

        @@ -239,19 +239,19 @@
        -

        No application-specific error codes are defined by this document. See JEP-0030: Service Discovery for a list of potential service discovery error codes.

        +

        No application-specific error codes are defined by this document. See XEP-0030: Service Discovery for a list of potential service discovery error codes.

        -

        Use of the protocol specified in this JEP might make some client-specific forms of attack slightly easier, since the attacker could more easily determine the type of client being used. However, since most clients respond to jabber:iq:version requests without performing access control checks, there is no new vulnerability. Entities that wish to restrict access to capabilities information SHOULD use the privacy lists protocol defined in XMPP IM to define appropriate communications blocking (e.g., an entity MAY choose to allow IQ requests only from "trusted" entities, such as those with whom it has a subscription of "both").

        +

        Use of the protocol specified in this document might make some client-specific forms of attack slightly easier, since the attacker could more easily determine the type of client being used. However, since most clients respond to jabber:iq:version requests without performing access control checks, there is no new vulnerability. Entities that wish to restrict access to capabilities information SHOULD use the privacy lists protocol defined in XMPP IM to define appropriate communications blocking (e.g., an entity MAY choose to allow IQ requests only from "trusted" entities, such as those with whom it has a subscription of "both").

        It is possible (though unlikely) for a bad actor or rogue application to poison other entities by providing incorrect information in response to disco#info requests. To guard against such poisoning, a requesting entity MAY send disco#info requests to multiple entities that match the same node/ver or node/ext combination and then compare the results to ensure consistency. The requesting entity SHOULD NOT send the same request to more than five entities and MUST ensure that the entities are truly different by not sending the same request to multiple entities for which the <user@host> portion matches.

        -

        This JEP requires no interaction with &IANA;.

        +

        This document requires no interaction with &IANA;.

        - -

        Upon advancement of this JEP to a status of Draft, the ®ISTRAR; shall add 'http://jabber.org/protocol/caps' to its registries of protocol namespaces and service discovery features.

        + +

        The ®ISTRAR; includes 'http://jabber.org/protocol/caps' in its registries of protocol namespaces and service discovery features.

        If it is useful or interesting, the Registrar may also provide registration of the URIs to be used in the 'node' attribute, but since these URIs can be scoped according to well-defined existing rules, this is not necessary.

        @@ -267,7 +267,7 @@ The protocol documented by this schema is defined in - JEP-0115: http://www.jabber.org/jeps/jep-0115.html + XEP-0115: http://www.xmpp.org/extensions/xep-0115.html @@ -292,4 +292,4 @@ ]]> - + diff --git a/xep-0116.xml b/xep-0116.xml index a45951cf..c25e0f76 100644 --- a/xep-0116.xml +++ b/xep-0116.xml @@ -1,6 +1,6 @@ - + %ents; y"> x"> @@ -40,11 +40,11 @@ 1...xZ"> 1...eZ"> ]> - - + +
        Encrypted Sessions - This JEP specifies a protocol for session-based, end-to-end encryption of XMPP communications. + This document specifies an XMPP protocol extension for session-based, end-to-end encryption. &LEGALNOTICE; 0116 Experimental @@ -57,11 +57,11 @@ RFC 3526 RFC 3548 xml-c14n - JEP-0004 - JEP-0020 - JEP-0030 - JEP-0068 - JEP-0155 + XEP-0004 + XEP-0020 + XEP-0030 + XEP-0068 + XEP-0155 None None @@ -73,13 +73,13 @@ 0.11 2006-10-02 ip -

        Harmonised session termination with the protocol added to JEP-0155; added XML schema; minor clarifications

        +

        Harmonised session termination with the protocol added to XEP-0155; added XML schema; minor clarifications

        0.10 2006-07-18 ip -

        Added Upgradability requirement; added expires field to offline options; updated in line with latest version of PEP; moved some content to new JEPs (0187, 0188 and 0189)

        +

        Added Upgradability requirement; added expires field to offline options; updated in line with latest version of PEP; moved some content to new XEPs (0187, 0188 and 0189)

        0.9 @@ -121,7 +121,7 @@ 0.3 2005-08-02 ip/psa -

        Restored status to Experimental; complete rewrite; new Introduction, Background, Requirements and Security Considerations; new OTR-inspired protocol; JEP-0155-based negotiation; counter mode encryption; more secure hashes; offline sessions; re-keying; mac publishing; preliminary key and options publishing protocol.

        +

        Restored status to Experimental; complete rewrite; new Introduction, Background, Requirements and Security Considerations; new OTR-inspired protocol; XEP-0155-based negotiation; counter mode encryption; more secure hashes; offline sessions; re-keying; mac publishing; preliminary key and options publishing protocol.

        0.2 @@ -138,24 +138,24 @@
        -

        End-to-end encryption is a desirable feature for any communication technology. Ideally, such a technology would design encryption in from the beginning and would forbid unencrypted communications. Realistically, most communication technologies have not been designed in that manner, and Jabber/XMPP technologies are no exception. In particular, the original Jabber technologies developed in 1999 did not include end-to-end encryption by default. PGP-based encryption of message bodies and signing of presence information was added as an extension to the core protocols in the year 2000; this extension is documented in &jep0027;. When the core protocols were formalized within the Internet Standards Process by the IETF's XMPP Working Group in 2003, a different extension was defined using S/MIME-based signing and encryption of CPIM-formatted messages (see &rfc3862;) and PIDF-formatted presence information (see &rfc3863;); this extension is specified in &rfc3923;.

        -

        For reasons described in &jep0188;, the foregoing proposals (and others not mentioned) have not been widely implemented and deployed. This is unfortunate, since an open communication protocol needs to enable end-to-end encryption in order to be seriously considered for deployment by a broad range of users.

        +

        End-to-end encryption is a desirable feature for any communication technology. Ideally, such a technology would design encryption in from the beginning and would forbid unencrypted communications. Realistically, most communication technologies have not been designed in that manner, and Jabber/XMPP technologies are no exception. In particular, the original Jabber technologies developed in 1999 did not include end-to-end encryption by default. PGP-based encryption of message bodies and signing of presence information was added as an extension to the core protocols in the year 2000; this extension is documented in &xep0027;. When the core protocols were formalized within the Internet Standards Process by the IETF's XMPP Working Group in 2003, a different extension was defined using S/MIME-based signing and encryption of CPIM-formatted messages (see &rfc3862;) and PIDF-formatted presence information (see &rfc3863;); this extension is specified in &rfc3923;.

        +

        For reasons described in &xep0188;, the foregoing proposals (and others not mentioned) have not been widely implemented and deployed. This is unfortunate, since an open communication protocol needs to enable end-to-end encryption in order to be seriously considered for deployment by a broad range of users.

        This proposal describes a different approach to end-to-end encryption for use by entities that communicate using XMPP. The requirements and the consequent cryptographic design that underpin this protocol are described in Cryptographic Design of Encrypted Sessions. The basic concept is that of an encrypted session which acts as a secure tunnel between two endpoints. Once the tunnel is established, the content of each one-to-one XML stanza exchanged between the endpoints will be encrypted and then transmitted within a "wrapper" stanza.

        -

        This JEP introduces two characters to help the reader follow the necessary exchanges:

        +

        This document introduces two characters to help the reader follow the necessary exchanges:

          -
        1. "Alice" is the name of the initiator of the ESession. Within the scope of this JEP, we stipulate that her fully-qualified JID is: <alice@example.org/pda>.
        2. -
        3. "Bob" is the name of the other participant in the ESession started by Alice. Within the scope of this JEP, his fully-qualified JID is: <bob@example.com/laptop>.
        4. +
        5. "Alice" is the name of the initiator of the ESession. Within the scope of this document, we stipulate that her fully-qualified JID is: <alice@example.org/pda>.
        6. +
        7. "Bob" is the name of the other participant in the ESession started by Alice. Within the scope of this document, his fully-qualified JID is: <bob@example.com/laptop>.
        8. "Aunt Tillie" the archetypal typical user (i.e. non-technical, with only very limited knowledge of how to use a computer, and averse to performing any procedures that are not familiar).

        While Alice and Bob are introduced as "end users", they are simply meant to be examples of Jabber entities. Any directly addressable Jabber entity may participate in an ESession.

        -

        Before attempting to engage in an ESession with Bob, Alice SHOULD discover whether he supports this protocol, using either &jep0030; or the presence-based profile of JEP-0030 specified in &jep0115;.

        -

        The normal course of events is for Alice to authenticate with her server, retrieve her roster (see RFC 3921), send initial presence to her server, and then receive presence information from all the contacts in her roster. If the presence information she receives from some contacts does not include capabilities data (per JEP-0115), Alice SHOULD then send a service discovery information ("disco#info") request to each of those contacts (in accordance with JEP-0030). Such initial service discovery stanzas MUST NOT be considered part of encrypted communication sessions for the purposes of this JEP, since they perform a "bootstrapping" function that is a prerequisite to encrypted communications. The disco#info request sent from Alice to Bob might look as follows:

        +

        Before attempting to engage in an ESession with Bob, Alice SHOULD discover whether he supports this protocol, using either &xep0030; or the presence-based profile of XEP-0030 specified in &xep0115;.

        +

        The normal course of events is for Alice to authenticate with her server, retrieve her roster (see RFC 3921), send initial presence to her server, and then receive presence information from all the contacts in her roster. If the presence information she receives from some contacts does not include capabilities data (per XEP-0115), Alice SHOULD then send a service discovery information ("disco#info") request to each of those contacts (in accordance with XEP-0030). Such initial service discovery stanzas MUST NOT be considered part of encrypted communication sessions for the purposes of this document, since they perform a "bootstrapping" function that is a prerequisite to encrypted communications. The disco#info request sent from Alice to Bob might look as follows:

        The process for establishing a secure session over an insecure transport is essentially a negotiation of various ESession algorithms and other parameters, combined with a translation into XMPP syntax of the σ approach to key exchange (see Cryptographic Design of Encrypted Sessions).

        -

        If Alice believes Bob may be online then she SHOULD use the protocol specified in &jep0155; and in this section to negotiate the ESession options and the keys.

        +

        If Alice believes Bob may be online then she SHOULD use the protocol specified in &xep0155; and in this section to negotiate the ESession options and the keys.

        Note: If Alice believes Bob is offline then she SHOULD NOT use this negotiation protocol. However, she MAY use the protocol specified in Offline Encrypted Sessions to establish the ESession options and keys. Alternatively, she MAY send stanzas without encryption - in which case her client MUST make absolutely clear to her that the stanzas will not be protected and give her the option not to send the stanzas.

        Note: In any case, Alice MUST NOT initiate a new ESession with Bob if she already has one established with him.

        @@ -834,7 +834,7 @@
        • none (no compression, the output MUST be the same as the input)
        -

        Support for other algorithms is NOT RECOMMENDED since compression partially defeats the Repudiability requirement of this JEP by making it more difficult for a third party (with some knowledge of the plaintext) to modify a transcript of an encrypted session in a meaningful way. However, encrypted content is pseudo-random and cannot be compressed, so, in those cases where bandwidth is severely constrained, an implementation of ESession MAY support the following algorithms to compress content before it is encrypted:

        +

        Support for other algorithms is NOT RECOMMENDED since compression partially defeats the Repudiability requirement of this document by making it more difficult for a third party (with some knowledge of the plaintext) to modify a transcript of an encrypted session in a meaningful way. However, encrypted content is pseudo-random and cannot be compressed, so, in those cases where bandwidth is severely constrained, an implementation of ESession MAY support the following algorithms to compress content before it is encrypted:

        • lzw (see &ecma151;)
        • zlib (see &rfc1950;)
        • @@ -844,12 +844,12 @@ -

          This JEP requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          - + -

          Upon approval of this JEP, the ®ISTRAR; shall register the following namespaces:

          +

          Upon approval of this document, the ®ISTRAR; shall register the following namespaces:

          • http://jabber.org/protocol/esession
          • http://jabber.org/protocol/esession#init
          • @@ -857,11 +857,11 @@
          -

          &jep0068; defines a process for standardizing the fields used within Data Forms qualified by a particular namespace. The following fields shall be registered for use in both Encrypted Sessions and Chat Session Negotiation:

          +

          &xep0068; defines a process for standardizing the fields used within Data Forms qualified by a particular namespace. The following fields shall be registered for use in both Encrypted Sessions and Chat Session Negotiation:

          http://jabber.org/protocol/esession - JEP-0116 + XEP-0116 ESession negotiation forms + label='Supported versions of XEP-0116'/> http://jabber.org/protocol/chatneg - JEP-0155 + XEP-0155 ... ]]> @@ -984,19 +984,19 @@
        • Standardise on the X.509 public key and signature formats?
        • What challenges exist to make the OTR Gaim Plugin use this protocol natively when talking to Jabber entities? Can these be mitigated by 'non-critical' protocol changes?
        • Would anything in this protocol (e.g., its dependency on in-order stanza delivery) prevent an XMPP entity using it to exchange encrypted messages and presence with a user of a non-XMPP messaging system, assuming that the gateway both supports this protocol and is compatible with a purpose-built security plugin on the other user's client (e.g. a Gaim plugin connects to the gateway via a non-XMPP network)?
        • -
        • Could use &jep0013; (FOMR) instead of AMP to prevent any offline ESessions Bob can't decrypt being delivered to him. (Each <item/> that corresponds to an ESession message would have to contain a <ESessionID/> child, to allow Bob to discover which of his stored values of y was used to encrypt the message.)
        • +
        • Could use &xep0013; (FOMR) instead of AMP to prevent any offline ESessions Bob can't decrypt being delivered to him. (Each <item/> that corresponds to an ESession message would have to contain a <ESessionID/> child, to allow Bob to discover which of his stored values of y was used to encrypt the message.)
          1. -
          2. Ask the authors of AMP to explain how to achieve the match_resource functionality specified in JEP-0187.
          3. +
          4. Ask the authors of AMP to explain how to achieve the match_resource functionality specified in XEP-0187.
          5. Define names for X.509 SubjectPublicKeyInfo public key formats (different to X.509 certificates). This format must be used when keys are distributed within session negotiation.
          6. Add non-repudiable signing option
          7. -
          8. Perhaps the JEP needs to specify more carefully how block counters are handled between messages, especially in the event of partial blocks?
          9. +
          10. Perhaps the document needs to specify more carefully how block counters are handled between messages, especially in the event of partial blocks?
          11. Give examples of specific errors and discuss error scenarios throughout document (e.g., what should Bob do if he is not offline and he receives an offline key exchange stanza?).
          12. Define an optional protocol that would allow Alice to store values of &NsubA; and x (and the PKIDs she trusts) 'securely' on her own server (before she goes offline).
          - + diff --git a/xep-0117.xml b/xep-0117.xml index 2cdf92dd..f3238a64 100644 --- a/xep-0117.xml +++ b/xep-0117.xml @@ -1,13 +1,13 @@ - + %ents; ]> - - + +
          Intermediate IM Protocol Suite - This JEP defines a recommended suite of Jabber/XMPP protocols to be supported by intermediate instant messaging and presence applications. + This document defines a recommended suite of Jabber/XMPP protocols to be supported by intermediate instant messaging and presence applications. &LEGALNOTICE; 0117 Draft @@ -16,11 +16,11 @@ XMPP Core XMPP IM - JEP-0045 - JEP-0071 - JEP-0073 - JEP-0096 - JEP-0115 + XEP-0045 + XEP-0071 + XEP-0073 + XEP-0096 + XEP-0115 @@ -42,13 +42,13 @@ 0.6 2005-06-02 psa - Per Council discussion, modified the JEP-0045 profile to require all MUC use cases. + Per Council discussion, modified the XEP-0045 profile to require all MUC use cases. 0.5 2005-04-21 psa - Modified the JEP-0045 profile to require occupant use cases and instant room creation only. + Modified the XEP-0045 profile to require occupant use cases and instant room creation only. 0.4 @@ -76,15 +76,15 @@
          -

          The &jep0073; introduced the concept of a "protocol suite". This document extends the basic support specified in JEP-0073 by specifying an Intermediate IM Protocol Suite.

          +

          The &xep0073; introduced the concept of a "protocol suite". This document extends the basic support specified in XEP-0073 by specifying an Intermediate IM Protocol Suite.

          -

          This document follows the same approach as JEP-0073. By design, the Basic IM Protocol Suite does not include more advanced instant messaging functionality; the present document fills the need for a protocol suite that addresses such functionality.

          +

          This document follows the same approach as XEP-0073. By design, the Basic IM Protocol Suite does not include more advanced instant messaging functionality; the present document fills the need for a protocol suite that addresses such functionality.

          A protocol is deemed worthy of inclusion in this protocol suite if:

          • It addresses common needs of instant messaging users that are addressed by virtually all other popular IM services or systems.
          • It is more advanced than basic IM and presence.
          • -
          • It has achieved a status of at least Draft within the Jabber Software Foundation's standards process (as defined in &jep0001;).
          • +
          • It has achieved a status of at least Draft within the Jabber Software Foundation's standards process (as defined in &xep0001;).
          @@ -95,45 +95,45 @@
      - + - + - + - + - +
      Jabber/XMPP<Country/> <country/> <CTRY/> - As noted in JEP-0054, the XML vCard format defined in draft-dawson-vcard-xml-dtd-01 specified a <COUNTRY/> element rather than a <CTRY/> element; refer to JEP-0054 for details. + As noted in XEP-0054, the XML vCard format defined in draft-dawson-vcard-xml-dtd-01 specified a <COUNTRY/> element rather than a <CTRY/> element; refer to XEP-0054 for details.
      -- <Accuracy/> - This element provides accuracy in meters. The geolocation protocol defined in JEP-0080 specifies such an element for Jabber/XMPP, which SHOULD be used when mapping from IMPS to Jabber. + This element provides accuracy in meters. The geolocation protocol defined in XEP-0080 specifies such an element for Jabber/XMPP, which SHOULD be used when mapping from IMPS to Jabber. -- -- Requirement Level
      JEP-0073: Basic IM Protocol SuiteXEP-0073: Basic IM Protocol Suite REQUIRED
      &jep0045;&xep0045; REQUIRED
      &jep0071;&xep0071; REQUIRED
      &jep0096;&xep0096; REQUIRED
      &jep0115;&xep0115; REQUIRED
      -

      Note well that the foregoing protocols apply to clients only (i.e., they do not introduce new requirements for servers). In addition, these protocols have their own dependencies, which include the following JEPs (as well as various IETF RFCs and W3C specifications):

      +

      Note well that the foregoing protocols apply to clients only (i.e., they do not introduce new requirements for servers). In addition, these protocols have their own dependencies, which include the following XEPs (as well as various IETF RFCs and W3C specifications):

        -
      • &jep0004;
      • -
      • &jep0020;
      • -
      • &jep0047;
      • -
      • &jep0065;
      • -
      • &jep0068;
      • -
      • &jep0082;
      • -
      • &jep0095;
      • +
      • &xep0004;
      • +
      • &xep0020;
      • +
      • &xep0047;
      • +
      • &xep0065;
      • +
      • &xep0068;
      • +
      • &xep0082;
      • +
      • &xep0095;
      -

      In addition, because the intermediate suite builds on the basic suite, by definition all protocols required by JEP-0073 are also required by the intermediate suite (refer to JEP-0073 for details).

      +

      In addition, because the intermediate suite builds on the basic suite, by definition all protocols required by XEP-0073 are also required by the intermediate suite (refer to XEP-0073 for details).

      -

      This JEP introduces no additional security considerations above and beyond those defined in the documents on which it depends.

      +

      This document introduces no additional security considerations above and beyond those defined in the documents on which it depends.

      -

      This JEP requires no interaction with &IANA;.

      +

      This document requires no interaction with &IANA;.

      - -

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

      + +

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

      -
      + diff --git a/xep-0118.xml b/xep-0118.xml index d1185f88..060b6b0c 100644 --- a/xep-0118.xml +++ b/xep-0118.xml @@ -1,13 +1,13 @@ - + %ents; ]> - - + +
      User Tune - This JEP defines a protocol for communicating information about the music to which a user is listening. + This document defines an XMPP protocol extension for communicating information about the music to which a user is listening. &LEGALNOTICE; 0118 Draft @@ -16,13 +16,13 @@ XMPP Core XMPP IM - JEP-0060 + XEP-0060 tune - http://jabber.org/protocol/tune/tune.xsd + http://www.xmpp.org/schemas/tune.xsd &stpeter; @@ -59,7 +59,7 @@ 0.6 2004-04-25 psa - Corrected several errors; added reference to JEP-0033. + Corrected several errors; added reference to XEP-0033. 0.5 @@ -93,7 +93,7 @@
      -

      This JEP defines a protocol for communicating information about the music to which a user is listening. Such information may be seen as a kind of "extended presence", and users may want to communicate such information to their contacts on the network as a fun add-on to traditional IM applications or to provide integration with common music-player applications.

      +

      This document defines a protocol for communicating information about the music to which a user is listening. Such information may be seen as a kind of "extended presence", and users may want to communicate such information to their contacts on the network as a fun add-on to traditional IM applications or to provide integration with common music-player applications.

      @@ -139,7 +139,7 @@

      NOTE: The datatypes specified above are defined in &w3xmlschema2;.

      -

      Tune information SHOULD be communicated and transported by means of the &jep0060; protocol. Because tune information is not pure presence information and can change independently of the user's availability, it SHOULD NOT be provided as an extension to &PRESENCE;.

      +

      Tune information SHOULD be communicated and transported by means of the &xep0060; protocol. Because tune information is not pure presence information and can change independently of the user's availability, it SHOULD NOT be provided as an extension to &PRESENCE;.

      -

      As mentioned in JEP-0060, the stanza containing the event notification or payload MAY also include 'replyto' data (as specified by the &jep0033; protocol) to provide an explicit association between the published data and the user:

      +

      As mentioned in XEP-0060, the stanza containing the event notification or payload MAY also include 'replyto' data (as specified by the &xep0033; protocol) to provide an explicit association between the published data and the user:

      ]]> -

      Naturally, further extensions could be included, e.g., using &jep0066; to specify a URL where one could buy the recording.

      +

      Naturally, further extensions could be included, e.g., using &xep0066; to specify a URL where one could buy the recording.

      If the length is unknown (e.g., the user is listening to a stream), the <length/> element SHOULD NOT be included.

      -

      This protocol introduces no security considerations above and beyond those defined in Publish-Subscribe (JEP-0060).

      +

      This protocol introduces no security considerations above and beyond those defined in Publish-Subscribe (XEP-0060).

      -

      This JEP requires no interaction with &IANA;.

      +

      This document requires no interaction with &IANA;.

      - +

      The ®ISTRAR; includes 'http://jabber.org/protocol/tune' in its registry of protocol namespaces.

      @@ -292,7 +292,7 @@ The protocol documented by this schema is defined in - JEP-0118: http://www.jabber.org/jeps/jep-0118.html + XEP-0118: http://www.xmpp.org/extensions/xep-0118.html @@ -311,4 +311,4 @@ ]]>
      -
      + diff --git a/xep-0119.xml b/xep-0119.xml index 67faa7f2..b84ce120 100644 --- a/xep-0119.xml +++ b/xep-0119.xml @@ -1,13 +1,13 @@ - + %ents; ]> - - + +
      Extended Presence Protocol Suite - This document specifies a set of XMPP extensions that provide support for extended presence information. Note: This document has been retracted since its functionality is handled by JEP-0163. + This document specifies a set of XMPP extensions that provide support for extended presence information. Note: This document has been retracted since its functionality is handled by XEP-0163. &LEGALNOTICE; 0119 Retracted @@ -16,18 +16,18 @@ XMPP Core XMPP IM - JEP-0060 - JEP-0073 - JEP-0080 - JEP-0084 - JEP-0107 - JEP-0108 - JEP-0112 - JEP-0163 + XEP-0060 + XEP-0073 + XEP-0080 + XEP-0084 + XEP-0107 + XEP-0108 + XEP-0112 + XEP-0163 - JEP-0163 + XEP-0163 N/A &stpeter; @@ -35,13 +35,13 @@ 0.8 2006-08-08 psa -

      Retracted: superseded by Personal Eventing via Pubsub (JEP-0163).

      +

      Retracted: superseded by Personal Eventing via Pubsub (XEP-0163).

      0.7 2006-01-19 psa -

      Updated to reflect Personal Eventing via Pubsub (JEP-0163).

      +

      Updated to reflect Personal Eventing via Pubsub (XEP-0163).

      0.6 @@ -81,14 +81,14 @@
      -

      Note: This document has been retracted since its functionality is handled by &jep0163;.

      +

      Note: This document has been retracted since its functionality is handled by &xep0163;.

      A number of network services enable the exchange of information about an entity's availability for communications over the network. This information is usually called "presence". Examples include a person's availability to talk over a traditional or mobile telephony network, chat over an instant messaging (IM) network, or participate in a video conference. In this core sense, presence is a boolean, "on/off" indicator of network availability.

      Over time, this core notion of presence has been extended to include other information about the entity that either (1) changes quickly or (2) affects the entity's interest in or ability to engage in communications. Examples of such "extended presence" include a person's proximity to or interaction with a user agent (e.g., "away" or "do not disturb"), activity (e.g., "driving"), ambient environment (e.g., "noisy"), and mood (e.g., "grumpy"). Related information includes data about the person's available devices (e.g., "phone" or "IM"), current contact modes or address, and date/time ranges for availability. Because extended presence information can change quite often (e.g., several times in the course of a typical IM session), it is distinct from more stable information about the individual (such as is captured in a vCard or other user profile).

      This document describes a unified approach to the provision and communication of extended presence information using the Extensible Messaging and Presence Protocol (XMPP), in the form of a "protocol suite" that incorporates by reference a number of existing XMPP extensions.

      XMPP began life as a dedicated instant messaging and presence protocol within the Jabber community. The needs of this community were not advanced (simple IM and presence), and the presence model designed by that community mainly takes account of basic presence only (i.e., on/off availability on an IM network). Within this model (and using the terminology of &rfc2778;), the only watchers are those in the principal's contact list (in XMPP called a "roster"). In addition, authorization to receive basic presence broadcasts is handled by the principal through a combination of roster management and basic presence subscriptions as defined in &xmppim;. The presence service is tied to the principal's session with a server, and the server's internal session manager handles both presence and instant messaging functionality (although IM and presence can be separated in system configuration or "on the fly" via negative presence priorities).

      -

      This basic presence model was not designed for the more advanced world of extended presence. While some existing IM clients publish extended presence information as XML extensions to the XMPP &PRESENCE; stanza, that model does not scale well, does not respect the bandwidth restrictions of many clients on the network, and does not provide for more granular control over information access (anyone who receives presence will also receive geolocation data and the like). However, there is a more advanced protocol that is specially designed to fully implement the publish-subscribe design pattern on top of XMPP, specified in JEP-0060: &jep0060;. The publish-subscribe protocol can be used to create a service that provides full control over each type of extended presence data, sending that data only to those specifically authorized to receive it and those who have an active interest in each extension. In particular, for extended presence related to IM users, we specify the use of the personal eventing subset of JEP-0060, as defined in JEP-0163.

      +

      This basic presence model was not designed for the more advanced world of extended presence. While some existing IM clients publish extended presence information as XML extensions to the XMPP &PRESENCE; stanza, that model does not scale well, does not respect the bandwidth restrictions of many clients on the network, and does not provide for more granular control over information access (anyone who receives presence will also receive geolocation data and the like). However, there is a more advanced protocol that is specially designed to fully implement the publish-subscribe design pattern on top of XMPP, specified in XEP-0060: &xep0060;. The publish-subscribe protocol can be used to create a service that provides full control over each type of extended presence data, sending that data only to those specifically authorized to receive it and those who have an active interest in each extension. In particular, for extended presence related to IM users, we specify the use of the personal eventing subset of XEP-0060, as defined in XEP-0163.

      The provision and communication of extended presence information follows the classic publish-subscribe design pattern: an individual publishes information such as geographical location data, and the data is broadcasted to all subscribers who are authorized to receive that data. (Alternatively, the data can be published on behalf of the individual, such as by a mobile telephony service that has knowledge of the individual's geographical location and authorization to act as a publisher of that data.) In general, the relationship between the publisher and subscriber is mediated by a service that receives publication requests, broadcasts data to subscribers, and enables the individual to manage lists of entities that are authorized to publish or subscribe to the data. This model makes it possible to deploy highly flexible extended presence services within the context of XMPP.

      The following diagram provides a schematic representation of such a service.

      @@ -113,11 +113,11 @@ Service | Manager

      In this example, there are six different extended presence nodes (these might be, for example, geographical location, avatar, activity, mood, network availability, etc.). The principal is authorized to publish to all six, a Mobile Telephony Service is also authorized to publish to Node 1 (e.g., geolocation), and an XMPP Session Manager is also authorized to publish to Node 6 (e.g., network availability). There are five subscribers: Subscriber 1 is authorized to receive data from Node 1 and Node 2, Subscriber 2 is authorized to Node 2 and Node 3, Subscriber 3 is authorized to receive data from Node 4 and Node 6, and Subscribers 4 and 5 are authorized to receive data from Node 6 only.

      -

      This document follows the same approach as &jep0073;. By design, the Basic IM Protocol Suite does not include more advanced functionality related to "extended presence"; the present document fills the need for a protocol suite that addresses such functionality.

      +

      This document follows the same approach as &xep0073;. By design, the Basic IM Protocol Suite does not include more advanced functionality related to "extended presence"; the present document fills the need for a protocol suite that addresses such functionality.

      A protocol is deemed worthy of inclusion in this protocol suite if:

      • It addresses "extended presence" data that is defined in other presence services or protocols (e.g., Wireless Village or SIMPLE), or that is felt to be needed within the Jabber/XMPP community.
      • -
      • It has achieved a status of at least Draft within the Jabber Software Foundation's standards process (as defined in &jep0001;).
      • +
      • It has achieved a status of at least Draft within the Jabber Software Foundation's standards process (as defined in &xep0001;).
      @@ -128,35 +128,35 @@ Service | Manager Requirement Level - JEP-0073: Basic IM Protocol Suite + XEP-0073: Basic IM Protocol Suite REQUIRED (prerequisite) - JEP-0163: Personal Eventing via Pubsub + XEP-0163: Personal Eventing via Pubsub REQUIRED (prerequisite) - &jep0080; + &xep0080; REQUIRED - &jep0112; + &xep0112; REQUIRED - &jep0108; + &xep0108; REQUIRED - &jep0107; + &xep0107; REQUIRED - &jep0084; + &xep0084; REQUIRED * -

      * Note: The User Avatar specification (JEP-0084) has not yet advanced to a status of Draft within the JSF's standards process, and the Extended Presence Protocol Suite will not be submitted for approval until it does so.

      +

      * Note: The User Avatar specification (XEP-0084) has not yet advanced to a status of Draft within the JSF's standards process, and the Extended Presence Protocol Suite will not be submitted for approval until it does so.

      Discovery of extended presence pubsub nodes is expedited through the use of Personal Eventing via Pubsub (PEP), since in PEP services there is a one-to-one relationship between payload types and NodeIDs. The NodeIDs MUST be as follows:

      @@ -173,9 +173,9 @@ Service | Manager

      This document introduces no new security considerations above and beyond those defined in the documents on which it depends. Because publicly exposing some forms of extended presence information (e.g., geolocation information) may lead to unnecessary risks, care should be taken in setting the access model for the relevant pubsub nodes (minimally, an access model of "presence" to take advantage of the bidirectional authorization scheme inherent in XMPP presence subscriptions).

      -

      This JEP requires no interaction with &IANA;.

      +

      This document requires no interaction with &IANA;.

      - -

      This JEP requires no interaction with the ®ISTRAR;.

      + +

      This document requires no interaction with the ®ISTRAR;.

      -
      +