xep-0313 works for rosters, but does not work for room chat. I can get archive message for the rosters, but I can not get archive message for the room, why?
<iq type='set' id='juliet1'>
<query xmlns='urn:xmpp:mam:0'>
<x xmlns='jabber:x:data' type='submit'>
<field var='FORM_TYPE' type='hidden'>
<value>urn:xmpp:mam:0</value>
</field>
<field var='with'>
<value>[email protected]</value>
</field>
</x>
</query>
</iq>
The receive message is:
<message xmlns="jabber:client" from="[email protected]" to="[email protected]/iPhone" id="dHS0oejBDWHp”>
<fin xmlns="urn:xmpp:mam:0" complete="true”>
<set xmlns="http://jabber.org/protocol/rsm”/>
</fin>
<no-copy xmlns="urn:xmpp:hints”/>
</message>
I guess you are using ejabberd contributed module. However, a new official MAM module has been added to official ejabberd and it support latest version of MAM (0.4 as of today) and MUC archiving.
It has been released in ejabberd 15.06. You can can also get direct access to source from ejabberd Github repository. The module is here: https://github.com/processone/ejabberd/blob/master/src/mod_mam.erl