1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-21 08:45:04 -05:00

0.10 RC5 added localisation of labels and changed syntax of unacceptable field list

git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@125 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Ian Paterson 2006-10-23 10:24:19 +00:00
parent 5895dd1fb9
commit a2685504fb

View File

@ -27,9 +27,9 @@
&ianpaterson;
<revision>
<version>0.10</version>
<date>2006-10-20</date>
<date>2006-10-23</date>
<initials>ip</initials>
<remark><p>Specified handling of offline requests; minor clarifications.</p></remark>
<remark><p>Defined handling of offline requests; specified localization of the title element and all labels; changed syntax of list of unacceptable fields; removed reason field from some examples; minor clarifications.</p></remark>
</revision>
<revision>
<version>0.9</version>
@ -115,6 +115,7 @@
<thread>ffd7076498744578d10edabfe7f4a866</thread>
<feature xmlns='http://jabber.org/protocol/feature-neg'>
<x xmlns='jabber:x:data' type='form'>
<title>Open chat with Romeo?</title>
<field var='FORM_TYPE' type='hidden'>
<value>http://jabber.org/protocol/chatneg</value>
</field>
@ -160,9 +161,6 @@
<option label='English'><value>en</value></option>
<option label='Italiano'><value>it</value></option>
</field>
<field label='Reason' type='text-single' var='reason'>
<value>Can we talk?</value>
</field>
</x>
</feature>
<amp xmlns='http://jabber.org/protocol/amp'>
@ -173,6 +171,7 @@
<p>The contact's server delivers the request to the contact's most available resource (which in the examples below happens to be "balcony"). If no resource is available (and no <cite>Advanced Message Processing</cite> rule included in the request specifies otherwise) then the server MAY store the request for later delivery. In this case, if the contact is interested only in an <em>immediate</em> chat session when it eventually receives the request, it SHOULD initiate a new chat session negotiation (including a newly-generated ThreadID) instead of responding to the user's request. Note: Sending any response to the user's original request would leak presence information since it would divulge the fact that the contact had been offline rather than just ignoring the user.</p>
<p>In any response to the user's request, the contact's client MUST mirror any 'id' attribute and &THREAD; value so that the user's client can correctly track the response.</p>
<p>If the contact's client does not support one of the default values or if the contact has disabled its support (as for Chat State Notifications and XHTML formatting in the example below), and the client can still accept the request, then it MUST set that field to a value that it can support.</p>
<p>If the contact's client is configured to show the form to the client instead of responding automatically it SHOULD replace the content of the &lt;title/&gt; element and of all label attributes of the &lt;field/&gt; and &lt;option/&gt; elements with it's own localised versions before showing the form to the client - even if the form already appears to be in the correct language. Note: If a client fails to localise the form then an malicious contact might, for examples, either switch the labels on the 'security' and 'otr' fields, or use the &lt;title/&gt; to mislead the user regarding the identity of the contact.</p>
<p>In the example below we assume that Juliet accepts the chat and specifies that she prefers to speak Italian with Romeo:</p>
<example caption="Contact accepts offer and specifies parameters"><![CDATA[
<message type='normal'
@ -195,9 +194,6 @@
</field>
<field var='security'><value>c2s</value></field>
<field var='language'><value>it</value></field>
<field var='reason'>
<value>OK, but I'm too tired to practice my English!</value>
</field>
</x>
</feature>
</message>
@ -243,7 +239,7 @@
</error>
</message>
]]></example>
<p>If the contact's client does not support one or more of the <em>required</em> features, it SHOULD return a &feature; error and SHOULD specify the field(s) not implemented in a comma-separated list in the XMPP &lt;text/&gt; element:</p>
<p>If the contact's client does not support one or more of the <em>required</em> features, it SHOULD return a &feature; error, specifying the field(s) not implemented 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 feature not implemented error"><![CDATA[
<message type='error'
from='juliet@capulet.com/balcony'
@ -260,11 +256,13 @@
</feature>
<error code='501' type='cancel'>
<feature-not-implemented xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
<text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>otr</text>
<feature xmlns='http://jabber.org/protocol/feature-neg'>
<field var='otr'/>
</feature>
</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 and SHOULD specify the field(s) with unsupported options in a comma-separated list in the XMPP &lt;text/&gt; element:</p>
<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>
<example caption="Contact returns options not acceptable error"><![CDATA[
<message type='error'
from='juliet@capulet.com/balcony'
@ -281,7 +279,9 @@
</feature>
<error code='406' type='modify'>
<not-acceptable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
<text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>security</text>
<feature xmlns='http://jabber.org/protocol/feature-neg'>
<field var='security'/>
</feature>
</error>
</message>
]]></example>
@ -325,9 +325,6 @@
<value>http://jabber.org/protocol/chatneg</value>
</field>
<field var='otr'><value>true</value></field>
<field var='reason'>
<value>Yes, the sys admin might tell our families!</value>
</field>
</x>
</feature>
</message>
@ -350,9 +347,6 @@
<field label='New client name' type='text-single' var='continue'>
<value>PDA</value>
</field>
<field label='Reason' type='text-single' var='reason'>
<value>I am leaving the orchard.</value>
</field>
</x>
</feature>
</message>
@ -371,7 +365,6 @@
<value>http://jabber.org/protocol/chatneg</value>
</field>
<field var='continue'><value>PDA</value></field>
<field var='reason'><value>OK, hurry to me.</value></field>
</x>
</feature>
</message>