1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-24 10:12:19 -05:00
This commit is contained in:
stpeter 2011-07-11 10:17:54 -06:00
parent 47a7d17c36
commit 75c21a18f1

View File

@ -38,6 +38,12 @@
<email>linuxwolf@outer-planes.net</email> <email>linuxwolf@outer-planes.net</email>
<jid>linuxwolf@outer-planes.net</jid> <jid>linuxwolf@outer-planes.net</jid>
</author> </author>
<revision>
<version>0.3</version>
<date>2011-07-11</date>
<initials>mm</initials>
<remark><p>Required the wrapping message to use the carbon user's bare JID; added to the security concerns about rejecting carbon copies not from the carbon user's bare JID.</p></remark>
</revision>
<revision> <revision>
<version>0.2</version> <version>0.2</version>
<date>2011-07-10</date> <date>2011-07-10</date>
@ -212,7 +218,6 @@
<p>Messages of type "chat" that are addressed to a full JID (localpart@domain/resource) MUST be sent by the receiving server to the addressed resource, and MUST also be sent to all of the Carbons-enabled resources for the receiving user. The goal of the copies to Carbons-enabled resources is to allow those clients to have both halves of <strong>*all*</strong> IM conversations, including messages that are sent from clients that lock in to particular resources.</p> <p>Messages of type "chat" that are addressed to a full JID (localpart@domain/resource) MUST be sent by the receiving server to the addressed resource, and MUST also be sent to all of the Carbons-enabled resources for the receiving user. The goal of the copies to Carbons-enabled resources is to allow those clients to have both halves of <strong>*all*</strong> IM conversations, including messages that are sent from clients that lock in to particular resources.</p>
<p>The copies sent to the Carbon-enabled resources are wrapped using &xep0297;. The wrapping message SHOULD maintain the same 'type', 'from', and 'id' attribute values (if any), while 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>
<example caption='Juliet sends Romeo a directed message'><![CDATA[ <example caption='Juliet sends Romeo a directed message'><![CDATA[
<message xmlns='jabber:client' <message xmlns='jabber:client'
from='juliet@example.com/balcony' from='juliet@example.com/balcony'
@ -222,9 +227,12 @@
<thread>0e3141cd80894871a68e6fe6b1ec56fa</thread> <thread>0e3141cd80894871a68e6fe6b1ec56fa</thread>
</message> </message>
]]></example> ]]></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>
<example caption='Server sends carbon to Romeo&apos;s other clients'><![CDATA[ <example caption='Server sends carbon to Romeo&apos;s other clients'><![CDATA[
<message xmlns='jabber:client' <message xmlns='jabber:client'
from='juliet@example.com/balcony' from='romeo@example.net'
to='romeo@example.net/home' to='romeo@example.net/home'
type='chat'> type='chat'>
<forwarded xmlns='urn:xmpp:forward:0'> <forwarded xmlns='urn:xmpp:forward:0'>
@ -242,8 +250,6 @@
</section2> </section2>
<section2 topic='Sending Messages' anchor='outbound'> <section2 topic='Sending Messages' anchor='outbound'>
<p>Carbons clients want to have copies of messages going in <em>both</em> directions for other resources associated with the same user. To that end, messages of type "chat" that are sent from any resource MUST be copied by the sending server to each of the resources that have enabled Carbons, but are not the sending resource.</p> <p>Carbons clients want to have copies of messages going in <em>both</em> directions for other resources associated with the same user. To that end, messages of type "chat" that are sent from any resource MUST be copied by the sending server to each of the resources that have enabled Carbons, but are not the sending resource.</p>
<p>The copies sent to the Carbon-enabled resources are wrapped using Message Forwarding. The wrapping message SHOULD maintain the same 'type', 'from', and 'id' attribute values, while 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>
<example caption='Romeo responds to Juliet'><![CDATA[ <example caption='Romeo responds to Juliet'><![CDATA[
<message xmlns='jabber:client' <message xmlns='jabber:client'
@ -254,10 +260,12 @@
<thread>0e3141cd80894871a68e6fe6b1ec56fa</thread> <thread>0e3141cd80894871a68e6fe6b1ec56fa</thread>
</message>]]></example> </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>
<example caption='Romeo&apos;s other Carbons-enabled clients <example caption='Romeo&apos;s other Carbons-enabled clients
receive a copy'><![CDATA[ receive a copy'><![CDATA[
<message xmlns='jabber:client' <message xmlns='jabber:client'
from='romeo@example.net/home' from='romeo@example.net'
to='romeo@example.net/garden' to='romeo@example.net/garden'
type='chat'> type='chat'>
<forwarded xmlns='urn:xmpp:forward:0'> <forwarded xmlns='urn:xmpp:forward:0'>
@ -322,7 +330,7 @@
</section2> </section2>
</section1> </section1>
<section1 topic='Security Considerations' anchor='security'> <section1 topic='Security Considerations' anchor='security'>
<p>The security model assumed by this document is that all of the resources for a single user are in the same trust boundary.</p> <p>The security model assumed by this document is that all of the resources for a single user are in the same trust boundary. Any forwarded copies received by a Carbon-enabled client MUST be from that user's bare JID; any copies that do not meet this requirement MUST be ignored.</p>
<p>Outbound chat messages that are encrypted end-to-end are not often useful to receive on other resources. As such, they should use the &lt;private/&gt; element specified above to avoid such copying, unless the encryption mechanism is able to accommodate this protocol.</p> <p>Outbound chat messages that are encrypted end-to-end are not often useful to receive on other resources. As such, they should use the &lt;private/&gt; element specified above to avoid such copying, unless the encryption mechanism is able to accommodate this protocol.</p>
</section1> </section1>
<section1 topic='IANA Considerations' anchor='iana'> <section1 topic='IANA Considerations' anchor='iana'>
@ -370,6 +378,6 @@
]]></code> ]]></code>
</section1> </section1>
<section1 topic='Acknowledgements' anchor='ack'> <section1 topic='Acknowledgements' anchor='ack'>
<p>The authors wish to thank Patrick Barry, Teh Chang, Jack Erwin, Craig Kaes, Kathleen McMurry, Tory Patnoe, Peter Saint-Andre, and Ben Schumacher for their feedback.</p> <p>The authors wish to thank Patrick Barry, Teh Chang, Jack Erwin, Craig Kaes, Kathleen McMurry, Tory Patnoe, Peter Saint-Andre, Ben Schumacher, and Kevin Smith for their feedback.</p>
</section1> </section1>
</xep> </xep>