Xmpp ejabberd MUC归档管理查询响应

Xmpp ejabberd MUC归档管理查询响应,xmpp,archive,ejabberd,muc,Xmpp,Archive,Ejabberd,Muc,我正在使用ejabberd 15.09,并已为服务器配置中的每个MUC启用了归档管理,如下所示: mod_mam: default: always mod_muc: ## host: "conference.@HOST@" access: muc access_create: muc_create access_persistent: muc_create access_admin: muc_admin default_room_opti

我正在使用ejabberd 15.09,并已为服务器配置中的每个MUC启用了归档管理,如下所示:

mod_mam:
    default: always
 mod_muc:
    ## host: "conference.@HOST@"
    access: muc
    access_create: muc_create
    access_persistent: muc_create
    access_admin: muc_admin
    default_room_options:
      mam: true
      persistent: true
      public: true
此外,对Ejabberd管理面板的检查显示,在每条消息发送到MUC后,随着存档表中元素数量的增加,消息被存档。这是在验证会话是否已启用存档

要从MUC查询服务器的消息存档,我将发送以下iq数据包:

<iq type='set' id='testid1'>
      <query xmlns='urn:xmpp:mam:1'>
        <x xmlns='jabber:x:data' type='submit'>
           <field var='FORM_TYPE' type='hidden'>
               <value>urn:xmpp:mam:1</value>
           </field>
          <field var='with'>
             <value>testmyroomnow@conference.ip/</value>
          </field>
       </x>
      </query>
    </iq>

urn:xmpp:mam:1
testmyroomnow@conference.ip/
从服务器收到的响应不包含任何消息

<message from='user@ip' to='user@ip/Gajim'>
<fin xmlns='urn:xmpp:mam:0' complete='true'>
<set xmlns='http://jabber.org/protocol/rsm'>
<count>0</count>
</set>
</fin>
</message>

0
这个MUC已经包含一些消息,但是像上面这样的查询不会返回任何消息。xml节的格式似乎不正确。为会议发送JID的格式不正确或其他原因


我不知道该怎么做,因为我已经在使用最新版本的Ejabberd,它支持MUC的存档。除此之外,我不知道如何从ejabberd服务器查询MUC存档。

您需要查询MUC存档的MUC服务。用户MAM服务仅存储一对一对话的消息

还请注意,您没有使用最新的ejabberd。到今天为止,最新版本是15.11。我建议您使用关于MAM MUC的最新版本,因为已经对XEP-0313进行了一些澄清,并添加到了最新的ejabberd中

以下是示例查询,将MAM查询节发送到MUC房间本身:

<iq type='set' id='juliet1' to='tech@conference.process-one.net'>
  <query xmlns='urn:xmpp:mam:0' queryid='f27'>
  <set xmlns='http://jabber.org/protocol/rsm'>
        <max>10</max>
      </set>
  </query>
</iq>

10

您是指在查询MUC存档时,我需要使用“to”属性的值作为目标JID()?若我这样做的话,我会得到特性未实现的错误。这是否意味着没有进行MUC存档?这令人困惑,因为数据库条目显示正在进行归档。另外,要将最新版本升级到15.11,是否可以在不重新启动或停止当前运行版本的情况下进行升级?因为如果我通过停止/重新启动进行升级,我将删除存储在RAM中的房间历史记录中的所有消息。是的,不幸的是XEP没有示例。但是,您需要将节发送到MUC室本身,并确保使用ejabberd 15.11。它以前是通过自定义节实现的,因为在我们第一次实现它时,XEP没有涵盖用例。如果不停止服务器,就无法升级到ejabberd 15.11。确定。谢谢我现在将升级到15.11并报告它是否有效。刚刚重新安装了15.11。当我将To属性指定为目标JID()时,它给出了相同的特性notimplemented错误。501错误代码。这一次存档表也得到了更新,正如我从管理面板上看到的,这表明MUC存档正在工作。您可以发布需要发送以供查询的xml节吗?XEP文档确实是不够的。谢谢。感谢您突出显示
mam
选项!