From 5abc78599fddf6182dfe5a7a378930ff39ed8941 Mon Sep 17 00:00:00 2001 From: Peter Saint-Andre Date: Tue, 27 Nov 2007 19:46:25 +0000 Subject: [PATCH] 0.10 git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1424 4b5297f7-1745-476d-ba37-a9c6900126ab --- xep-0180.xml | 113 +++++++++++++++++++++++++++++---------------------- 1 file changed, 65 insertions(+), 48 deletions(-) diff --git a/xep-0180.xml b/xep-0180.xml index 9a8c4622..9fa24adf 100644 --- a/xep-0180.xml +++ b/xep-0180.xml @@ -27,6 +27,12 @@ Chen Milton.Chen@vseelab.com + + 0.10 + 2007-11-27 + psa +

Further editorial review.

+
0.9 2007-11-15 @@ -118,8 +124,8 @@ -

A Jingle video session is described by a content type that contains one application format and one transport method. The application format consists of one or more encodings contained within a wrapper &DESCRIPTION; element qualified by the 'http://www.xmpp.org/extensions/xep-0180.html#ns' namespace &NSNOTE;. In the language of RFC 4566 these encodings are payload-types; therefore, each <payload-type/> child element specifies an encoding that can be used for the video stream. In Jingle Video, these encodings are used in the context of RTP. The most common encodings for the Audio/Video Profile (AVP) of RTP are listed in &rfc3551; (these "static" types are reserved from payload ID 0 through payload ID 95), although other encodings are allowed (these "dynamic" types use payload IDs 96 to 127) in accordance with the dynamic assignment rules described in Section 3 of RFC 3551.

- A Jingle video session is described by a content type that contains one application format and one transport method. The application format consists of one or more encodings contained within a wrapper <description/> element qualified by the 'http://www.xmpp.org/extensions/xep-0180.html#ns' namespace &NSNOTE;. In the language of RFC 4566 each encoding is a payload-type; therefore, each <payload-type/> element specifies an encoding that can be used for the audio stream, as illustrated in the following example.

+ @@ -132,9 +138,10 @@ ]]>

The &DESCRIPTION; element is intended to be a child of a &CONTENT; element as specified in XEP-0166.

+

The &CONTENT; element SHOULD possess a 'profile' attribute that specifies the exact protocol in use as would be encapsulated in SDP (e.g., "RTP/AVP" or "UDP/TLS/RTP/AVP").

The encodings SHOULD be provided in order of preference by placing the most-preferred &PAYLOADTYPE; element as the first child of the &DESCRIPTION; element (etc.).

-

The defined attributes of the &PAYLOADTYPE; element are as follows:

- +

The allowable attributes of the &PAYLOADTYPE; element are as follows:

+
@@ -202,7 +209,8 @@
Attribute DescriptionOPTIONAL
-

Each <payload-type/> element MAY contain one or more child elements that specify particular parameters related to the payload. For example, as described in &rtptheora;, the "configuration", "configuration-uri", "delivery-method", and "sampling" parameters may be specified in relation to usage of the Theora See <http://www.theora.org/>. codec. Where such parameters are encoded via the "fmtp" SDP attribute, they shall be represented in Jingle via the following format, where the <parameter/> element is a child of the &PAYLOADTYPE; element:

+

In Jingle Video, the encodings are used in the context of RTP. The most common encodings for the Audio/Video Profile (AVP) of RTP are listed in &rfc3551; (these "static" types are reserved from payload ID 0 through payload ID 95), although other encodings are allowed (these "dynamic" types use payload IDs 96 to 127) in accordance with the dynamic assignment rules described in Section 3 of RFC 3551. The payload IDs are represented in the 'id' attribute.

+

Each <payload-type/> element MAY contain one or more child elements that specify particular parameters related to the payload. For example, as described in &rtpspeex;, the "cng", "mode", and "vbr" parameters may be specified in relation to usage of the Speex See <http://www.speex.org/>. codec. Where such parameters are encoded via the "fmtp" SDP attribute, they shall be represented in Jingle via the following format:

]]> @@ -210,11 +218,11 @@
-

