1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-21 16:55:07 -05:00
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@3928 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2010-02-17 03:01:59 +00:00
parent ea40cf9684
commit 38c3589314

View File

@ -22,6 +22,12 @@
<shortname>jingle-ibb</shortname> <shortname>jingle-ibb</shortname>
<discuss>jingle</discuss> <discuss>jingle</discuss>
&stpeter; &stpeter;
<revision>
<version>0.3</version>
<date>2010-02-16</date>
<initials>psa</initials>
<remark><p>Added negotiation flow for block size; corrected some slight errors.</p></remark>
</revision>
<revision> <revision>
<version>0.2</version> <version>0.2</version>
<date>2009-03-09</date> <date>2009-03-09</date>
@ -75,7 +81,7 @@ Initiator Responder
|--------------------------->| |--------------------------->|
| | | |
]]></code> ]]></code>
<p>This flow is illustrated in the following examples (to prevent confusion these use a "stub" transport instead of a real application type).</p> <p>This flow is illustrated in the following examples (to prevent confusion these use a "stub" description instead of a real application type).</p>
<p>First the initiator sends a Jingle session-initiate request.</p> <p>First the initiator sends a Jingle session-initiate request.</p>
<example caption="Initiator sends session-initiate (stub)"><![CDATA[ <example caption="Initiator sends session-initiate (stub)"><![CDATA[
<iq from='romeo@montague.lit/orchard' <iq from='romeo@montague.lit/orchard'
@ -95,7 +101,6 @@ Initiator Responder
</jingle> </jingle>
</iq> </iq>
]]></example> ]]></example>
<p class='box'>Note: The Jingle IBB Transport Method defines one attribute in addition to those defined in XEP-0047: the 'stanza' attribute. This attribute specifies whether the initiator intends to send IBB data using &MESSAGE; or &IQ; stanzas, but is purely advisory. The default value is "iq", and it is RECOMMENDED to send IBB data using IQ stanzas instead of message stanzas because IQ stanzas provide feedback to the sender regarding delivery to the recipient (e.g., if the recipient is on a small pipe and cannot handle a large volume of IBB packets in quick succession).</p>
<p>The responder immediately acknowledges receipt (but does not yet accept the session).</p> <p>The responder immediately acknowledges receipt (but does not yet accept the session).</p>
<example caption="Responder acknowledges session-initiate"><![CDATA[ <example caption="Responder acknowledges session-initiate"><![CDATA[
<iq from='juliet@capulet.lit/balcony' <iq from='juliet@capulet.lit/balcony'
@ -103,10 +108,10 @@ Initiator Responder
to='romeo@montague.lit/orchard' to='romeo@montague.lit/orchard'
type='result'/> type='result'/>
]]></example> ]]></example>
<p>If the offer is acceptable, the responder returns a Jingle session-accept and the initiator acknowledges the session-accept.</p> <p>If the offer is acceptable, the responder returns a Jingle session-accept. If the responder wishes to use a smaller block-size, the responder can specify that in the session-accept by returning a different value for the 'block-size' attribute.</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='bsa91h5' id='bsa91h56'
to='romeo@montague.lit/orchard' to='romeo@montague.lit/orchard'
type='set'> type='set'>
<jingle xmlns='urn:xmpp:jingle:1' <jingle xmlns='urn:xmpp:jingle:1'
@ -117,19 +122,20 @@ Initiator Responder
<content creator='initiator' name='stub'> <content creator='initiator' name='stub'>
<description xmlns='urn:xmpp:jingle:apps:stub:0'/> <description xmlns='urn:xmpp:jingle:apps:stub:0'/>
<transport xmlns='urn:xmpp:jingle:transports:ibb:0' <transport xmlns='urn:xmpp:jingle:transports:ibb:0'
block-size='4096' block-size='2048'
sid='ch3d9s71'/> sid='ch3d9s71'/>
</content> </content>
</jingle> </jingle>
</iq> </iq>
]]></example> ]]></example>
<p>The initiator then acknowledges the session-accept.</p>
<example caption="Initiator acknowledges session-accept"><![CDATA[ <example caption="Initiator acknowledges session-accept"><![CDATA[
<iq from='romeo@montague.lit/orchard' <iq from='romeo@montague.lit/orchard'
id='bsa91h5' id='bsa91h56'
to='juliet@capulet.lit/balcony' to='juliet@capulet.lit/balcony'
type='result'/> type='result'/>
]]></example> ]]></example>
<p>The initiator then immediately begins sending IBB packets using an IQ-set for each chunk as described in XEP-0047, and the responder acknowledges each IQ-set.</p> <p>The foregoing Jingle negotiation replaces the &lt;open/&gt; element from <cite>XEP-0047</cite>. Therefore the initiator can now immediately begin sending IBB packets using an IQ-set for each chunk as described in XEP-0047, where the responder will acknowledge each IQ-set in accordance with &rfc3920;.</p>
<example caption='An IBB packet'><![CDATA[ <example caption='An IBB packet'><![CDATA[
<iq from='romeo@montague.net/orchard' <iq from='romeo@montague.net/orchard'
id='ls72b58f' id='ls72b58f'
@ -227,6 +233,9 @@ Initiator Responder
<section2 topic='Encryption of Media' anchor='security-media'> <section2 topic='Encryption of Media' anchor='security-media'>
<p>A Jingle implementation SHOULD support security preconditions that are enforced before application media is allowed to flow over the bytestream, such as those described in &xtls;.</p> <p>A Jingle implementation SHOULD support security preconditions that are enforced before application media is allowed to flow over the bytestream, such as those described in &xtls;.</p>
</section2> </section2>
<section2 topic='Use of Base64' anchor='security-base64'>
<p>See <cite>XEP-0047</cite> for security considerations related to the user of Base64.</p>
</section2>
</section1> </section1>
<section1 topic='IANA Considerations' anchor='iana'> <section1 topic='IANA Considerations' anchor='iana'>
@ -237,7 +246,7 @@ Initiator Responder
<section2 topic='Protocol Namespaces' anchor='registrar-ns'> <section2 topic='Protocol Namespaces' anchor='registrar-ns'>
<p>This specification defines the following XML namespace:</p> <p>This specification defines the following XML namespace:</p>
<ul> <ul>
<li>urn:xmpp:jingle:transports:s5b:0</li> <li>urn:xmpp:jingle:transports:ibb:0</li>
</ul> </ul>
<p>Upon advancement of this specification from a status of Experimental to a status of Draft, the &REGISTRAR; shall add the foregoing namespace to the registry located at &NAMESPACES;, as described in Section 4 of &xep0053;.</p> <p>Upon advancement of this specification from a status of Experimental to a status of Draft, the &REGISTRAR; shall add the foregoing namespace to the registry located at &NAMESPACES;, as described in Section 4 of &xep0053;.</p>
</section2> </section2>
@ -249,7 +258,7 @@ Initiator Responder
<code><![CDATA[ <code><![CDATA[
<transport> <transport>
<name>ibb</name> <name>ibb</name>
<desc>A method for exchanging data over In-Band Bytestreams.</desc> <desc>A method for data exchange over In-Band Bytestreams.</desc>
<type>streaming</type> <type>streaming</type>
<doc>XEP-0261</doc> <doc>XEP-0261</doc>
</transport> </transport>
@ -276,7 +285,7 @@ Initiator Responder
<xs:attribute name='stanza' use='optional' default='iq'> <xs:attribute name='stanza' use='optional' default='iq'>
<xs:simpleType> <xs:simpleType>
<xs:restriction base='xs:NCName'> <xs:restriction base='xs:NCName'>
<xs:enumeration value='iq'> <xs:enumeration value='iq'/>
<xs:enumeration value='message'/> <xs:enumeration value='message'/>
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>