git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@3058 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2009-04-20 17:02:57 +00:00
parent 565cd35871
commit 8264a9789b
1 changed files with 28 additions and 11 deletions

View File

@ -27,6 +27,12 @@
&robmcqueen;
&seanegan;
&hildjj;
<revision>
<version>0.37</version>
<date>2009-04-20</date>
<initials>psa</initials>
<remark><p>Specified tie-breaking for session-initiate action; incremented errors namespace to match core namespace; clarified some ambiguities in the text, examples, and state machine.</p></remark>
</revision>
<revision>
<version>0.36</version>
<date>2009-03-11</date>
@ -1055,7 +1061,7 @@ PENDING o-----------------------+ |
type='error'>
<error type='cancel'>
<item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
<unknown-session xmlns='urn:xmpp:jingle:errors:0'/>
<unknown-session xmlns='urn:xmpp:jingle:errors:1'/>
</error>
</iq>
]]></example>
@ -1084,7 +1090,7 @@ PENDING o-----------------------+ |
type='error'>
<error type='modify'>
<feature-not-implemented xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
<unsupported-info xmlns='urn:xmpp:jingle:errors:0'/>
<unsupported-info xmlns='urn:xmpp:jingle:errors:1'/>
</error>
</iq>
]]></example>
@ -1195,18 +1201,29 @@ PENDING o-----------------------+ |
<p>The <strong>transport-replace</strong> action is used to redefine a transport method, typically for fallback to a different method (e.g., changing from ICE-UDP to Raw UDP for a datagram transport, or changing from &xep0065; to &xep0047; for a streaming transport). If the recipient wishes to use the new transport definition, it MUST send a transport-accept action to the other party; if not, it MUST send a transport-reject action to the other party.</p>
</section3>
<section3 topic='Tie Breaking Related to Jingle Actions' anchor='def-action-ties'>
<p>It is possible that two instances of certain actions can be sent at the same time in the context of an existing session, one by each party; for example, both parties might simulaneously attempt to send a content-add action. In all such cases, the action sent by the initiator MUST overrule the action sent by the responder; i.e., both parties MUST accept the action sent by the initiator and the initiator MUST return a &conflict; error to the responder for the duplicate action, which SHOULD include a Jingle-specific condition of &lt;tie-break/&gt;.</p>
<example caption="Initiator returns conflict error on tie-break"><![CDATA[
<p>It is possible that the same Jingle action can be sent at the same time by both parties. There are two possible scenarios:</p>
<dl>
<di>
<dt>No existing session</dt>
<dd>If there is no existing session and both parties simultaneously send a Jingle session-initiate message, the action with the lower of the two session IDs MUST overrule the other action, where by "lower" is meant the session ID that is sorted first using "i;octet" collation as specified in Section 9.3 of &rfc4790;. The party that receives the session-initiate action with the higher of the two session IDs MUST acknowledge the action or return an error condition that would normally be returned when receiving a session-initiate message, and the party that receives the session-initiate action with the lower of the two session IDs MUST return a &conflict; error to the other party, which SHOULD include a Jingle-specific condition of &lt;tie-break/&gt;.</dd>
</di>
<di>
<dt>Existing session</dt>
<dd>In the context of an existing session, the action sent by the initiator MUST overrule the action sent by the responder; i.e., both parties MUST accept the action sent by the initiator and the initiator MUST return a &conflict; error to the responder for the duplicate action, which SHOULD include a Jingle-specific condition of &lt;tie-break/&gt;.</dd>
</di>
</dl>
<p>In both scenarios, the error to be returned is &conflict;, as shown in the following example.</p>
<example caption="Initiator returns conflict error on tie-break"><![CDATA[
<iq from='romeo@montague.lit/orchard'
id='hb2f164w'
to='juliet@capulet.lit/balcony'
type='error'>
<error type='cancel'>
<conflict xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
<tie-break xmlns='urn:xmpp:jingle:errors:0'/>
<tie-break xmlns='urn:xmpp:jingle:errors:1'/>
</error>
</iq>
]]></example>
]]></example>
</section3>
</section2>
<section2 topic='Content Element' anchor='def-content'>
@ -1385,14 +1402,14 @@ PENDING o-----------------------+ |
type='error'>
<error type='cancel'>
<not-acceptable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
<security-required xmlns='urn:xmpp:jingle:errors:0'/>
<security-required xmlns='urn:xmpp:jingle:errors:1'/>
</error>
</iq>
]]></example>
</section1>
<section1 topic='Error Handling' anchor='errors'>
<p>The Jingle-specific error conditions are as follows. These condition elements are qualified by the 'urn:xmpp:jingle:errors:0' namespace &VNOTE;.</p>
<p>The Jingle-specific error conditions are as follows. These condition elements are qualified by the 'urn:xmpp:jingle:errors:1' namespace &VNOTE;.</p>
<table caption='Error Conditions'>
<tr>
<th>Jingle Condition</th>
@ -1506,7 +1523,7 @@ PENDING o-----------------------+ |
<p>This specification defines the following XML namespaces:</p>
<ul>
<li>urn:xmpp:jingle:1</li>
<li>urn:xmpp:jingle:errors:0</li>
<li>urn:xmpp:jingle:errors:1</li>
</ul>
<p>Upon advancement of this specification from a status of Experimental to a status of Draft, the &REGISTRAR; shall add the foregoing namespaces to the registry located at &NAMESPACES;, as described in Section 4 of &xep0053;.</p>
</section2>
@ -1695,8 +1712,8 @@ PENDING o-----------------------+ |
<xs:schema
xmlns:xs='http://www.w3.org/2001/XMLSchema'
targetNamespace='urn:xmpp:jingle:errors:0'
xmlns='urn:xmpp:jingle:errors:0'
targetNamespace='urn:xmpp:jingle:errors:1'
xmlns='urn:xmpp:jingle:errors:1'
elementFormDefault='qualified'>
<xs:element name='out-of-order' type='empty'/>