git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@289 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2006-12-21 21:24:28 +00:00
parent 1aa8cde63a
commit 5522da58e4
1 changed files with 37 additions and 31 deletions

View File

@ -10,7 +10,7 @@
<abstract>This document defines a content description format for Jingle audio sessions.</abstract>
&LEGALNOTICE;
<number>0167</number>
<status>Proposed</status>
<status>Experimental</status>
<type>Standards Track</type>
<jig>Standards JIG</jig>
<approver>Council</approver>
@ -20,10 +20,16 @@
</dependencies>
<supersedes/>
<supersededby/>
<shortname>jingle-audio</shortname>
<shortname>TO BE ASSIGNED</shortname>
&scottlu;
&stpeter;
&seanegan;
<revision>
<version>0.7</version>
<date>2006-12-21</date>
<initials>psa</initials>
<remark><p>Modified spec to use provisional namespace before advancement to Draft (per XEP-0053).</p></remark>
</revision>
<revision>
<version>0.6</version>
<date>2006-10-31</date>
@ -93,7 +99,7 @@
<section1 topic='Content Description Format' anchor='format'>
<p>A Jingle audio session is described by one or more encodings contained within a wrapper &lt;description/&gt; element. In the language of <cite>RFC 4566</cite> these encodings are payload-types; therefore, each &lt;payload-type/&gt; element specifies an encoding that can be used for the audio stream. In Jingle Audio, 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 <cite>RFC 3551</cite>.</p>
<p>The allowable attributes are as follows:</p>
<table>
<table caption='Defined Attributes'>
<tr>
<th>Attribute</th>
<th>Description</th>
@ -132,7 +138,7 @@
</table>
<p>The encodings SHOULD be provided in order of preference.</p>
<example caption="Audio Description Format"><![CDATA[
<description xmlns='http://jabber.org/protocol/jingle/description/audio'>
<description xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns'>
<payload-type id='96' name='speex' clockrate='16000'/>
<payload-type id='97' name='speex' clockrate='8000'/>
<payload-type id='18' name='G729'/>
@ -145,7 +151,7 @@
<payload-type id='13' name='CN'/>
</description>
]]></example>
<p>The &lt;description/&gt; element is intended to be a child of a &JINGLE; element as specified in <cite>XEP-0166</cite>.</p>
<p>The &lt;description/&gt; element is intended to be a child of a &JINGLE; element as specified in <cite>XEP-0166</cite>. (See <link uurl='#ns'>Protocol Namespaces</link> regarding issuance of a permanent namespace.)</p>
<p>Each &lt;payload-type/&gt; element MAY contain one or more child elements that specify particular parameters related to the payload. For example, as described in <cite>draft-ietf-avt-rtp-speex</cite> <note>This Internet-Draft has expired; see &lt;<link url='http://www.watersprings.org/pub/id/draft-ietf-avt-rtp-speex-00.txt'>http://www.watersprings.org/pub/id/draft-ietf-avt-rtp-speex-00.txt</link>&gt; for an archived version.</note>, the "ebw", "eng", "mode", "sr", and "vbr" parameters may be specified in relation to usage of the Speex <note>See &lt;<link url='http://www.speex.org/'>http://www.speex.org/</link>&gt;.</note> codec. Where such parameters are encoded via the "fmtp" SDP attribute, they shall be represented in Jingle via the following format:</p>
<code><![CDATA[
<parameter name='foo' value='bar'/>
@ -164,16 +170,16 @@
<p>Following is an example of this negotiation:</p>
<example caption="Initiation Example"><![CDATA[
<iq to='juliet@capulet.com/balcony' from='romeo@montague.net/orchard' id='jingleaudio1' type='set'>
<jingle xmlns='http://jabber.org/protocol/jingle'
<jingle xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns'
action='session-initiate'
initiator='romeo@montague.net/orchard'
sid='a73sjjvkla37jfea'>
<content name='audio'>
<description xmlns='http://jabber.org/protocol/jingle/description/audio'>
<description xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns'>
<payload-type id='96' name='speex' clockrate='16000'/>
<payload-type id='0' name='PCMU'/>
</description>
<transport xmlns='http://jabber.org/protocol/jingle/transport/ice'>
<transport xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns/transport/ice'>
...
</transport>
</content>
@ -187,12 +193,12 @@
<p>It then offers the new content description in a 'description-modify' action:</p>
<example caption="Initiation Example"><![CDATA[
<iq to='romeo@montague.net/orchard' from='juliet@capulet.com/balcony' id='jingleaudio2' type='set'>
<jingle xmlns='http://jabber.org/protocol/jingle'
<jingle xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns'
action='description-modify'
initiator='romeo@montague.net/orchard'
sid='a73sjjvkla37jfea'>
<content name='audio'>
<description xmlns='http://jabber.org/protocol/jingle/description/audio'>
<description xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns'>
<payload-type id='0' name='PCMU'/>
</description>
</content>
@ -204,10 +210,10 @@
<iq to='juliet@capulet.com/balcony' from='romeo@montegue.net/orchard' id='jingleaudio2' type='result'/>
<iq to='juliet@capulet.com/balcony' from='romeo@montegue.net/orchard' id='jingleaudio3' type='set'/>
<jingle xmlns='http://jabber.org/protocol/jingle'
<jingle xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns'
action='description-accept' initiator='romeo@montague.net/orchard' sid='a73sjjvkla37jfea'>
<content name='audio'>
<description xmlns='http://jabber.org/protocol/jingle/description/audio'>
<description xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns'>
<payload-type id='0' name='PCMU'/>
</description>
</content>
@ -256,7 +262,7 @@ a=fmtp:96 vbr=on;cng=on
]]></example>
</section1>
<section1 topic='Service Discovery' anchor='disco'>
<p>If an entity supports the Jingle audio content description format, it MUST advertise that fact by returning a feature of "http://jabber.org/protocol/jingle/description/audio" in response to &xep0030; information requests.</p>
<p>If an entity supports the Jingle audio content description format, it MUST advertise that fact by returning a feature of "http://www.xmpp.org/extensions/xep-0167.html#ns" (see <link url='#ns'>Protocol Namespaces</link>) in response to &xep0030; information requests.</p>
<example caption="Service Discovery Information Request"><![CDATA[
<iq from='romeo@montague.net/orchard'
id='disco1'
@ -272,8 +278,8 @@ a=fmtp:96 vbr=on;cng=on
type='result'>
<query xmlns='http://jabber.org/protocol/disco#info'>
...
<feature var='http://jabber.org/protocol/jingle'/>
<feature var='http://jabber.org/protocol/jingle/description/audio'/>
<feature var='http://www.xmpp.org/extensions/xep-0166.html#ns'/>
<feature var='http://www.xmpp.org/extensions/xep-0167.html#ns'/>
...
</query>
</iq>
@ -281,7 +287,7 @@ a=fmtp:96 vbr=on;cng=on
</section1>
<section1 topic='Informational Messages' anchor='info'>
<section2 topic='Format' anchor='info-format'>
<p>Informational messages may be sent by either party within the context of Jingle to communicate the status of a Jingle audio session, device, or principal. The informational message MUST be an IQ-set containing a &JINGLE; element of type "description-info", where the informational message is a payload element qualified by the 'http://jabber.org/protocol/jingle/info/audio' namespace; the following payload elements are defined: <note>A &lt;trying/&gt; element (equivalent to the SIP 100 Trying response code) is not necessary, since each session-level action is acknowledged via XMPP IQ semantics.</note></p>
<p>Informational messages may be sent by either party within the context of Jingle to communicate the status of a Jingle audio session, device, or principal. The informational message MUST be an IQ-set containing a &JINGLE; element of type "description-info", where the informational message is a payload element qualified by the 'http://www.xmpp.org/extensions/xep-0167.html#ns-info' namespace; the following payload elements are defined: <note>A &lt;trying/&gt; element (equivalent to the SIP 100 Trying response code) is not necessary, since each session-level action is acknowledged via XMPP IQ semantics.</note></p>
<table caption='Information Payload Elements'>
<tr>
<th>Element</th>
@ -312,11 +318,11 @@ a=fmtp:96 vbr=on;cng=on
to='romeo@montague.net/orchard'
id='busy1'
type='set'>
<jingle xmlns='http://jabber.org/protocol/jingle'
<jingle xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns'
action='description-info'
initiator='romeo@montague.net/orchard'
sid='a73sjjvkla37jfea'>
<busy xmlns='http://jabber.org/protocol/jingle/info/audio'/>
<busy xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns-info'/>
</jingle>
</iq>
]]></example>
@ -325,11 +331,11 @@ a=fmtp:96 vbr=on;cng=on
to='romeo@montague.net/orchard'
id='hold1'
type='set'>
<jingle xmlns='http://jabber.org/protocol/jingle'
<jingle xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns'
action='description-info'
initiator='romeo@montague.net/orchard'
sid='a73sjjvkla37jfea'>
<hold xmlns='http://jabber.org/protocol/jingle/info/audio'/>
<hold xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns-info'/>
</jingle>
</iq>
]]></example>
@ -338,11 +344,11 @@ a=fmtp:96 vbr=on;cng=on
to='romeo@montague.net/orchard'
id='mute1'
type='set'>
<jingle xmlns='http://jabber.org/protocol/jingle'
<jingle xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns'
action='description-info'
initiator='romeo@montague.net/orchard'
sid='a73sjjvkla37jfea'>
<mute xmlns='http://jabber.org/protocol/jingle/info/audio'/>
<mute xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns-info'/>
</jingle>
</iq>
]]></example>
@ -351,11 +357,11 @@ a=fmtp:96 vbr=on;cng=on
to='romeo@montague.net/orchard'
id='ringing1'
type='set'>
<jingle xmlns='http://jabber.org/protocol/jingle'
<jingle xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns'
action='description-info'
initiator='romeo@montague.net/orchard'
sid='a73sjjvkla37jfea'>
<ringing xmlns='http://jabber.org/protocol/jingle/info/audio'/>
<ringing xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns-info'/>
</jingle>
</iq>
]]></example>
@ -400,11 +406,11 @@ The Jingle Audio-specific error conditions are as follows:
</section1>
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
<section2 topic='Protocol Namespaces' anchor='registrar-ns'>
<p>The &REGISTRAR; shall include 'http://jabber.org/protocol/jingle/description/audio' and 'http://jabber.org/protocol/jingle/info/audio' in its registry of protocol namespaces.</p>
<section2 topic='Protocol Namespaces' anchor='ns'>
<p>Until this specification advances to a status of Draft, its associated namespaces shall be "http://www.xmpp.org/extensions/xep-0167.html#ns" and "http://www.xmpp.org/extensions/xep-0167.html#ns-info"; upon advancement of this specification, the &REGISTRAR; shall issue permanent namespaces in accordance with the process defined in Section 4 of &xep0053;.</p>
</section2>
<section2 topic='Jingle Content Description Formats' anchor='registrar-content'>
<p>The XMPP Registrar shall include the name "audio" in its registry of Jingle content description formats. The registration is as follows:</p>
<p>The XMPP Registrar shall include "audio" in its registry of Jingle content description formats. The registry submission is as follows:</p>
<code><![CDATA[
<content>
<name>audio</name>
@ -422,8 +428,8 @@ The Jingle Audio-specific error conditions are as follows:
<xs:schema
xmlns:xs='http://www.w3.org/2001/XMLSchema'
targetNamespace='http://jabber.org/protocol/jingle/description/audio'
xmlns='http://jabber.org/protocol/jingle/description/audio'
targetNamespace='http://www.xmpp.org/extensions/xep-0167.html#ns'
xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns'
elementFormDefault='qualified'>
<xs:element name='description'>
@ -474,8 +480,8 @@ The Jingle Audio-specific error conditions are as follows:
<xs:schema
xmlns:xs='http://www.w3.org/2001/XMLSchema'
targetNamespace='http://jabber.org/protocol/jingle/info/audio'
xmlns='http://jabber.org/protocol/jingle/info/audio'
targetNamespace='http://www.xmpp.org/extensions/xep-0167.html#ns-info'
xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns-info'
elementFormDefault='qualified'>
<xs:element name='busy' type='empty'/>