From 1aa8cde63abfea2178059525e48f79111ed8a478 Mon Sep 17 00:00:00 2001 From: Peter Saint-Andre Date: Thu, 21 Dec 2006 21:23:55 +0000 Subject: [PATCH] 0.11 git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@288 4b5297f7-1745-476d-ba37-a9c6900126ab --- xep-0166.xml | 131 ++++++++++++++++++++++++--------------------------- 1 file changed, 61 insertions(+), 70 deletions(-) diff --git a/xep-0166.xml b/xep-0166.xml index 8d2a30c0..96912120 100644 --- a/xep-0166.xml +++ b/xep-0166.xml @@ -7,10 +7,10 @@
Jingle - This document defines a framework for initiating and managing peer-to-peer sessions (e.g., voice and video exchanges) between Jabber/XMPP clients in a way that is interoperable with existing Internet standards. + This document defines a framework for initiating and managing peer-to-peer multimedia sessions (e.g., voice and video exchanges) between Jabber/XMPP clients in a way that is interoperable with existing Internet standards. &LEGALNOTICE; 0166 - Proposed + Experimenal Standards Track Standards JIG Council @@ -19,13 +19,19 @@ - jingle + TO BE ASSIGNED &scottlu; &joebeda; &stpeter; &hildjj; &seanegan; &robmcqueen; + + 0.11 + 2006-12-21 + psa/ram +

Added creator attribute to content element for prevention of race condition; modified spec to use provisional namespace before advancement to Draft (per XEP-0053).

+
0.11 2006-10-31 @@ -202,7 +208,7 @@ Transport Method - The method for establishing data stream(s) between entities. Possible transports might include &xep0176;, &xep0177;, inband data, etc. This is the 'how' of the session. In Jingle XML syntax this is the namespace of the &TRANSPORT; element. The content transport method defines how to transfer bits from one host to another. + The method for establishing data stream(s) between entities. Possible transports might include ICE, Raw UDP, inband data, etc. This is the 'how' of the session. In Jingle XML syntax this is the namespace of the &TRANSPORT; element. The content transport method defines how to transfer bits from one host to another. Component @@ -395,35 +401,31 @@ PENDING o---------------------+ |

If a contact has more than one XMPP resource that supports Jingle and the desired content description format, it is RECOMMENDED for a client to use &xep0168; in order to determine which is the best resource with which to initiate the desired Jingle session.

-

Once the initiating entity has discovered which of the receiver's XMPP resources is ideal for the desired content description format, it sends a session initiation request to the receiver. This request is an IQ-set containing a &JINGLE; element qualified by the 'http://jabber.org/protocol/jingle' namespace. The &JINGLE; element MUST possess the 'action', 'initiator', and 'sid' attributes (the latter two uniquely identify the session). For initiation, the 'action' attribute MUST have a value of "session-initiate" and the &JINGLE; element MUST contain one or more &CONTENT; elements, each of which defines a content type to be transferred during the session; each &CONTENT; element in turn contains one &DESCRIPTION; child element that specifies a desired content description format and one or more &TRANSPORT; child elements that specify potential content transport methods.

+

Once the initiating entity has discovered which of the receiver's XMPP resources is ideal for the desired content description format, it sends a session initiation request to the receiver. This request is an IQ-set containing a &JINGLE; element qualified by the 'http://www.xmpp.org/extensions/xep-0166.html#ns' namespace. The &JINGLE; element MUST possess the 'action', 'initiator', and 'sid' attributes (the latter two uniquely identify the session). For initiation, the 'action' attribute MUST have a value of "session-initiate" and the &JINGLE; element MUST contain one or more &CONTENT; elements, each of which defines a content type to be transferred during the session; each &CONTENT; element in turn contains one &DESCRIPTION; child element that specifies a desired content description format and one or more &TRANSPORT; child elements that specify potential content transport methods.

The following example shows a Jingle session initiation request for a session that contains both audio and video content:

- + - - + + ... - - ... - - - ... + + + - - + + ... - - ... - - - ... + + + @@ -438,8 +440,9 @@ PENDING o---------------------+ |

The attributes of the &CONTENT; element are as follows:

    +
  • The 'creator' attribute is REQUIRED; it specifies which party originally generated the content description (used to prevent race conditions regarding modifications).
  • The 'name' attribute is REQUIRED; it specifies a unique name or identifier for the content type (this identifier is opaque and does not have semantic meaning).
  • -
  • The 'senders' attribute specifies which entities in the session will be generating content; the allowable values are "initiator", "recipient", or "both" (where "both" is the default).
  • +
  • The 'senders' attribute is RECOMMENDED; it specifies which entities in the session will be generating content; the allowable values are "initiator", "recipient", or "both" (where "both" is the default).
