XEP-0384: group chat message sending

This commit is contained in:
Daniel Gultsch 2020-03-08 16:26:25 +01:00
parent a4e6f0a8a3
commit 27b2dd2bd4
1 changed files with 29 additions and 6 deletions

View File

@ -515,7 +515,7 @@
</p>
</section2>
<section2 topic='Group Chats' anchor='group-chats'>
<p>Note: OMEMO encrypted group chats are currently specified to work with &xep0045;. This XEP might be updated in the future to also specify the usage in &xep0369;.</p>
<p>Note: OMEMO encrypted group chats are currently specified to work with &xep0045;. This XEP might be updated in the future to specify the usage of OMEMO in conjunction with &xep0369;.</p>
<p>A Multi-User Chat room that supports OMEMO MUST be configured non-anonymous and SHOULD be configured members-only.</p>
<p>A participant wanting to send a message to a group chat MUST first retrieve the members list and then fetch the device list for each member (via pubsub and to their real JIDs) and then subsequently fetch all active bundles.</p>
<section3 topic='Retrieving and maintaining members list' anchor='members-list'>
@ -533,9 +533,8 @@
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<items node='urn:xmpp:omemo:1:devices'/>
</pubsub>
</iq>
]]></example>
<example caption='Juliet fetches bundles for Remeo and Mercutio'><![CDATA[
</iq>]]></example>
<example caption='Juliet fetches bundles for Romeo and Mercutio'><![CDATA[
<iq type='get' from='juliet@capulet.lit' to='romeo@montague.lit' id='gfetch2'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<items node='urn:xmpp:omemo:1:bundles'>
@ -549,10 +548,34 @@
<item id='456'/>
<items>
</pubsub>
</iq>
]]></example>
</iq>]]></example>
</section3>
<section3 topic='Sending a message' anchor='group-send'>
<p>Sending a message to a group chat is similiar to sending a message in a 1:1 conversation. Instead of the &lt;header&gt; element having two &lt;keys&gt; elements (one for the recipient and one for other devices of the sender) it will contain multiple &lt;keys&gt; elements. One for each participant of the room; including, again, other devices of the sender.</p>
<example caption='Juliet sends a message to a group chat with Romeo and Mercutio'><![CDATA[
<message
from='juliet@capulet.lit/balcony'
to='secret-room@conference.capulet.lit'
type='groupchat'>
<encrypted xmlns='urn:xmpp:omemo:1'>
<header sid='27183'>
<keys jid='juliet@capulet.lit'>
<key rid='31415'>BASE64ENCODED...</key>
</keys>
<keys jid='romeo@montague.lit'>
<key rid='123' prekey='true'>BASE64ENCODED...</key>
</keys>
<keys jid='mercutio@verona.lit'>
<key rid='456' prekey='true'>BASE64ENCODED...</key>
</keys>
</header>
<payload>
-- MESSAGE-KEY-ENCRYPTED CONTENT ELEMENT --
</payload>
</encrypted>
<store xmlns='urn:xmpp:hints'/>
</message>
]]></example>
</section3>
</section2>
</section1>