git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@2291 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2008-09-30 14:50:28 +00:00
parent 6f15ad8258
commit 14f0e3e144
1 changed files with 34 additions and 80 deletions

View File

@ -24,6 +24,12 @@
<supersededby/>
<shortname>NOT_YET_ASSIGNED</shortname>
&stpeter;
<revision>
<version>0.8</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.7</version>
<date>2008-09-25</date>
@ -411,7 +417,7 @@ Claudius Laertes
</file>
</offer>
</description>
<transport xmlns='urn:xmpp:jingle:transports:bytestreams:0'/>
<transport xmlns='urn:xmpp:jingle:transports:ibb:0'/>
</content>
</jingle>
</iq>
@ -437,15 +443,11 @@ Claudius Laertes
|<----------------------------|
| [ SOCKS5 failure! ] |
|x---------------------------x|
| content-add (IBB) |
|<----------------------------|
| ack |
|---------------------------->|
| content-accept |
| transport-replace (IBB) |
|---------------------------->|
| ack |
|<----------------------------|
| content-remove (SOCK5) |
| transport-accept |
|<----------------------------|
| ack |
|---------------------------->|
@ -455,7 +457,7 @@ Claudius Laertes
|<----------------------------|
| ack |
|---------------------------->|
| [ file transfer ] |
| [ file transfer via IBB] |
|============================>|
| terminate |
|<----------------------------|
@ -530,98 +532,50 @@ Claudius Laertes
</error>
</iq>
]]></example>
<p>At this point the file transfer has failed using SOCKS5 Bytestreams. However, all is not lost, because the parties can attempt to fall back to In-Band Bytestreams. Therefore the responder sends a content-add action including a transport of IBB and a <em>request</em> for the file originally offered (note the use of the &lt;request/&gt; element instead of the &lt;offer/&gt; element, since the responder wants the initiator to send the previously-offered file).</p>
<example caption="Responder adds IBB to session"><![CDATA[
<iq from='laertes@shakespeare.lit/castle'
<p>At this point the file transfer has failed using SOCKS5 Bytestreams. However, all is not lost, because the parties can attempt to fall back to In-Band Bytestreams. Therefore the initiator sends a transport-replace action including a transport of IBB.</p>
<example caption="Initiator replaces transport with IBB"><![CDATA[
<iq from='kingclaudius@shakespeare.lit/castle'
id='add1'
to='kingclaudius@shakespeare.lit/castle'
to='laertes@shakespeare.lit/castle'
type='set'>
<jingle xmlns='urn:xmpp:jingle:0'
action='content-add'
action='transport-replace'
initiator='kingclaudius@shakespeare.lit/castle'
sid='851ba2'>
<content creator='responder' name='a-file-request'>
<description xmlns='urn:xmpp:jingle:apps:file-transfer:0'>
<request>
<file xmlns='http://jabber.org/protocol/si/profile/file-transfer'
hash='552da749930852c69ae5d2141d3766b1'
name='test.txt'/>
</request>
</description>
<content creator='initiator' name='a-file-offer'>
<transport xmlns='urn:xmpp:jingle:transports:ibb:0'/>
</content>
</jingle>
</iq>
]]></example>
<p>The initiator then acknowledges the content-add action.</p>
<example caption="Initiator acknowledges content-add"><![CDATA[
<iq from='kingclaudius@shakespeare.lit/castle'
<p>The responder then acknowledges the transport-replace action.</p>
<example caption="Responder acknowledges transport-replace"><![CDATA[
<iq from='laertes@shakespeare.lit/castle'
id='add1'
to='laertes@shakespeare.lit/castle'
to='kingclaudius@shakespeare.lit/castle'
type='result'/>
]]></example>
<p>If the content definition is acceptable, the initiator then sends a content-accept action to the responder.</p>
<example caption="Initiator sends content-accept"><![CDATA[
<iq from='kingclaudius@shakespeare.lit/castle'
<p>If the transport replacement is acceptable, the responder then sends a transport-accept action to the initiator.</p>
<example caption="Responder sends transport-accept"><![CDATA[
<iq from='laertes@shakespeare.lit/castle'
id='accept2'
to='laertes@shakespeare.lit/castle'
to='kingclaudius@shakespeare.lit/castle'
type='set'>
<jingle xmlns='urn:xmpp:jingle:0'
action='content-accept'
action='transport-accept'
initiator='kingclaudius@shakespeare.lit/castle'
sid='851ba2'>
<content creator='responder' name='a-file-request'>
<description xmlns='urn:xmpp:jingle:apps:file-transfer:0'>
<request>
<file xmlns='http://jabber.org/protocol/si/profile/file-transfer'
hash='552da749930852c69ae5d2141d3766b1'
name='test.txt'/>
</request>
</description>
<transport xmlns='urn:xmpp:jingle:transports:ibb:0'/>
</content>
</jingle>
</iq>
]]></example>
<p>The responder then acknowledges the content-accept action.</p>
<example caption="Responder acknowledges content-accept"><![CDATA[
<iq from='laertes@shakespeare.lit/castle'
<p>The initiator then acknowledges the transport-accept action.</p>
<example caption="Initiator acknowledges transport-accept"><![CDATA[
<iq from='kingclaudius@shakespeare.lit/castle'
id='accept2'
to='kingclaudius@shakespeare.lit/castle'
type='result'/>
]]></example>
<p>The responder then sends a Jingle content-remove (deleting SOCKS5 Bytestreams) in order to choose the desired transport, which in this case is IBB.</p>
<example caption="Responder sends content-remove"><![CDATA[
<iq from='laertes@shakespeare.lit/castle'
id='remove1'
to='kingclaudius@shakespeare.lit/castle'
type='set'>
<jingle xmlns='urn:xmpp:jingle:0'
action='content-remove'
initiator='kingclaudius@shakespeare.lit/castle'
sid='851ba2'>
<content creator='initiator' name='first-transport'>
<description xmlns='urn:xmpp:jingle:apps:file-transfer:0'>
<offer>
<file xmlns='http://jabber.org/protocol/si/profile/file-transfer'
name='test.txt'
size='1022'
hash='552da749930852c69ae5d2141d3766b1'
date='1969-07-21T02:56:15Z'>
<desc>This is a test. If this were a real file...</desc>
</file>
</offer>
</description>
<transport xmlns='urn:xmpp:jingle:transports:bytestreams:0'/>
</content>
</jingle>
</iq>
]]></example>
<p>The initiator acknowledges receipt of the Jingle content-remove action.</p>
<example caption="Responder acknowledges content-remove"><![CDATA[
<iq from='laertes@shakespeare.lit/castle'
id='remove1'
to='kingclaudius@shakespeare.lit/castle'
to='laertes@shakespeare.lit/castle'
type='result'/>
]]></example>
<p>The initiator then sends an IBB initiation request to the responder.</p>
@ -663,7 +617,7 @@ Claudius Laertes
</file>
</offer>
</description>
<transport xmlns='urn:xmpp:jingle:transports:bytestreams:0'/>
<transport xmlns='urn:xmpp:jingle:transports:ibb:0'/>
</content>
</jingle>
</iq>
@ -716,24 +670,24 @@ Claudius Laertes
<application>
<name>file-transfer</name>
<desc>Jingle sessions for the transfer of a file</desc>
<transport>reliable</transport>
<transport>streaming</transport>
<doc>XEP-0234</doc>
</application>
]]></code>
</section2>
<section2 topic='Jingle Transport Methods' anchor='registrar-transports'>
<p>The XMPP Registrar shall add to its registry of Jingle transport methods definitions for the reliable transport methods defined in <cite>XEP-0047</cite> and <cite>XEP-0065</cite>. The registry submissions are as follows:</p>
<p>The XMPP Registrar shall add to its registry of Jingle transport methods definitions for the streaming transport methods defined in <cite>XEP-0047</cite> and <cite>XEP-0065</cite>. The registry submissions are as follows:</p>
<code><![CDATA[
<transport>
<name>bytestreams</name>
<desc>A method for exchanging data over SOCKS5 Bytestreams.</desc>
<type>reliable</type>
<type>streaming</type>
<doc>XEP-0065</doc>
</transport>
<transport>
<name>ibb</name>
<desc>A method for exchanging data over In-Band Bytestreams.</desc>
<type>reliable</type>
<type>streaming</type>
<doc>XEP-0047</doc>
</transport>
]]></code>