mirror of
https://github.com/moparisthebest/xeps
synced 2024-12-17 21:32:35 -05:00
Carbons: remove bare-JID special case
This commit is contained in:
parent
c568aeecc3
commit
ee9ed5c7e5
37
xep-0280.xml
37
xep-0280.xml
@ -245,39 +245,8 @@
|
||||
<p>Note: previous versions of this specification limited eligible messages to those of type "chat" - however, this was generally found to be inadequate due to the proliferation of type "normal" messages used in instant messaging.</p>
|
||||
</section1>
|
||||
|
||||
<section1 topic='Receiving Messages to the Bare JID' anchor='inbound-bare'>
|
||||
<p>When the server receives a &MESSAGE; <link url='#which-messages'>eligible for carbons delivery</link> addressed to a bare JID (localpart@domainpart), it first delivers it according to <cite>RFC 6121</cite> § 8.5.2, and then delivers a copy to each Carbons-enabled resource for the bare JID that did not receive it due to the <cite>RFC 6121</cite> delivery rules. This process is sometimes called "forking".</p>
|
||||
|
||||
<example caption='Juliet sends Romeo an undirected message'><![CDATA[
|
||||
<message xmlns='jabber:client'
|
||||
from='juliet@capulet.example/balcony'
|
||||
to='romeo@montague.example'
|
||||
type='chat'>
|
||||
<body>Wherefore art thou, Romeo?</body>
|
||||
<thread>0e3141cd80894871a68e6fe6b1ec56fa</thread>
|
||||
</message>]]></example>
|
||||
|
||||
<example caption='Message Forked to each of Romeo's Carbons-enabled resources'><![CDATA[
|
||||
<message xmlns='jabber:client'
|
||||
from='juliet@capulet.example/balcony'
|
||||
to='romeo@montague.example/garden'
|
||||
type='chat'>
|
||||
<body>Wherefore art thou, Romeo?</body>
|
||||
<thread>0e3141cd80894871a68e6fe6b1ec56fa</thread>
|
||||
</message>
|
||||
|
||||
<message xmlns='jabber:client'
|
||||
from='juliet@capulet.example/balcony'
|
||||
to='romeo@montague.example/home'
|
||||
type='chat'>
|
||||
<body>Wherefore art thou, Romeo?</body>
|
||||
<thread>0e3141cd80894871a68e6fe6b1ec56fa</thread>
|
||||
</message>]]></example>
|
||||
|
||||
<p>The receiving server MUST deliver a copy to every Carbons-enabled resource, even if that resource normally would not receive &MESSAGE; stanzas addressed to the bare JID (e.g., resources which have broadcast &PRESENCE; with a negative priority). A Carbons-enabled resource MUST NOT receive more than one copy of the &MESSAGE;.</p>
|
||||
</section1>
|
||||
<section1 topic='Receiving Messages to the Full JID' anchor='inbound-full'>
|
||||
<p>When the server receives a &MESSAGE; <link url='#which-messages'>eligible for carbons delivery</link> addressed to a full JID (localpart@domainpart/resourcepart), it delivers the &MESSAGE; according to <cite>RFC 6121</cite> § 8.5.3, and then delivers a forwarded copy to each Carbons-enabled resource for the matching bare JID recipient that did not receive it under the RFC 6121 delivery rules. Note that the <cite>RFC 6121</cite> delivery rules can cause a &MESSAGE; addressed to a full JID to be delivered using bare JID delivery rules; in this case the server should also apply the <link url='#inbound-bare'>bare JID rules for Carbons</link>.</p>
|
||||
<section1 topic='Receiving Messages' anchor='inbound'>
|
||||
<p>When the server receives a &MESSAGE; <link url='#which-messages'>eligible for carbons delivery</link> addressed to a client JID (either bare or full), it delivers the &MESSAGE; according to <cite>RFC 6121</cite> § 8.5.3, and then delivers a forwarded copy to each Carbons-enabled resource for the matching bare JID recipient that did not receive it under the RFC 6121 delivery rules.</p>
|
||||
<p>Each forwarded copy is wrapped using &xep0297;. The wrapping message SHOULD maintain the same 'type' attribute value; the 'from' attribute MUST be the Carbons-enabled user's bare JID (e.g., "localpart@domainpart"); and the 'to' attribute MUST be the full JID of the resource receiving the copy. The content of the wrapping message MUST contain a <received/> element qualified by the namespace "urn:xmpp:carbons:2", which itself contains a <forwarded/> element qualified by the namespace "urn:xmpp:forward:0" that contains the original &MESSAGE;.</p>
|
||||
|
||||
<example caption='Juliet sends Romeo a directed message'><![CDATA[
|
||||
@ -308,7 +277,7 @@
|
||||
</message>
|
||||
]]></example>
|
||||
|
||||
<p>The receiving server MUST NOT send a forwarded copy to the client(s) receiving full JID the original &MESSAGE; stanza was addressed to, as that recipient receives the original &MESSAGE; stanza.</p>
|
||||
<p>The receiving server MUST NOT send a forwarded copy to the client(s) the original &MESSAGE; stanza was addressed to, as these recipients receive the original &MESSAGE; stanza.</p>
|
||||
</section1>
|
||||
<section1 topic='Sending Messages' anchor='outbound'>
|
||||
<p>When a client sends a &MESSAGE; <link url='#which-messages'>eligible for carbons delivery</link>, its sending server delivers the &MESSAGE; according to <cite>RFC 6120</cite> and <cite>RFC 6121</cite>, and delivers a forwarded copy to each Carbons-enabled resource for the matching bare JID sender, excluding the sending client. Note that this happens irrespective of whether the sending client has carbons enabled.</p>
|
||||
|
Loading…
Reference in New Issue
Block a user