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_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>

Ответ, полученный от сервера, не содержит никаких сообщений.

<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>

Этот MUC уже содержит некоторые сообщения, но запрос, как указано выше, не возвращает никакого сообщения. Похоже, формат xml-строфа неверен. Либо формат для отправки JID для конференции не является правильным или что-то еще.

Не уверен, что делать, так как я уже использую последнюю версию Ejabberd, которая показывает поддержку архива MUC. Кроме того, что я здесь делаю, я понятия не имею, как запросить архив MUC с сервера ejabberd.

1 ответ

Решение

Вам необходимо запросить службу 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>
Другие вопросы по тегам