1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-12-21 23:28:51 -05:00
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@2728 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2009-02-11 16:06:46 +00:00
parent f2a15706d8
commit 7f049fcf6a

View File

@ -27,6 +27,12 @@
&scottlu; &scottlu;
&hildjj; &hildjj;
&seanegan; &seanegan;
<revision>
<version>0.15</version>
<date>2009-02-11</date>
<initials>psa</initials>
<remark><p>Simplified flow by optionally including responder candidate in session-accept.</p></remark>
</revision>
<revision> <revision>
<version>0.14</version> <version>0.14</version>
<date>2008-12-16</date> <date>2008-12-16</date>
@ -139,6 +145,7 @@
<li>Where communication with non-XMPP entities is needed, push as much complexity as possible onto server-side gateways between the XMPP network and the non-XMPP network.</li> <li>Where communication with non-XMPP entities is needed, push as much complexity as possible onto server-side gateways between the XMPP network and the non-XMPP network.</li>
</ol> </ol>
</section1> </section1>
<section1 topic='Jingle Conformance' anchor='conformance'> <section1 topic='Jingle Conformance' anchor='conformance'>
<p>In accordance with Section 10 of <cite>XEP-0166</cite>, this document specifies the following information related to the Jingle Raw UDP transport type:</p> <p>In accordance with Section 10 of <cite>XEP-0166</cite>, this document specifies the following information related to the Jingle Raw UDP transport type:</p>
<ol> <ol>
@ -150,7 +157,6 @@
</section1> </section1>
<section1 topic='Protocol Description' anchor='protocol'> <section1 topic='Protocol Description' anchor='protocol'>
<section2 topic='Flow' anchor='protocol-flow'> <section2 topic='Flow' anchor='protocol-flow'>
<p>The overall protocol flow for negotiation of the Jingle Raw UDP Transport Method is as follows.</p> <p>The overall protocol flow for negotiation of the Jingle Raw UDP Transport Method is as follows.</p>
<code><![CDATA[ <code><![CDATA[
@ -160,11 +166,7 @@ INITIATOR RESPONDER
|----------------------------------->| |----------------------------------->|
| ack | | ack |
|<-----------------------------------| |<-----------------------------------|
| transport-info: candidate | | session-accept (w/candidate) |
|<-----------------------------------|
| ack |
|----------------------------------->|
| session-accept |
|<-----------------------------------| |<-----------------------------------|
| ack | | ack |
|----------------------------------->| |----------------------------------->|
@ -230,41 +232,7 @@ INITIATOR RESPONDER
to='romeo@montague.lit/orchard' to='romeo@montague.lit/orchard'
type='result'/> type='result'/>
]]></example> ]]></example>
<p>As soon as the responder acknowledges the session initiation request, it SHOULD send its own Raw UDP candidate to the initiator via a Jingle "transport-info" message. It does this 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> <p>As soon as the responder acknowledges the session initiation request, it MUST send a Jingle session-accept to the initiator. This session-accept message MAY include another Raw UDP candidate generated by the responder; alternativey, the responder MAY send this in a Jingle transport-info message.</p>
<example caption="Responder sends its Raw UDP candidate"><![CDATA[
<iq from='juliet@capulet.lit/balcony'
id='jingle2'
to='romeo@montague.lit/orchard'
type='set'>
<jingle xmlns='urn:xmpp:jingle:0'
action='transport-info'
initiator='romeo@montague.lit/orchard'
sid='a73sjjvkla37jfea'>
<content creator='initiator' name='voice'>
<transport xmlns='urn:xmpp:jingle:transports:raw-udp:1'>
<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>
</iq>
]]></example>
<p>The initiator MUST then acknowledge receipt by returning an IQ result (or a standard XMPP error).</p>
<example caption="Initiator acknowledges receipt of candidate"><![CDATA[
<iq from='romeo@montague.lit/orchard'
id='jingle2'
to='juliet@capulet.lit/balcony'
type='result'/>
]]></example>
<p>It is then the responsibility of the responder to accept the session offer.</p>
<example caption="Responder definitively accepts the session"><![CDATA[ <example caption="Responder definitively accepts the session"><![CDATA[
<iq from='juliet@capulet.lit/balcony' <iq from='juliet@capulet.lit/balcony'
id='accept1' id='accept1'
@ -282,15 +250,21 @@ INITIATOR RESPONDER
<transport xmlns='urn:xmpp:jingle:transports:raw-udp:1'> <transport xmlns='urn:xmpp:jingle:transports:raw-udp:1'>
<candidate component='1' <candidate component='1'
generation='0' generation='0'
id='a9j3mnbtu1' id='z7sdjb01hf'
ip='10.1.1.104' ip='208.68.163.214'
port='13540'/> port='9876'/>
<candidate component='2'
generation='0'
id='hg92lsn10b'
ip='208.68.163.214'
port='9877'/>
</transport> </transport>
</content> </content>
</jingle> </jingle>
</iq> </iq>
]]></example> ]]></example>
<p>And the initiator acknowledges the session acceptance.</p> <p>(Notice that the foregoing example includes two &CANDIDATE; elements, one for RTP and the other for RTCP.)</p>
<p>The initiator then acknowledges the session acceptance.</p>
<example caption="Initiator acknowledges session acceptance"><![CDATA[ <example caption="Initiator acknowledges session acceptance"><![CDATA[
<iq from='romeo@montague.lit/orchard' <iq from='romeo@montague.lit/orchard'
id='accept1' id='accept1'
@ -300,7 +274,7 @@ INITIATOR RESPONDER
</section2> </section2>
<section2 topic='Sending Media' anchor='media'> <section2 topic='Sending Media' anchor='media'>
<p>Upon sending the session-accept action, the responder MUST immediately send media to the initiator. Upon receiving the session-accept action, the initiator MUST immediately send media to the responder.</p> <p>Upon sending the session-accept action, the responder MUST immediately send attempt to send media to the initiator. Upon receiving the session-accept action, the initiator MUST immediately attempt to send media to the responder.</p>
<p>An implementation SHOULD enforce a timeout on receipt of media, such that if no media is received from the other party within a reasonable period of time, the implementation will consider the session to have failed and therefore send to the other party a Jingle "session-terminate" action with a reason code of &lt;timeout/&gt;.</p> <p>An implementation SHOULD enforce a timeout on receipt of media, such that if no media is received from the other party within a reasonable period of time, the implementation will consider the session to have failed and therefore send to the other party a Jingle "session-terminate" action with a reason code of &lt;timeout/&gt;.</p>
<example caption="Responder terminates the session"><![CDATA[ <example caption="Responder terminates the session"><![CDATA[
<iq from='juliet@capulet.lit/balcony' <iq from='juliet@capulet.lit/balcony'
@ -311,9 +285,7 @@ INITIATOR RESPONDER
action='session-terminate' action='session-terminate'
initiator='romeo@montague.lit/orchard' initiator='romeo@montague.lit/orchard'
sid='a73sjjvkla37jfea'> sid='a73sjjvkla37jfea'>
<reason> <reason><timeout/></reason>
<timeout/>
</reason>
</jingle> </jingle>
</iq> </iq>
]]></example> ]]></example>
@ -325,7 +297,6 @@ INITIATOR RESPONDER
type='result'/> type='result'/>
]]></example> ]]></example>
</section2> </section2>
</section1> </section1>
<section1 topic='Determining Support' anchor='support'> <section1 topic='Determining Support' anchor='support'>