From bd4d90c867219208de3e01d0fb7c08f407c59a3e Mon Sep 17 00:00:00 2001 From: Peter Saint-Andre Date: Mon, 16 Feb 2009 18:18:36 +0000 Subject: [PATCH] 0.26 git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@2737 4b5297f7-1745-476d-ba37-a9c6900126ab --- xep-0167.xml | 57 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/xep-0167.xml b/xep-0167.xml index f365f7ef..aca5055f 100644 --- a/xep-0167.xml +++ b/xep-0167.xml @@ -28,6 +28,12 @@ &seanegan; &robmcqueen; &diana; + + 0.26 + 2009-02-16 + psa +

Clarified service discovery features; added support for zrtp-hash in the signalling channel.

+
0.25 2008-12-19 @@ -504,7 +510,7 @@ delivery-method=inline; configuration=somebase16string;

&rfc3711; defines the Secure Real-time Transport Protocol, and &rfc4568; defines the SDP "crypto" attribute for signalling and negotiating the use of SRTP in the context of offer-answer protocols such as SIP. To enable the use of SRTP and gatewaying to non-XMPP technologies that make use of the "crypto" SDP attribute, we define a corresponding <crypto/> element qualified by the 'urn:xmpp:jingle:apps:rtp:1' namespace.

-

If the initiator wishes to use SRTP, the session-initiate stanza MUST include an <encryption/> element, which MUST contain at least one <crypto/> element and MAY include multiple instances of the <crypto/> element. The <encryption/> element MUST be a child of the <description/> element. If the initiator requires the session to be encrypted, the <encryption/> element MUST include a 'required' attribute whose logical value is TRUE and whose lexical value is "true" or "1" &BOOLEANNOTE;, where this attribute defaults to a logical value of FALSE (i.e., a lexical value of "false" or "0").

+

If the initiator wishes to use SRTP, the session-initiate stanza shall include an <encryption/> element, which MUST contain at least one <crypto/> element and MAY include multiple instances of the <crypto/> element. The <encryption/> element MUST be a child of the <description/> element. If the initiator requires the session to be encrypted, the <encryption/> element MUST include a 'required' attribute whose logical value is TRUE and whose lexical value is "true" or "1" &BOOLEANNOTE;, where this attribute defaults to a logical value of FALSE (i.e., a lexical value of "false" or "0").

The <crypto/> element is defined as empty (i.e., not containing any child elements); the XML attributes of the <crypto/> element are as follows:

  • crypto-suite -- this maps to the SDP "crypto-suite" parameter and has the same semantics (i.e., it is an identifier that describes the encryption and authentication algorithms).
  • @@ -581,6 +587,27 @@ delivery-method=inline; configuration=somebase16string; ]]> + +

    An alternative approach to end-to-end encryption of RTP traffic is provided by &zrtp;. Although negotiation of ZRTP mainly occurs in the media channel rather than the signalling channel, the ZRTP specification defines one SDP attribute called "zrtp-hash" (this communicates the ZRTP version supported as well as a hash of the Hello message).

    +

    The SDP format is shown below.

    + +a=zrtp-hash:zrtp-version zrtp-hash-value + +

    An example follows.

    + +a=zrtp-hash:1.10 fe30efd02423cb054e50efd0248742ac7a52c8f91bc2df881ae642c371ba46df + +

    This SDP attribute has been translated into Jingle as a <zrtp-hash/> element, as shown below.

    + zrtp-hash-value + ]]> +

    An example follows.

    + fe30efd02423cb054e50efd0248742ac7a52c8f91bc2df881ae642c371ba46df + ]]> +

    Therefore, if the initiator wishes to use ZRTP, the session-initiate stanza shall include an <encryption/> element, which MUST contain one and only one <zrtp-hash/> element. Note: The <encryption/> element MUST include only 1+ <crypto/> elements (for SRTP) or 1 <zrtp-hash/> element (for ZRTP), but not both.

    +
    +

    Informational messages can be sent by either party within the context of Jingle to communicate the status of a Jingle RTP session, device, or principal. The informational message MUST be an IQ-set containing a &JINGLE; element of type "session-info", where the informational message is a payload element qualified by the 'urn:xmpp:jingle:apps:rtp:info:1' namespace; the following payload elements are defined: A <trying/> element (equivalent to the SIP 100 Trying response code) is not necessary, since each session-level action is acknowledged via XMPP IQ semantics.

    @@ -692,7 +719,12 @@ delivery-method=inline; configuration=somebase16string;
    -

    If an entity supports Jingle RTP session, it MUST advertise that fact by returning a feature of "urn:xmpp:jingle:apps:rtp:1" &VNOTE; in response to &xep0030; information requests.

    +

    To advertise its support for Jingle RTP Sessions and specific media types for RTP, when replying to &xep0030; information requests an entity MUST return the following features:

    +
      +
    • URNs for any version of this protocol that the entity supports -- e.g., "urn:xmpp:jingle:apps:rtp:1" for this version and "urn:xmpp:jingle:apps:rtp:0" for the previous version &VNOTE;
    • +
    • URNs for all of the media types that the entity supports -- e.g., "urn:xmpp:jingle:apps:rtp:audio" for RTP audio and "urn:xmpp:jingle:apps:rtp:video" for RTP video
    • +
    +

    An example follows.

    + + + ]]> @@ -1827,12 +1862,16 @@ Romeo Juliet - + - + + @@ -1859,6 +1898,14 @@ Romeo Juliet + + + + + + + + @@ -1936,6 +1983,6 @@ Romeo Juliet
    -

    Thanks to Milton Chen, Paul Chitescu, Olivier Crête, Tim Julien, Steffen Larsen, Jeff Muller, Mike Ruprecht, Justin Uberti, and Paul Witty for their feedback.

    +

    Thanks to Milton Chen, Paul Chitescu, Olivier Crête, Tim Julien, Steffen Larsen, Jeff Muller, Mike Ruprecht, Sjoerd Simons, Justin Uberti, and Paul Witty for their feedback.