@@ -477,7 +480,7 @@ PENDING o---------------------+ | - + ]]> @@ -486,7 +489,7 @@ PENDING o---------------------+ | - + ]]> @@ -506,7 +509,7 @@ PENDING o---------------------+ | id='jingle2' to='romeo@montague.net/orchard' type='set'> - One session-level negotiation is to remove a content types. For example, let us imagine that Juliet is having a bad hair day. She certainly does not want to include video in her Jingle session with Romeo, so she sends a "content-remove" request to Romeo:

- - + ]]> @@ -551,32 +554,20 @@ PENDING o---------------------+ |

If (after negotiation of content transport methods and content description formats) the receiver determines that it will be able to establish a connection, it sends a definitive acceptance to the initiating entity:

- - - + + ... - - ... - - - ... + + + - - - ... - - - ... - - - ... - ]]> @@ -594,20 +585,18 @@ PENDING o---------------------+ |

One example of modifying an active session is to add a content type. For example, let us imagine that Juliet gets her hair in order and now wants to add video. She now sends a "content-add" request to Romeo:

- - - + + ... - - ... - - - ... + + + @@ -617,21 +606,19 @@ PENDING o---------------------+ | ]]> - + - - + + ... - - ... - - - ... + + + @@ -648,7 +635,7 @@ PENDING o---------------------+ | id='term1' to='romeo@montague.net/orchard' type='set'> - @@ -681,6 +668,7 @@ PENDING o---------------------+ |

This action enables a party to add one or more new content types to the session. This action MUST NOT be sent while the session is in the PENDING state.

+

In the event that a session contains two unidirectional streams of the same type, due to content-add being issued simultaneously by both participants of the session, it is RECOMMENDED that participants close the duplicate stream in favour of that created by the session initiator, which should be made bidirectional with a 'content-modify' action by the responder.

This action enables a party to reject a content-add or content-modify action received from another party.

@@ -690,6 +678,7 @@ PENDING o---------------------+ |

This action enables a party to remove one or more content types from the session.

+

Clients MUST NOT return an error upon recipt of a 'content-remove' action for a content description which is received after a 'content-remove' action has been sent, but before the action has been acknowledged by the peer.

This action enables a party to accept a description-modify action received from another party.

@@ -783,10 +772,10 @@ PENDING o---------------------+ | -

The ®ISTRAR; shall include 'http://jabber.org/protocol/jingle' and 'http://jabber.org/protocol/jingle#errors' in its registry of protocol namespaces.

+

The ®ISTRAR; shall include 'http://www.xmpp.org/extensions/xep-0166.html#ns' and 'http://www.xmpp.org/extensions/xep-0166.html#ns-errors' in its registry of protocol namespaces.

-

The XMPP Registrar shall maintain a registry of Jingle content description formats. All content description format registrations shall be defined in separate specifications (not in this document). Content description formats defined within the XEP series MUST be registered with the XMPP Registrar, resulting in protocol URIs of the form "http://jabber.org/protocol/jingle/description/name" (where "name" is the registered name of the content description format).

+

The XMPP Registrar shall maintain a registry of Jingle content description formats. All content description format registrations shall be defined in separate specifications (not in this document). Content description formats defined within the XEP series MUST be registered with the XMPP Registrar, resulting in protocol URIs of the form "http://www.xmpp.org/extensions/xep-0166.html#ns/description/name" (where "name" is the registered name of the content description format).

®PROCESS; @@ -797,7 +786,7 @@ PENDING o---------------------+ | ]]>
-

The XMPP Registrar shall maintain a registry of Jingle content transport methods. All content transport method registrations shall be defined in separate specifications (not in this document). Content transport methods defined within the XEP series MUST be registered with the XMPP Registrar, resulting in protocol URIs of the form "http://jabber.org/protocol/jingle/transport/name" (where "name" is the registered name of the content transport method).

+

The XMPP Registrar shall maintain a registry of Jingle content transport methods. All content transport method registrations shall be defined in separate specifications (not in this document). Content transport methods defined within the XEP series MUST be registered with the XMPP Registrar, resulting in protocol URIs of the form "http://www.xmpp.org/extensions/xep-0166.html#ns/transport/name" (where "name" is the registered name of the content transport method).

®PROCESS; @@ -815,8 +804,8 @@ PENDING o---------------------+ | @@ -861,6 +850,8 @@ PENDING o---------------------+ | + + @@ -882,8 +873,8 @@ PENDING o---------------------+ |