1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-22 09:12:19 -05:00
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1880 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2008-05-28 21:09:30 +00:00
parent 61ccc7452a
commit 50b382ce76

View File

@ -20,11 +20,17 @@
</dependencies> </dependencies>
<supersedes/> <supersedes/>
<supersededby/> <supersededby/>
<shortname>TO BE ASSIGNED</shortname> <shortname>NOT_YET_ASSIGNED</shortname>
&scottlu; &scottlu;
&stpeter; &stpeter;
&seanegan; &seanegan;
&robmcqueen; &robmcqueen;
<revision>
<version>0.18</version>
<date>2008-05-28</date>
<initials>psa</initials>
<remark><p>Removed content-replace from ICE-UDP examples per XEP-0176.</p></remark>
</revision>
<revision> <revision>
<version>0.17</version> <version>0.17</version>
<date>2008-02-29</date> <date>2008-02-29</date>
@ -624,10 +630,6 @@ Romeo Juliet
|<--------------------------->| |<--------------------------->|
| STUN connectivity checks | | STUN connectivity checks |
|<--------------------------->| |<--------------------------->|
| content-replace |
|---------------------------->|
| ack |
|<----------------------------|
| session-accept | | session-accept |
|<----------------------------| |<----------------------------|
| ack | | ack |
@ -688,48 +690,7 @@ Romeo Juliet
to='juliet@capulet.lit/balcony' to='juliet@capulet.lit/balcony'
type='result'/> type='result'/>
]]></example> ]]></example>
<p>Because the parties have chosen the Jingle ICE-UDP Transport Method, the initiator and responder exchange an open-ended number of possible candidate transports, perform connectivity checks, and agree upon a candidate transport as explained in <cite>XEP-0176</cite>. Once ICE negotiation is completed, the initiator sends a content-replace action to the responder.</p> <p>Because the parties have chosen the Jingle ICE-UDP Transport Method, the initiator and responder exchange an open-ended number of possible candidate transports, perform connectivity checks, and agree upon a candidate transport as explained in <cite>XEP-0176</cite>. Once ICE negotiation is completed, the responder sends a session-accept action to the initiator.</p>
<example caption="Initiator requests content-replace"><![CDATA[
<iq from='romeo@montague.lit/orchard'
id='rep1'
to='juliet@capulet.lit/balcony'
type='set'>
<jingle xmlns='urn:xmpp:tmp:jingle'
action='content-replace'
initiator='romeo@montague.lit/orchard'
sid='a73sjjvkla37jfea'>
<content creator='initiator' name='this-is-the-audio-content'>
<description xmlns='urn:xmpp:tmp:jingle:apps:audio-rtp' profile='RTP/AVP'>
[ ... ]
</description>
<transport xmlns='urn:xmpp:tmp:jingle:transports:ice-udp'>
<candidate component='1'
foundation='1'
generation='0'
ip='192.0.2.3'
network='1'
port='45664'
priority='1694498815'
protocol='udp'
pwd='asd88fgpdd777uzjYhagZg'
rel-addr='10.0.1.1'
rel-port='8998'
rem-addr='192.0.2.1'
rem-port='3478'
type='srflx'
ufrag='8hhy'/>
</transport>
</content>
</jingle>
</iq>
]]></example>
<p>The responder then acknowledges the content-replace action and sends a session-accept action.</p>
<example caption="Responder acknowledges content-replace"><![CDATA[
<iq from='juliet@capulet.lit/balcony'
id='rep1'
to='romeo@montague.lit/orchard'
type='result'/>
]]></example>
<example caption="Responder sends session-accept"><![CDATA[ <example caption="Responder sends session-accept"><![CDATA[
<iq from='juliet@capulet.lit/balcony' <iq from='juliet@capulet.lit/balcony'
id='accept1' id='accept1'
@ -828,10 +789,6 @@ Romeo Juliet
|<--------------------------->| |<--------------------------->|
| STUN connectivity checks | | STUN connectivity checks |
|<--------------------------->| |<--------------------------->|
| content-replace |
|---------------------------->|
| ack |
|<----------------------------|
| session-accept | | session-accept |
|<----------------------------| |<----------------------------|
| ack | | ack |
@ -944,48 +901,7 @@ Romeo Juliet
to='juliet@capulet.lit/balcony' to='juliet@capulet.lit/balcony'
type='result'/> type='result'/>
]]></example> ]]></example>
<p>Because the parties have chosen the Jingle ICE-UDP Transport Method, the initiator and responder exchange an open-ended number of possible candidate transports, perform connectivity checks, and agree upon a candidate transport as explained in <cite>XEP-0176</cite>. Once ICE negotiation is completed, the initiator sends a content-replace action to the responder.</p> <p>Because the parties have chosen the Jingle ICE-UDP Transport Method, the initiator and responder exchange an open-ended number of possible candidate transports, perform connectivity checks, and agree upon a candidate transport as explained in <cite>XEP-0176</cite>. Once ICE negotiation is completed, the responder sends a session-accept action to the initiator.</p>
<example caption="Initiator requests content-replace"><![CDATA[
<iq from='romeo@montague.lit/orchard'
id='rep1'
to='juliet@capulet.lit/balcony'
type='set'>
<jingle xmlns='urn:xmpp:tmp:jingle'
action='content-replace'
initiator='romeo@montague.lit/orchard'
sid='a73sjjvkla37jfea'>
<content creator='initiator' name='this-is-the-audio-content'>
<description xmlns='urn:xmpp:tmp:jingle:apps:audio-rtp' profile='RTP/AVP'>
[ ... ]
</description>
<transport xmlns='urn:xmpp:tmp:jingle:transports:ice-udp'>
<candidate component='1'
foundation='1'
generation='0'
ip='192.0.2.3'
network='1'
port='45664'
priority='1694498815'
protocol='udp'
pwd='asd88fgpdd777uzjYhagZg'
rel-addr='10.0.1.1'
rel-port='8998'
rem-addr='192.0.2.1'
rem-port='3478'
type='srflx'
ufrag='8hhy'/>
</transport>
</content>
</jingle>
</iq>
]]></example>
<p>The responder then acknowledges the content-replace action and sends a session-accept action.</p>
<example caption="Responder acknowledges content-replace"><![CDATA[
<iq from='juliet@capulet.lit/balcony'
id='rep1'
to='romeo@montague.lit/orchard'
type='result'/>
]]></example>
<example caption="Responder sends session-accept"><![CDATA[ <example caption="Responder sends session-accept"><![CDATA[
<iq from='juliet@capulet.lit/balcony' <iq from='juliet@capulet.lit/balcony'
id='accept1' id='accept1'
@ -1166,7 +1082,7 @@ Romeo Juliet
]]></example> ]]></example>
</section2> </section2>
<section2 topic='Secure Jingle Audio via UDP/TLS/RTP/SAVP, Negotiated with ICE-UDP' anchor='scenarios-secure'> <section2 topic='Secure Jingle Audio via UDP/TLS/RTP/SAVP, Negotiated with ICE-UDP' anchor='scenarios-secure'>
<p>In this scenario, Romeo initiates a voice chat with Juliet using a transport method of ICE-UDP and an unencrypted profile of "RTP/AVP", but Juliet wants to chat securely so she requests the use of a secure transport as specified in &sdpdtls; (via a profile of "UDP/TLS/RTP/SAVP").</p> <p>In this scenario, Romeo initiates a voice chat with Juliet using a secure transport as specified in &sdpdtls; (via a profile of "UDP/TLS/RTP/SAVP").</p>
<p>The session flow is as follows:</p> <p>The session flow is as follows:</p>
<code><![CDATA[ <code><![CDATA[
Romeo Juliet Romeo Juliet
@ -1179,23 +1095,11 @@ Romeo Juliet
|<----------------------------| |<----------------------------|
| ack | | ack |
|---------------------------->| |---------------------------->|
| content-replace |
|<----------------------------|
| ack |
|---------------------------->|
| content-accept |
|---------------------------->|
| ack |
|<----------------------------|
| transport-info (X times) | | transport-info (X times) |
| (with acks) | | (with acks) |
|<--------------------------->| |<--------------------------->|
| STUN connectivity checks | | STUN connectivity checks |
|<--------------------------->| |<--------------------------->|
| content-replace |
|---------------------------->|
| ack |
|<----------------------------|
| session-accept | | session-accept |
|<----------------------------| |<----------------------------|
| ack | | ack |
@ -1219,7 +1123,7 @@ Romeo Juliet
initiator='romeo@montague.lit/orchard' initiator='romeo@montague.lit/orchard'
sid='a73sjjvkla37jfea'> sid='a73sjjvkla37jfea'>
<content creator='initiator' name='this-is-the-audio-content'> <content creator='initiator' name='this-is-the-audio-content'>
<description xmlns='urn:xmpp:tmp:jingle:apps:audio-rtp' profile='RTP/AVP'> <description xmlns='urn:xmpp:tmp:jingle:apps:audio-rtp' profile='UDP/TLS/RTP/SAVP'/>
<payload-type id='96' name='speex' clockrate='16000'/> <payload-type id='96' name='speex' clockrate='16000'/>
<payload-type id='97' name='speex' clockrate='8000'/> <payload-type id='97' name='speex' clockrate='8000'/>
<payload-type id='18' name='G729'/> <payload-type id='18' name='G729'/>
@ -1256,95 +1160,7 @@ Romeo Juliet
to='juliet@capulet.lit/balcony' to='juliet@capulet.lit/balcony'
type='result'/> type='result'/>
]]></example> ]]></example>
<p>However, Juliet wants to make sure that the communications are encrypted, so she sends a content-replace action to Romeo.</p> <p>Because the parties have chosen the Jingle ICE-UDP Transport Method, the initiator and responder exchange an open-ended number of possible candidate transports, perform connectivity checks, and agree upon a candidate transport as explained in <cite>XEP-0176</cite>. Once ICE negotiation is completed, the responder sends a session-accept action to the initiator.</p>
<example caption="Responder requests content-replace"><![CDATA[
<iq from='juliet@capulet.lit/balcony'
id='rep2'
to='romeo@montague.lit/orchard'
type='set'>
<jingle xmlns='urn:xmpp:tmp:jingle'
action='content-replace'
initiator='romeo@montague.lit/orchard'
sid='a73sjjvkla37jfea'>
<content creator='responder' name='encrypted-audio-content'>
<description xmlns='urn:xmpp:tmp:jingle:apps:audio-rtp' profile='UDP/TLS/RTP/SAVP'/>
<transport xmlns='urn:xmpp:tmp:jingle:transports:ice-udp'/>
</content>
</jingle>
</iq>
]]></example>
<p>Romeo then acknowledges the content-replace action and, if it is acceptable, returns a content-accept action:</p>
<example caption="Initiator acknowledges content-replace"><![CDATA[
<iq from='romeo@montague.lit/orchard'
id='rep2'
to='juliet@capulet.lit/balcony'
type='result'/>
]]></example>
<example caption="Initiator accepts content definition"><![CDATA[
<iq from='romeo@montague.lit/orchard'
id='accept3'
to='juliet@capulet.lit/balcony'
type='set'>
<jingle xmlns='urn:xmpp:tmp:jingle'
action='content-accept'
initiator='romeo@montague.lit/orchard'
sid='a73sjjvkla37jfea'>
<content creator='responder' name='encrypted-audio-content'>
<description xmlns='urn:xmpp:tmp:jingle:apps:audio-rtp' profile='UDP/TLS/RTP/SAVP'/>
<transport xmlns='urn:xmpp:tmp:jingle:transports:ice-udp'/>
</content>
</jingle>
</iq>
]]></example>
<p>The other party then acknowledges the acceptance.</p>
<example caption="Responder acknowledges content-accept"><![CDATA[
<iq from='juliet@capulet.lit/balcony'
id='accept3'
to='romeo@montague.lit/orchard'
type='result'/>
]]></example>
<p>Because the parties have chosen the Jingle ICE-UDP Transport Method, the initiator and responder exchange an open-ended number of possible candidate transports, perform connectivity checks, and agree upon a candidate transport as explained in <cite>XEP-0176</cite>. Once ICE negotiation is completed, the initiator sends a content-replace action to the responder.</p>
<example caption="Initiator requests content-replace"><![CDATA[
<iq from='romeo@montague.lit/orchard'
id='rep2'
to='juliet@capulet.lit/balcony'
type='set'>
<jingle xmlns='urn:xmpp:tmp:jingle'
action='content-replace'
initiator='romeo@montague.lit/orchard'
sid='a73sjjvkla37jfea'>
<content creator='initiator' name='this-is-the-audio-content'>
<description xmlns='urn:xmpp:tmp:jingle:apps:audio-rtp' profile='UDP/TLS/RTP/SAVP'/>
[ ... ]
</description>
<transport xmlns='urn:xmpp:tmp:jingle:transports:ice-udp'>
<candidate component='1'
foundation='1'
generation='0'
ip='192.0.2.3'
network='1'
port='45664'
priority='1694498815'
protocol='udp'
pwd='asd88fgpdd777uzjYhagZg'
rel-addr='10.0.1.1'
rel-port='8998'
rem-addr='192.0.2.1'
rem-port='3478'
type='srflx'
ufrag='8hhy'/>
</transport>
</content>
</jingle>
</iq>
]]></example>
<p>The responder then acknowledges the content-replace action and sends a session-accept action.</p>
<example caption="Responder acknowledges content-replace"><![CDATA[
<iq from='juliet@capulet.lit/balcony'
id='rep2'
to='romeo@montague.lit/orchard'
type='result'/>
]]></example>
<example caption="Responder sends session-accept"><![CDATA[ <example caption="Responder sends session-accept"><![CDATA[
<iq from='juliet@capulet.lit/balcony' <iq from='juliet@capulet.lit/balcony'
id='accept1' id='accept1'