This commit is contained in:
stpeter 2012-01-10 12:14:58 -07:00
parent f7a02f86c1
commit 7cce69faf7
1 changed files with 12 additions and 5 deletions

View File

@ -39,6 +39,12 @@
<email>linuxwolf@outer-planes.net</email>
<jid>linuxwolf@outer-planes.net</jid>
</author>
<revision>
<version>0.6</version>
<date>2012-01-06</date>
<initials>mm</initials>
<remark><p>Moved carbons flags from being a child of &lt;forwarded/&gt; to being a sibling of &lt;forwarded/&gt;; updating business rules regarding the &lt;gone/&gt; chat state.</p></remark>
</revision>
<revision>
<version>0.5</version>
<date>2011-10-31</date>
@ -259,15 +265,15 @@
</message>
]]></example>
<p>The copies sent to the Carbon-enabled resources are wrapped using &xep0297;. The wrapping message SHOULD maintain the same 'type' attribute value; the 'from' attribute MUST be the Carbon-enabled user's bare JID (e.g. "localpart@domain"); and the 'to' attribute SHOULD be the full JID of the resource receiving the copy. The content of the wrapping message MUST contain a &lt;forwarded xmlns='urn:xmpp:forward:0'/&gt; which contains the original message (properly namespaced as "jabber:client") and a &lt;received xmlns='urn:xmpp:carbons:1'/&gt; element:</p>
<p>The copies sent to the Carbon-enabled resources are wrapped using &xep0297;. The wrapping message SHOULD maintain the same 'type' attribute value; the 'from' attribute MUST be the Carbon-enabled user's bare JID (e.g. "localpart@domain"); and the 'to' attribute SHOULD be the full JID of the resource receiving the copy. The content of the wrapping message MUST contain a &lt;received xmlns='urn:xmpp:carbons:1'/&gt; element and a &lt;forwarded xmlns='urn:xmpp:forward:0'/&gt; which contains the original message (properly namespaced as "jabber:client"):</p>
<example caption='Server sends carbon to Romeo&apos;s other clients'><![CDATA[
<message xmlns='jabber:client'
from='romeo@example.net'
to='romeo@example.net/home'
type='chat'>
<received xmlns='urn:xmpp:carbons:1'/>
<forwarded xmlns='urn:xmpp:forward:0'>
<received xmlns='urn:xmpp:carbons:1'/>
<message xmlns='jabber:client'
from='juliet@example.com/balcony'
to='romeo@example.net/garden'
@ -291,7 +297,7 @@
<thread>0e3141cd80894871a68e6fe6b1ec56fa</thread>
</message>]]></example>
<p>The copies sent to the Carbon-enabled resources are wrapped using &xep0297;. The wrapping message SHOULD maintain the same 'type' attribute value; the 'from' attribute MUST be the Carbon-enabled user's bare JID (e.g. "localpart@domain"); and the 'to' attribute SHOULD be the full JID of the resource receiving the copy. The content of the wrapping message MUST contain a &lt;forwarded xmlns='urn:xmpp:forward:0'/&gt; which contains the original message (properly namespaced as "jabber:client") and a &lt;sent xmlns='urn:xmpp:carbons:1'/> element:</p>
<p>The copies sent to the Carbon-enabled resources are wrapped using &xep0297;. The wrapping message SHOULD maintain the same 'type' attribute value; the 'from' attribute MUST be the Carbon-enabled user's bare JID (e.g. "localpart@domain"); and the 'to' attribute SHOULD be the full JID of the resource receiving the copy. The content of the wrapping message MUST contain a &lt;sent xmlns='urn:xmpp:carbons:1'/> element and a &lt;forwarded xmlns='urn:xmpp:forward:0'/&gt; which contains the original message (properly namespaced as "jabber:client"):</p>
<example caption='Romeo&apos;s other Carbons-enabled clients
receive a copy'><![CDATA[
@ -299,8 +305,8 @@
from='romeo@example.net'
to='romeo@example.net/garden'
type='chat'>
<sent xmlns='urn:xmpp:carbons:1'/>
<forwarded xmlns='urn:xmpp:forward:0'>
<sent xmlns='urn:xmpp:carbons:1'/>
<message xmlns='jabber:client'
to='juliet@example.com/balcony'
from='romeo@example.net/home'
@ -346,7 +352,8 @@
subject to Carbon-copying. This is intentional.</p>
<p>Additionally, clients that implement Carbons MAY take special use of chat state notifications:</p>
<ul>
<li>Upon receiving an inbound or outbound <em>gone</em> chat state (as a carbon copy) for a given conversation, that conversation SHOULD be removed from user display as if the user on the copied client had terminated the conversation. In order to prevent unwanted termination of conversations on other resources, clients SHOULD NOT send <em>gone</em> chat states on logout, but instead SHOULD count on the unavailable presence to convey the change in attention.</li>
<li>Upon receiving an inbound or outbound <em>gone</em> chat state (as a carbon copy) for a given conversation, the client SHOULD visually indicate the conversation is terminated. It is suggested that the conversation be removed from user display as if the user on the copied client had terminated the conversation.</li>
<li>In order to prevent unwanted termination of conversations on other resources, clients SHOULD NOT send <em>gone</em> chat states on logout, but instead SHOULD count on the unavailable presence to convey the change in attention.</li>
<li>Upon receiving an outbound notification of any chat state other than <em>gone</em>, the copied client MAY conclude that the sending client has taken responsibility for the conversation, and make appropriate user interface modifications. For example, notifications could be suppressed on devices receiving the Carbon-copies.</li>
</ul>
</section2>