1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-21 08:45:04 -05:00

0.12: added component attribute and allowed multiple candidate elements

git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@2412 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2008-10-20 19:49:00 +00:00
parent c78c3f362b
commit 57d7384134

View File

@ -26,6 +26,12 @@
&scottlu;
&hildjj;
&seanegan;
<revision>
<version>0.12</version>
<date>2008-10-20</date>
<initials>psa</initials>
<remark><p>For consistency with the ICE-UDP transport method, added component attribute to handle RTCP candidates and allowed multiple <candidate/> child elements.</p></remark>
</revision>
<revision>
<version>0.11</version>
<date>2008-09-30</date>
@ -118,7 +124,7 @@
<li><p>The transport negotiation process is defined in the <link url='#protocol'>Protocol Description</link> section of this document.</p></li>
<li><p>The semantics of the &TRANSPORT; element are defined in the <link url='#initiate'>Transport Initiation</link> section of this document.</p></li>
<li><p>Successful negotiation of the Raw UDP method results in use of a datagram transport that is suitable for applications where some packet loss is tolerable, such as audio and video.</p></li>
<li><p>If multiple components are to be communicated over the transport, the first component shall be associated with the port in the transport initiation stanza and the second component (e.g., for RTCP) shall be associated with a UDP port that is one number higher than the specified port (e.g., if the specified port is 13540 then the port for the second component shall be 13541).</p></li>
<li><p>If multiple components are to be communicated over the transport in the context of the Real-time Transport Protocol (RTP; see &rfc3550;), the component numbered "1" shall be associated with RTP and the component numbered "2" shall be associated with the Real Time Control Protocol (RTCP).</p></li>
</ol>
</section1>
<section1 topic='Protocol Description' anchor='protocol'>
@ -127,7 +133,7 @@
<code><![CDATA[
INITIATOR RESPONDER
| |
| session-initiate (w/ candidate) |
| session-initiate (w/candidate) |
|----------------------------------->|
| ack |
|<-----------------------------------|
@ -152,7 +158,7 @@ INITIATOR RESPONDER
]]></code>
</section2>
<section2 topic='Transport Initiation' anchor='initiate'>
<p>In order for the initiator in a Jingle exchange to start the negotiation, it MUST send a Jingle "session-initiate" stanza as described in <cite>XEP-0166</cite>. This stanza MUST include at least one content type. If the initiator wishes to negotiate the Raw UDP transport for a given content type, it MUST include a &TRANSPORT; child element qualified by the 'urn:xmpp:jingle:transports:raw-udp:0' namespace &VNOTE;, which MUST <note>This is required to avoid a round trip and help expedite the negotiation.</note> include the initiator's Raw UDP candidate via the 'ip', 'port', 'generation', and 'id' attributes of the &CANDIDATE; element.</p>
<p>In order for the initiator in a Jingle exchange to start the negotiation, it MUST send a Jingle "session-initiate" stanza as described in <cite>XEP-0166</cite>. This stanza MUST include at least one content type. If the initiator wishes to negotiate the Raw UDP transport for a given content type, it MUST include a &TRANSPORT; child element qualified by the 'urn:xmpp:jingle:transports:raw-udp:0' namespace &VNOTE;, which MUST <note>This is required to avoid a round trip and help expedite the negotiation.</note> include the initiator's Raw UDP candidate via the 'ip', 'port', 'generation', and 'id' attributes of the &CANDIDATE; element. The &TRANSPORT; element MAY include more than one &CANDIDATE; element (typically one for RTP and another for RTCP).</p>
<example caption="Initiation"><![CDATA[
<iq from='romeo@montague.net/orchard'
id='jingle1'
@ -239,7 +245,7 @@ INITIATOR RESPONDER
]]></example>
</section3>
<section3 topic='Sending a Candidate' anchor='response-candidate'>
<p>As noted, the responder SHOULD send its own Raw UDP candidate to the initiator by sending a transport-info message to the initiator, as shown in the following example.</p>
<p>As noted, the responder SHOULD send its own Raw UDP candidate to the initiator by sending a transport-info message to the initiator, as shown in the following example (notice that this example includes two &CANDIDATE; elements, one for RTP and the other for RTCP).</p>
<example caption="Responder sends its Raw UDP candidate"><![CDATA[
<iq from='juliet@capulet.com/balcony'
id='jingle2'
@ -251,10 +257,16 @@ INITIATOR RESPONDER
sid='a73sjjvkla37jfea'>
<content creator='initiator' name='this-is-the-audio-content'>
<transport xmlns='urn:xmpp:jingle:transports:raw-udp:0'>
<candidate generation='0'
<candidate component='1'
generation='0'
id='z7sdjb01hf'
ip='208.68.163.214'
port='9876'/>
<candidate component='2'
generation='0'
id='hg92lsn10b'
ip='208.68.163.214'
port='9877'/>
</transport>
</content>
</jingle>
@ -389,7 +401,7 @@ INITIATOR RESPONDER
<xs:element name='candidate'
type='candidateElementType'
minOccurs='0'
maxOccurs='1'/>
maxOccurs='unbounded'/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -441,6 +453,6 @@ INITIATOR RESPONDER
</section2>
</section1>
<section1 topic='Acknowledgements' anchor='ack'>
<p>Thanks to Steffen Larsen, Robert McQueen, and Mike Ruprecht for their feedback.</p>
<p>Thanks to Olivier Cr&#234;te, Steffen Larsen, Robert McQueen, and Mike Ruprecht for their feedback.</p>
</section1>
</xep>