This commit is contained in:
stpeter 2011-11-08 13:10:55 -07:00
parent e072d792b6
commit 6b7fab75cd
1 changed files with 30 additions and 4 deletions

View File

@ -16,6 +16,7 @@
<approver>Council</approver>
<dependencies>
<spec>XMPP Core</spec>
<spec>XMPP IM</spec>
<spec>XEP-0001</spec>
<spec>XEP-0030</spec>
<spec>XEP-0085</spec>
@ -38,6 +39,12 @@
<email>linuxwolf@outer-planes.net</email>
<jid>linuxwolf@outer-planes.net</jid>
</author>
<revision>
<version>0.5</version>
<date>2011-10-31</date>
<initials>mm</initials>
<remark><p>Fixed more typos in examples; clarified that each resource only receives one copy of the message (forked or wrapped)</p></remark>
</revision>
<revision>
<version>0.4</version>
<date>2011-08-29</date>
@ -208,7 +215,7 @@
</section3>
</section2>
<section2 topic='Receiving Messages' anchor='inbound'>
<p>Messages of type chat that are addressed to the bare JID (localpart@domain) MUST be copied by the receiving server to all of the resources for that user that have non-negative presence priority and have not filtered messages through some other means. The process of making copies is known as "forking."</p>
<p>Messages of type chat that are addressed to the bare JID (localpart@domain) MUST be delivered according to RFC 6121 § 8.5.2, and MUST be copied by the receiving server to all of the resources for that user that are carbons-enabled. The process of making copies is known as "forking."</p>
<example caption='Juliet sends Romeo an undirected message, which is forked'><![CDATA[
<message xmlns='jabber:client'
@ -218,11 +225,29 @@
<body>Wherefore art thou, Romeo?</body>
<thread>0e3141cd80894871a68e6fe6b1ec56fa</thread>
</message>
... each of romeo@example.net's resources receives this stanza verbatim
]]></example>
<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>
<example caption='Message Copied to Each of Romeo&apos;s Available Resources'><![CDATA[
<message xmlns='jabber:client'
from='juliet@example.com/balcony'
to='romeo@example.net/garden'
type='chat'>
<body>Wherefore art thou, Romeo?</body>
<thread>0e3141cd80894871a68e6fe6b1ec56fa</thread>
</message>
<message xmlns='jabber:client'
from='juliet@example.com/balcony'
to='romeo@example.net/home'
type='chat'>
<body>Wherefore art thou, Romeo?</body>
<thread>0e3141cd80894871a68e6fe6b1ec56fa</thread>
</message>
]]></example>
<p>A carbons-enabled resource MUST NOT receive more than one copy of the message. A carbons-enabled resource that has a negative priority MUST still receive a copy of the message.</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. A copy of the message MUST also be sent to all of the Carbons-enabled resources for the receiving user, excluding the original destination (which is sent the original message according to the routing rules in &rfc6120; and &rfc6120;).</p>
<example caption='Juliet sends Romeo a directed message'><![CDATA[
<message xmlns='jabber:client'
@ -283,6 +308,7 @@
<body>Neither, fair saint, if either thee dislike.</body>
<thread>0e3141cd80894871a68e6fe6b1ec56fa</thread>
</message>
</forwarded>
</message>]]></example>
</section2>