If your SGX does not support sending "Group MMS" (MMS with multiple recipients) you may skip implementing this protocol.
Cheogram will use https://xmpp.org/extensions/xep-0033.html to communicate a desire for multicast to a supporting SGX backend. Here are the relevant parts:
Your SGX must respond to disco info on the main domain like so:
{{{
...
...
}}}
== Outbound Message ==
When a user sends a Group MMS (via XEP0033 or via other porcelain UX such as tel1,tel2,tel3@cheogram.com addresses) Cheogram will relay a single stanza to your sgx domain like so:
{{{
Hello, everyone!
}}}
Your SGX is then expected to relay this message to all listed recipients, via Group MMS if possible.
== Inbound Message ==
When a number receives a Group MMS handled by your SGX, you should deliver it to cheogram as follows:
{{{
Hello, everyone!
}}}
Cheogram will handle translating this to a porcelain, if needed.
You may send only one stanza for all numbers you handle which receive the same message, with `delivered` attribute unset appropriately, but it is not required.
== Edge cases ==
The following will not come from a Cheogram porcelain, but are good to support, especially if a sender actually sends via the XEP.
If an `
' tag contains attribute `delivered='true'` you MUST NOT deliver to that address. If you can send MMS to the other recipients while preserving the context that this address also got a copy, great. If not, you may return an error or degenerate to simply ignoring the element.
Besides `type='to'` there is also `type='cc'` with identical semantics from the Group MMS PoV, which an SGX SHOULD support. There is also `type='bcc'` with differing semantics which an SGX MAY support but would not really be part of Group MMS considerations (since a bcc would be sent outside of the group). There is no reason to support other types.
If a destination is specified with syntax you do not understand (bad URI) you should reply with ``
If a destination cannot be reached by you (jid on another server, etc), you should reply with ``
If there is a limit on number of recipients and the message goes over that, you should reply with ``
You MAY choose to accept `` or `` as well.