[Standards] XEP-0313: Treatment of type=groupchat in user archive with or without <store/> hint

Daniel Gultsch daniel at gultsch.de
Thu Nov 23 17:11:32 UTC 2017


today I stumbled over an interesting behaviour of ejabberd MAM implementation.
While ejabberd usually does not store messages of type groupchat into
the users archive (ignoring the »A server SHOULD also include messages
of type 'groupchat' that have a <body>« statement from the XEP.) it
does store them if they contain a <store/> hint. Meaning the general
rule of not storing type groupchat is overwritten by the existence of
the hint. The hint is added by Conversations in an attempt to get the
MUC archive server! to store OMEMO messages and chat markers.

For me it doesn't ever make sense to store type=groupchat messages in
the user archive. That archive will be incomplete, thus forcing me to
query the MUC servers archive upon join anyway.
And even worse the messages will be included in a normal catchup (when
I don't necessarily want them)

I think traditionally most implementations have never stored groupchat
messages in the user archiving making the statement »A server SHOULD
also include messages of type 'groupchat' that have a <body>, but
where such history is accessible through another method (e.g. through
an archive on the MUC JID), a server MAY exclude these from the
archive.« very confusing. How should the user archive even know?

This opens up two questions;
1) Should that statement be changed to something like 'group chat
messages should never be stored in the users archive'
2) If we don't want to store group chat messages should the <store/>
hint overwrite that behaviour? If not how can we make the definition
of the <store/> hint clearer to communicate that this should not be
the case?

How are other implementations handling this and what would client
developers want?


More information about the Standards mailing list