1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-21 16:55:07 -05:00

0.12 RC1 removed accept field from renegotiation forms

git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@181 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Ian Paterson 2006-11-10 16:21:15 +00:00
parent f2b7217b37
commit d9a4f53925

View File

@ -25,6 +25,12 @@
<shortname>chatneg</shortname>
&ianpaterson;
&stpeter;
<revision>
<version>0.12</version>
<date>2006-11-10</date>
<initials>ip</initials>
<remark><p>Removed accept field from renegotiation forms</p></remark>
</revision>
<revision>
<version>0.11</version>
<date>2006-11-03</date>
@ -268,7 +274,7 @@
</error>
</message>
]]></example>
<p>If the contact's client supports <em>none</em> of the options for one or more fields, it SHOULD return a &notacceptable; error, specifying the field(s) with unsupported options using the 'var' attribute of one or more &lt;field/&gt; child elements of a &lt;feature/&gt; child element of the &lt;error/&gt; scoped by the 'http://jabber.org/protocol/feature-neg' namespace:</p>
<p>If the contact's client supports <em>none</em> of the options for one or more <em>required</em> fields, it SHOULD return a &notacceptable; error, specifying the field(s) with unsupported options using the 'var' attribute of one or more &lt;field/&gt; child elements of a &lt;feature/&gt; child element of the &lt;error/&gt; scoped by the 'http://jabber.org/protocol/feature-neg' namespace:</p>
<example caption="Contact returns options not acceptable error"><![CDATA[
<message type='error'
from='juliet@capulet.com/balcony'
@ -374,7 +380,7 @@
<p>Once the other party has accepted the switch then all stanzas sent within the chat session MUST be to or from the new resource. Note: Both parties MUST ensure that they comply with all the other chat session negotiation parameters that were previously agreed for this session.</p>
</section2>
<section2 topic='Renegotiating a Chat' anchor='renegotiate'>
<p>At any time during an existing chat session, either party MAY attempt to renegotiate the parameters of the session using the protocol described in <link url='#new'>Negotiating a New Chat Session</link>. The requesting party does this by sending a new &MESSAGE; stanza containing a feature negotiation form and a &THREAD; element with the <em>same</em> value as that of the existing chat session. Note: Although the "accept" field MUST be included in a renegotiation form, the other fields MAY be different from the set of fields included in the initial session negotitation form.</p>
<p>At any time during an existing chat session, either party MAY attempt to renegotiate the parameters of the session using the protocol described in <link url='#new'>Negotiating a New Chat Session</link>. The requesting party does this by sending a new &MESSAGE; stanza containing a feature negotiation form and a &THREAD; element with the <em>same</em> value as that of the existing chat session. Note: The "accept" field MUST NOT be included in a renegotiation form. The other fields MAY be different from the set of fields included in the initial session negotitation form.</p>
<example caption="One party requests renegotiation"><![CDATA[
<message type='normal'
from='juliet@capulet.com/balcony'
@ -385,10 +391,6 @@
<field var='FORM_TYPE' type='hidden'>
<value>http://jabber.org/protocol/chatneg</value>
</field>
<field label='Accept this change?' type='boolean' var='accept'>
<value>true</value>
<required/>
</field>
<field label='Off-The-Record?' type='list-single' var='otr'>
<value>1</value>
<option label='Disable all message logging'>
@ -400,7 +402,7 @@
</feature>
</message>
]]></example>
<p>The requesting party MAY continue to send stanzas within the session while it is waiting for the other party to either accept or reject the renegotiation.</p>
<p>The requesting party MAY continue to send stanzas within the session while it is waiting for the other party to either accept the parameters or report an error.</p>
<example caption="Other party accepts renegotiation and specifies parameters"><![CDATA[
<message type='normal'
from='romeo@montague.net/orchard'
@ -411,30 +413,14 @@
<field var='FORM_TYPE'>
<value>http://jabber.org/protocol/chatneg</value>
</field>
<field var='accept'><value>1</value></field>
<field var='otr'><value>1</value></field>
</x>
</feature>
</message>
]]></example>
<p>Note: Both parties MUST consider the renegotiation to be complete as soon as the acceptance message has been sent (or received). The requesting party SHOULD NOT send a renegotiation completion or cancelation message (see <link url='#new-complete'>Completing or Canceling the Negotitation</link>).</p>
<p>Note: Both parties MUST ensure that they comply with all the chat session negotiation parameters that were not renegotiated but had previously been agreed for this session.</p>
<p>If the other party's client does not support one or more of the <em>required</em> features, it SHOULD return a &feature; error instead, while if it supports <em>none</em> of the options for one or more fields, it SHOULD return a &notacceptable; error instead (see <link url='#new-reject'>Rejecting a Chat</link>). However, if the other party simply prefers to maintain the existing negotiated parameters then it SHOULD decline the renegotiation as in the example below. Note: In any of these cases the existing negotiated chat session parameters are maintained. Either party MAY choose to terminate the chat session only as specified in the section <link url='#terminate'>Terminating a Chat</link>.</p>
<example caption="Other party declines renegotiation"><![CDATA[
<message type='normal'
from='romeo@montague.net/orchard'
to='juliet@capulet.com/balcony'>
<thread>ffd7076498744578d10edabfe7f4a866</thread>
<feature xmlns='http://jabber.org/protocol/feature-neg'>
<x xmlns='jabber:x:data' type='submit'>
<field var='FORM_TYPE'>
<value>http://jabber.org/protocol/chatneg</value>
</field>
<field var='accept'><value>0</value></field>
</x>
</feature>
</message>
]]></example>
<p>Note: Both parties MUST consider the renegotiation to be complete as soon as the parameter acceptance message has been sent (or received). Note: The requesting party SHOULD NOT send a renegotiation completion or cancelation message (see <link url='#new-complete'>Completing or Canceling the Negotitation</link>).</p>
<p>Note: Both parties MUST ensure that they continue to comply with all the chat session negotiation parameters that were not renegotiated but had previously been agreed for this session.</p>
<p>If the other party's client does not support one or more of the <em>required</em> features, it SHOULD return a &feature; error instead, while if it supports <em>none</em> of the options for one or more <em>required</em> fields, it SHOULD return a &notacceptable; error instead (see <link url='#new-reject'>Rejecting a Chat</link>). Note: In any of these cases the existing negotiated chat session parameters are maintained. Either party MAY choose to terminate the chat session only as specified in the section <link url='#terminate'>Terminating a Chat</link>.</p>
</section2>
<section2 topic='Terminating a Chat' anchor='terminate'>
<p>In order to explicitly terminate a negotiated chat, the party that wishes to end the chat MUST do so by sending a &MESSAGE; containing a data form of type "submit". The &MESSAGE; stanza MUST contain a &THREAD; element with the same XML character data as the original initiation request. The data form containing a boolean field named "terminate" set to a value of "1" or "true".</p>