git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1458 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2007-12-07 00:02:44 +00:00
parent b24dae3567
commit c967f96602
1 changed files with 13 additions and 11 deletions

View File

@ -27,10 +27,10 @@
&seanegan;
&hildjj;
<revision>
<version>0.22pre1</version>
<date>in progress, last updated 2007-12-04</date>
<version>0.22</version>
<date>2007-12-06</date>
<initials>psa</initials>
<remark><p>Modified flows for busy, unsupported application formats, and unsupported transport methods to enable separation between Jingle core and distinct modules for applications and transports; moved resource determination recommendations to XEP-208.</p></remark>
<remark><p>Modified session flows for busy, unsupported application formats, and unsupported transport methods to enable separation between Jingle core and distinct modules for applications and transports; moved resource determination recommendations to XEP-208.</p></remark>
</revision>
<revision>
<version>0.21</version>
@ -326,7 +326,7 @@ Romeo Juliet
action='session-terminate'
initiator='romeo@montague.lit/orchard'
reasoncode='no-error'
reason='Sorry, gotta go!'
reasontext='Sorry, gotta go!'
sid='a73sjjvkla37jfea'/>
</iq>
]]></example>
@ -516,19 +516,19 @@ PENDING o---------------------+ |
to='romeo@montague.lit/orchard'
type='result'/>
]]></example>
<p>However, after acknowledging the session initiation request, the responder may subsequently determine that it cannot proceed with negotiation of the session (e.g., because it does not support any of the offered application formats or transport methods, because a human user is busy or unable to accept the session, because a human user wishes to formally decline the session, etc.). In these cases, the responder MUST immediately acknowledge the session initiation request but then terminate the session with an appropriate reasoncode as described in the <link url='#session-terminate'>Termination</link> section of this document.</p>
<p>However, after acknowledging the session initiation request, the responder may subsequently determine that it cannot proceed with negotiation of the session (e.g., because it does not support any of the offered application formats or transport methods, because a human user is busy or unable to accept the session, because a human user wishes to formally decline the session, etc.). In these cases, the responder SHOULD immediately acknowledge the session initiation request but then terminate the session with an appropriate reasoncode as described in the <link url='#session-terminate'>Termination</link> section of this document.</p>
<p>If the responder acknowledges receipt of the initation request, both parties must consider the session to be in the PENDING state.</p>
</section3>
<section3 topic='Errors' anchor='protocol-response-errors'>
<p>There are several reasons why the responder might immediately return an error instead of acknowledging receipt of the initiation request:</p>
<ul>
<li>The initiator is unknown to the responder (e.g., via presence subscription or stanza session negotiation) and the responder does not communicate with unknown entities.</li>
<li>The initiator is unknown to the responder and the responder does not communicate with unknown entities.</li>
<li>The responder does not support Jingle.</li>
<li>The responder wishes to redirect the request to another address.</li>
<li>The responder does not have sufficient resources to participate in a session.</li>
<li>The initiation request was malformed.</li>
</ul>
<p>If the initiator is unknown to the responder (e.g., via presence subscription or stanza session negotiation) and the responder has a policy of not communicating via Jingle with unknown entities, it SHOULD return a &unavailable; error.</p>
<p>If the initiator is unknown to the responder (e.g., via presence subscription as defined in &rfc3921; or stanza session negotiation as defined in &xep0155;) and the responder has a policy of not communicating via Jingle with unknown entities, it SHOULD return a &unavailable; error.</p>
<example caption="Initiator is unknown to responder"><![CDATA[
<iq from='juliet@capulet.lit/balcony'
id='jingle1'
@ -557,7 +557,9 @@ PENDING o---------------------+ |
to='romeo@montague.lit/orchard'
type='error'>
<error type='cancel'>
<redirect xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>voicemail@capulet.lit</redirect>
<redirect xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>
voicemail@capulet.lit
</redirect>
</error>
</iq>
]]></example>
@ -602,7 +604,7 @@ PENDING o---------------------+ |
<p>If one of the parties cannot find a suitable transport method or candidate, it SHOULD terminate the session as described below.</p>
</section2>
<section2 topic='Modifying an Active Session' anchor='session-modify'>
<p>Once a session is in the ACTIVE state, it may be modified via a content-add, content-modify, or content-remove action. Examples of such modifications are shown in the specifications for various application formats and transport methods.</p>
<p>Once a session is in the ACTIVE state, it may be modified via a content-add, content-modify, content-remove, or transport-info action. Examples of such modifications are shown in the specifications for various application formats and transport methods.</p>
</section2>
<section2 topic='Termination' anchor='session-terminate'>
<p>In order to gracefully end the session (which MAY be done at any point after acknowledging receipt of the initiation request, including immediately thereafter in order to decline the request), either the responder or the initiator MUST send a "terminate" action to the other party.</p>
@ -634,7 +636,7 @@ PENDING o---------------------+ |
</iq>
]]></example>
<p>Another reason for terminating the session is that the terminating party does not support any of the offered application formats; in this case, the recommended reasoncode is "unsupported-applications".</p>
<example caption="Terminating the session (no application format supported)"><![CDATA[
<example caption="Terminating the session (no offered application format supported)"><![CDATA[
<iq from='juliet@capulet.lit/balcony'
id='term1'
to='romeo@montague.lit/orchard'
@ -647,7 +649,7 @@ PENDING o---------------------+ |
</iq>
]]></example>
<p>Another reason for terminating the session is that the terminating party does not support any of the offered transport methods; in this case, the recommended reasoncode is "unsupported-transports".</p>
<example caption="Terminating the session (no supported transport method supported)"><![CDATA[
<example caption="Terminating the session (no offered transport method supported)"><![CDATA[
<iq from='juliet@capulet.lit/balcony'
id='term1'
to='romeo@montague.lit/orchard'