When the initiator sends a session-initiate stanza to the receiver, the &DESCRIPTION; element includes all of the payload types that the initiator can receive for Jingle video (each one encapsulated in a separate &PAYLOADTYPE; element):

+

When the initiator sends a session-initiate stanza to the responder, the &DESCRIPTION; element includes all of the payload types that the initiator can receive for Jingle video (each one encapsulated in a separate &PAYLOADTYPE; element):

action='session-initiate' @@ -236,30 +244,30 @@ ]]> -

Upon receiving the session-initiate stanza, the receiver determines whether it can provisionally accept the session and proceed with the negotiation. The general Jingle error cases are specified in XEP-0166 and illustrated &xep0167;. In addition, the receiver must determine if it supports any of the payload types advertised by the initiator; if it supports none of the offered payload types, it must reject the session by returning a ¬acceptable; error with a Jingle-Video-specific condition of <unsupported-codecs/>:

- +

Upon receiving the session-initiate stanza, the responder determines whether it can proceed with the negotiation. The general Jingle error cases are specified in XEP-0166 and illustrated &xep0167;. In addition, the responder must determine if it supports any of the payload types advertised by the initiator; if it supports none of the offered payload types, it must reject the session by returning a ¬acceptable; error with a Jingle-Video-specific condition of <unsupported-codecs/>:

+ ]]> -

If there is no error, the receiver provisionally accepts the session:

- If there is no error, the responder acknowledges the session initiation request:

+ ]]> -

The receiver then should send a list of the payload types that it can receive via a Jingle "content-accept" (or "session-accept") action. The list that the receiver sends MAY include any payload types (not a subset of the payload types sent by the initiator) but SHOULD retain the ID numbers specified by the initiator. The order of the &PAYLOADTYPE; elements indicates the receiver's preferences, with the most-preferred types first.

- The responder then SHOULD send a list of the payload types that it can receive via a Jingle "content-accept" (or "session-accept") action. The list that the responder sends MAY include any payload types (not a subset of the payload types sent by the initiator) but SHOULD retain the ID numbers specified by the initiator. The order of the &PAYLOADTYPE; elements indicates the responder's preferences, with the most-preferred types first.

+ action='content-accept' @@ -274,7 +282,7 @@ - + @@ -282,29 +290,37 @@ ]]>

The initiator acknowledges the 'content-accept' with an empty IQ result:

]]> -

After successful transport negotiation (not shown here), the receiver then accepts the session:

- +

After successful transport negotiation (not shown here), the responder then accepts the session:

+ - + + + + + + + + +

And the initiator acknowledges session acceptance:

]]>

Note: Because a "session-accept" action implicitly indicates acceptance of the application format (i.e., "content-accept"), it is not necessary to send a separate "content-accept" action. This flow is shown for completeness only.

@@ -364,7 +380,7 @@ a=fmtp:98 width=352;height=288;
@@ -388,17 +404,17 @@ delivery-method=inline; configuration=somebase16string;

If an entity supports Jingle video exchanges via RTP, it MUST advertise that fact by returning a feature of "http://www.xmpp.org/extensions/xep-0180.html#ns" in response to &xep0030; information requests &NSNOTE;.

]]> ... @@ -408,10 +424,11 @@ delivery-method=inline; configuration=somebase16string; ]]> +

Naturally, support may also be discovered via the dynamic, presence-based profile of service discovery defined in &xep0115;.

-

Informational messages may be sent by either party within the context of Jingle to communicate the status of a Jingle video session, device, or principal. The informational message MUST be an IQ-set containing a &JINGLE; element of type "session-info". No informational message payload elements have yet been defined, but they may be specified in a future version of this document.

+

Informational messages may be sent by either party within the context of Jingle to communicate the status of a Jingle video session, device, or principal. The informational message MUST be an IQ-set containing a &JINGLE; element of type "session-info". No informational message payload elements have yet been defined for Jingle Video via RTP, but they may be specified in a future version of this document.

@@ -470,11 +487,11 @@ delivery-method=inline; configuration=somebase16string; + -