mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-24 10:12:19 -05:00
0.22
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@2292 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
parent
14f0e3e144
commit
9949f6c733
78
xep-0176.xml
78
xep-0176.xml
@ -27,6 +27,12 @@
|
||||
&stpeter;
|
||||
&hildjj;
|
||||
&seanegan;
|
||||
<revision>
|
||||
<version>0.22</version>
|
||||
<date>2008-09-30</date>
|
||||
<initials>psa</initials>
|
||||
<remark><p>Corrected fallback scenario to use transport-replace and transport-accept.</p></remark>
|
||||
</revision>
|
||||
<revision>
|
||||
<version>0.21</version>
|
||||
<date>2008-09-25</date>
|
||||
@ -115,7 +121,7 @@
|
||||
<version>0.8</version>
|
||||
<date>2007-04-17</date>
|
||||
<initials>psa</initials>
|
||||
<remark><p>Separately defined ice-tcp and ice-udp transport methods to enable clearer definition of transport methods and reuse by application types; specified Jingle conformance, including definition of ice-udp as lossy and ice-tcp as reliable.</p></remark>
|
||||
<remark><p>Separately defined ice-tcp and ice-udp transport methods to enable clearer definition of transport methods and reuse by application types; specified Jingle conformance, including definition of ice-udp as datagram and ice-tcp as streaming.</p></remark>
|
||||
</revision>
|
||||
<revision>
|
||||
<version>0.7</version>
|
||||
@ -162,7 +168,7 @@
|
||||
</header>
|
||||
<section1 topic='Introduction' anchor='intro'>
|
||||
<p>&xep0166; defines a framework for negotiating and managing out-of-band data sessions over XMPP. In order to provide a flexible framework, the base Jingle specification defines neither data transport methods nor application formats, leaving that up to separate specifications.</p>
|
||||
<p>The current document defines a transport method for establishing and managing data exchanges between XMPP entities over the User Datagram Protocol (see &rfc0768;), using the ICE methodology developed within the IETF and specified in &ice; (hereafter referred to as &icecore;). Use of the <strong>ice-udp</strong> method results in a lossy transport suitable for media applications where some packet loss is tolerable (e.g., audio and video).</p>
|
||||
<p>The current document defines a transport method for establishing and managing data exchanges between XMPP entities over the User Datagram Protocol (see &rfc0768;), using the ICE methodology developed within the IETF and specified in &ice; (hereafter referred to as &icecore;). Use of the <strong>ice-udp</strong> method results in a datagram transport suitable for media applications where some packet loss is tolerable (e.g., audio and video).</p>
|
||||
<p>Note: &icecore; has been approved for publication as an RFC but has not yet been published as an RFC. While every effort has been made to keep this document synchronized with &icecore;, the interested reader is referred to &icecore; for a detailed description of the ICE methodology.</p>
|
||||
<p>The process for ICE negotiation is largely the same in Jingle as it is in ICE. There are several differences:</p>
|
||||
<ul>
|
||||
@ -190,7 +196,7 @@
|
||||
<ol>
|
||||
<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='#protocol-negotiate'>ICE Negotiation</link> section of this document.</p></li>
|
||||
<li><p>Successful negotiation of the ice-udp method results in use of a lossy transport that is suitable for applications where some packet loss is tolerable, such as audio and video.</p></li>
|
||||
<li><p>Successful negotiation of the ice-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 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>
|
||||
@ -856,12 +862,12 @@ Romeo Gateway Juliet
|
||||
|------------------------>| |
|
||||
| ack | |
|
||||
|<------------------------| |
|
||||
| content-add | |
|
||||
| transport-replace | |
|
||||
| (Raw UDP) | |
|
||||
|<------------------------| |
|
||||
| ack | |
|
||||
|------------------------>| |
|
||||
| content-accept | |
|
||||
| transport-accept | |
|
||||
|------------------------>| |
|
||||
| ack | |
|
||||
|<------------------------| SIP INVITE |
|
||||
@ -912,20 +918,17 @@ Romeo Gateway Juliet
|
||||
to='romeo@montague.lit/orchard'
|
||||
type='result'/>
|
||||
]]></example>
|
||||
<p>Immediately the gateway sends a content-add action to Romeo, specifying a transport of Raw UDP with a candidate whose IP address and port identify a media relay at the gateway.</p>
|
||||
<example caption="Gateway sends content-add on behalf of responder"><![CDATA[
|
||||
<p>Immediately the gateway sends a transport-replace action to Romeo, specifying a transport of Raw UDP with a candidate whose IP address and port identify a media relay at the gateway.</p>
|
||||
<example caption="Gateway sends transport-replace on behalf of responder"><![CDATA[
|
||||
<iq from='juliet@capulet.lit/balcony'
|
||||
id='add1'
|
||||
id='replace1'
|
||||
to='romeo@montague.lit/orchard'
|
||||
type='set'>
|
||||
<jingle xmlns='urn:xmpp:jingle:0'
|
||||
action='content-add'
|
||||
action='transport-replace'
|
||||
initiator='romeo@montague.lit/orchard'
|
||||
sid='a73sjjvkla37jfea'>
|
||||
<content creator='responder' name='voice2'>
|
||||
<description xmlns='urn:xmpp:jingle:apps:rtp:0' media='audio'>
|
||||
<payload-type id='18' name='G729'/>
|
||||
</description>
|
||||
<content creator='initiator' name='voice1'>
|
||||
<transport xmlns='urn:xmpp:jingle:transports:raw-udp:0'>
|
||||
<candidate generation='0'
|
||||
id='a9j3mnbtu1'
|
||||
@ -936,26 +939,23 @@ Romeo Gateway Juliet
|
||||
</jingle>
|
||||
</iq>
|
||||
]]></example>
|
||||
<p>Romeo then acknowledges the content-add action and immediately also sends a content-accept.</p>
|
||||
<example caption="Initiator acknowledges content-add"><![CDATA[
|
||||
<p>Romeo then acknowledges the transport-replace action and immediately also sends a transport-accept.</p>
|
||||
<example caption="Initiator acknowledges transport-replace"><![CDATA[
|
||||
<iq from='romeo@montague.lit/orchard'
|
||||
id='add1'
|
||||
id='replace1'
|
||||
to='juliet@capulet.lit/balcony'
|
||||
type='result'/>
|
||||
]]></example>
|
||||
<example caption="Initiator accepts new content definition"><![CDATA[
|
||||
<example caption="Initiator accepts new transport"><![CDATA[
|
||||
<iq from='romeo@montague.lit/orchard'
|
||||
id='accept1'
|
||||
to='juliet@capulet.lit/balcony'
|
||||
type='set'>
|
||||
<jingle xmlns='urn:xmpp:jingle:0'
|
||||
action='content-accept'
|
||||
action='transport-accept'
|
||||
initiator='romeo@montague.lit/orchard'
|
||||
sid='a73sjjvkla37jfea'>
|
||||
<content creator='responder' name='voice2'>
|
||||
<description xmlns='urn:xmpp:jingle:apps:rtp:0' media='audio'>
|
||||
<payload-type id='18' name='G729'/>
|
||||
</description>
|
||||
<transport xmlns='urn:xmpp:jingle:transports:raw-udp:0'>
|
||||
<candidate generation='0'
|
||||
id='a9j3mnbtu1'
|
||||
@ -967,43 +967,13 @@ Romeo Gateway Juliet
|
||||
</iq>
|
||||
]]></example>
|
||||
<p>The gateway then acknowledges the acceptance on behalf of Juliet.</p>
|
||||
<example caption="Gateway acknowledges content-accept"><![CDATA[
|
||||
<example caption="Gateway acknowledges transport-accept"><![CDATA[
|
||||
<iq from='juliet@capulet.lit/balcony'
|
||||
id='accept1'
|
||||
to='romeo@montague.lit/orchard'
|
||||
type='result'/>
|
||||
]]></example>
|
||||
<p>Now the gateway removes the old content definition based on the ICE-UDP transport.</p>
|
||||
<example caption="Gateway sends content-remove on behalf of responder"><![CDATA[
|
||||
<iq from='juliet@capulet.lit/balcony'
|
||||
id='remove1'
|
||||
to='romeo@montague.lit/orchard'
|
||||
type='set'>
|
||||
<jingle xmlns='urn:xmpp:jingle:0'
|
||||
action='content-add'
|
||||
initiator='romeo@montague.lit/orchard'
|
||||
sid='a73sjjvkla37jfea'>
|
||||
<content creator='initiator' name='voice2'>
|
||||
<description xmlns='urn:xmpp:jingle:apps:rtp:0' media='audio'>
|
||||
<payload-type id='96' name='speex' clockrate='16000'/>
|
||||
<payload-type id='97' name='speex' clockrate='8000'/>
|
||||
<payload-type id='18' name='G729'/>
|
||||
<payload-type id='103' name='L16' clockrate='16000' channels='2'/>
|
||||
<payload-type id='98' name='x-ISAC' clockrate='8000'/>
|
||||
</description>
|
||||
<transport xmlns='urn:xmpp:jingle:transports:ice-udp:0'/>
|
||||
</content>
|
||||
</jingle>
|
||||
</iq>
|
||||
]]></example>
|
||||
<p>Romeo then acknowledges the content-replace action.</p>
|
||||
<example caption="Initiator acknowledges content-add"><![CDATA[
|
||||
<iq from='romeo@montague.lit/orchard'
|
||||
id='add1'
|
||||
to='juliet@capulet.lit/balcony'
|
||||
type='result'/>
|
||||
]]></example>
|
||||
<p>Eventually, the responder sends a session-accept.</p>
|
||||
<p>Eventually, the responder sends a session-accept through the gateway.</p>
|
||||
<example caption="Responder sends session-accept"><![CDATA[
|
||||
<iq from='juliet@capulet.lit/balcony'
|
||||
id='accept1'
|
||||
@ -1177,7 +1147,7 @@ Romeo Gateway Juliet
|
||||
methodology when resulting in the use of UDP as the
|
||||
transport protocol.
|
||||
</desc>
|
||||
<type>lossy</type>
|
||||
<type>datagram</type>
|
||||
<doc>XEP-0176</doc>
|
||||
</transport>
|
||||
]]></code>
|
||||
|
Loading…
Reference in New Issue
Block a user