git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1459 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2007-12-07 00:02:58 +00:00
parent c967f96602
commit b5f195594a
1 changed files with 65 additions and 61 deletions

View File

@ -25,6 +25,12 @@
&stpeter;
&seanegan;
&robmcqueen;
<revision>
<version>0.13</version>
<date>2007-12-06</date>
<initials>psa</initials>
<remark><p>To track changes to XEP-0166, modified busy scenario and removed unsupported-codecs error.</p></remark>
</revision>
<revision>
<version>0.12</version>
<date>2007-11-27</date>
@ -243,18 +249,7 @@
</jingle>
</iq>
]]></example>
<p>Upon receiving the session-initiate stanza, the responder determines whether it can proceed with the negotiation. The general Jingle error cases are specified in <cite>XEP-0166</cite> and illustrated in the <link url='#scenarios'>Scenarios</link> section of this document. 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 &notacceptable; error with a Jingle-Audio-specific condition of &lt;unsupported-codecs/&gt;:</p>
<example caption="Responder does not support any of the codecs"><![CDATA[
<iq from='juliet@capulet.com/balcony'
id='jingleaudio1'
to='romeo@montague.net/orchard'
type='error'>
<error type='cancel'>
<not-acceptable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
<unsupported-codecs xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns-errors'/>
</error>
</iq>
]]></example>
<p>Upon receiving the session-initiate stanza, the responder determines whether it can proceed with the negotiation. The general Jingle error cases are specified in <cite>XEP-0166</cite> and illustrated in the <link url='#scenarios'>Scenarios</link> section of this document.</p>
<p>If there is no error, the responder acknowledges the session initiation request.</p>
<example caption="Responder acknowledges session-initiate"><![CDATA[
<iq from='juliet@capulet.com/balcony'
@ -466,22 +461,6 @@ a=fmtp:96 vbr=on;cng=on
</section2>
</section1>
<section1 topic='Error Handling' anchor='errors'>
<p>The Jingle-Audio-specific error conditions are as follows:</p>
<table caption='Error Conditions'>
<tr>
<th>Jingle Audio Condition</th>
<th>XMPP Condition</th>
<th>Description</th>
</tr>
<tr>
<td>&lt;unsupported-codecs/&gt;</td>
<td>&notacceptable;</td>
<td>The recipient does not support any of the offered audio encodings.</td>
</tr>
</table>
</section1>
<section1 topic='Determining Support' anchor='support'>
<p>If an entity supports Jingle audio exchanges via RTP, it MUST advertise that fact by returning a feature of "http://www.xmpp.org/extensions/xep-0167.html#ns" &NSNOTE; in response to &xep0030; information requests.</p>
<example caption="Service discovery information request"><![CDATA[
@ -518,9 +497,18 @@ Romeo Juliet
| |
| session-initiate |
|---------------------------->|
| error |
| (recipient-unavailable) |
| ack |
|<----------------------------|
| session-info (ringing) |
|<----------------------------|
| ack |
|---------------------------->|
| terminate |
| (reasoncode = busy) |
|<----------------------------|
| ack |
|---------------------------->|
| |
]]></code>
<p>The protocol flow is as follows.</p>
<example caption="Initiator sends session-initiate"><![CDATA[
@ -545,17 +533,51 @@ Romeo Juliet
</jingle>
</iq>
]]></example>
<example caption="Responder returns recipient-unavailable error"><![CDATA[
<example caption="Responder sends provisional acceptance"><![CDATA[
<iq from='juliet@capulet.lit/balcony'
id='jingle1'
id='accept1'
to='romeo@montague.lit/orchard'
type='error'>
<error type='wait'>
<recipient-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
<busy xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns-errors'/>
</error>
type='result'/>
]]></example>
<example caption="Responder sends ringing message"><![CDATA[
<iq from='juliet@capulet.com/balcony'
id='ringing1'
to='romeo@montague.net/orchard'
type='set'>
<jingle xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns'
action='session-info'
initiator='romeo@montague.net/orchard'
sid='a73sjjvkla37jfea'>
<ringing xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns-info'/>
</jingle>
</iq>
]]></example>
<example caption="Initiator acknowledges ringing message"><![CDATA[
<iq from='romeo@montague.lit/orchard'
id='ringing1'
to='juliet@capulet.lit/balcony'
type='result'/>
]]></example>
<example caption="Responder terminates the session"><![CDATA[
<iq from='juliet@capulet.lit/balcony'
id='term1'
to='romeo@montague.lit/orchard'
type='set'>
<jingle xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns'
action='session-terminate'
initiator='romeo@montague.lit/orchard'
reasoncode='busy'
reasontext='No time to chat right now!'
sid='a73sjjvkla37jfea'/>
</iq>
]]></example>
<p>The other party then acknowledges termination of the session:</p>
<example caption="Initiator acknowledges termination"><![CDATA[
<iq from='romeo@montague.lit/orchard'
id='term1'
to='juliet@capulet.lit/balcony'
type='result'/>
]]></example>
</section2>
<section2 topic='Jingle Audio via RTP/AVP, Negotiated with ICE-UDP' anchor='scenarios-voicechat'>
<p>In this scenario, Romeo initiates a voice chat with Juliet using a transport method of ICE-UDP. The parties also exchange informational messages.</p>
@ -780,7 +802,8 @@ Romeo Juliet
<jingle xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns'
action='session-terminate'
initiator='romeo@montague.lit/orchard'
reason='Sorry, gotta go!'
reasoncode='no-error'
reasontext='Sorry, gotta go!'
sid='a73sjjvkla37jfea'/>
</iq>
]]></example>
@ -1101,7 +1124,8 @@ Romeo Juliet
<jingle xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns'
action='session-terminate'
initiator='romeo@montague.lit/orchard'
reason='I&apos;m outta here!'
reasoncode='no-error'
reasontext='I&apos;m outta here!'
sid='a73sjjvkla37jfea'/>
</iq>
]]></example>
@ -1287,7 +1311,8 @@ Romeo Juliet
<jingle xmlns='http://www.xmpp.org/extensions/xep-0166.html#ns'
action='session-terminate'
initiator='romeo@montague.lit/orchard'
reason='Sorry, gotta go!'
reasoncode='no-error'
reasontext='Sorry, gotta go!'
sid='a73sjjvkla37jfea'/>
</iq>
]]></example>
@ -1400,27 +1425,6 @@ Romeo Juliet
</xs:restriction>
</xs:simpleType>
</xs:schema>
]]></code>
</section2>
<section2 topic='Errors' anchor='schema-errors'>
<code><![CDATA[
<?xml version='1.0' encoding='UTF-8'?>
<xs:schema
xmlns:xs='http://www.w3.org/2001/XMLSchema'
targetNamespace='http://www.xmpp.org/extensions/xep-0167.html#ns-errors'
xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns-errors'
elementFormDefault='qualified'>
<xs:element name='unsupported-codecs' type='empty'/>
<xs:simpleType name='empty'>
<xs:restriction base='xs:string'>
<xs:enumeration value=''/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
]]></code>
</section2>