mirror of
https://github.com/moparisthebest/xeps
synced 2024-12-21 23:28:51 -05:00
0.15
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@2728 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
parent
f2a15706d8
commit
7f049fcf6a
71
xep-0177.xml
71
xep-0177.xml
@ -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 <timeout/>.</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 <timeout/>.</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'>
|
||||||
|
Loading…
Reference in New Issue
Block a user