Как получить все поля ejabberd из модуля MUC?

Мы хотим получить все поля по этой ссылке (http://xmpp.org/extensions/xep-0045.html#roomconfig) для этого раздела

Пример 165. Сервис отправляет форму конфигурации владельцу

В спецификации показаны все поля, но мы не получаем все поля от ejabberd, например:

<field label='Roles and Affiliations that May Retrieve Member List' type='list-multi' var='muc#roomconfig_getmemberlist'>

Мы хотим получить muc#roomconfig_getmemberlist, но это не получается от ejabberd.

Какую конфигурацию нам нужно изменить, чтобы получить все поля, как указано выше?


person Yogendra Gupta    schedule 01.08.2015    source источник


Ответы (1)


ejabberd возвращает все поля, которые он поддерживает. На данный момент ejabberd не поддерживает изменение принадлежности пользователей, которым разрешено получать список участников. Предполагается, что администратор MUC, владелец комнаты и участники могут получить список участников.

Тем не менее, даже если у вас нет этого поля в форме конфигурации, ejabberd поддерживает управление списком участников. Вы можете получить список участников от пользователя с соответствующими учетными данными, отправив следующий запрос:

<iq type="get" to="[email protected]" id="aac1a">
 <query xmlns="http://jabber.org/protocol/muc#admin">
  <item affiliation="member"/>
 </query>
</iq>

Вы получите ответ вида:

<iq from="[email protected]" type="result" id="aae0a">
 <query xmlns="http://jabber.org/protocol/muc#admin">
  <item affiliation="member" jid="[email protected]"/>
 </query>
</iq>
person Mickaël Rémond    schedule 01.08.2015
comment
У меня возникают проблемы при получении списка участников в качестве участника, но не владельца или администратора. Мы используем тот же код, который вы объяснили выше. Я получаю запрещенную ошибку, когда пытаюсь получить список участников чата только для участников, хотя я являюсь участником чата. - person Yogendra Gupta; 01.08.2015
comment
Вы должны создать еще один конкретный вопрос. Я только что попробовал на ejabberd 15.07 отправить показанный пакет запроса члена (не владелец и не администратор), и он работает, как описано. Вы уверены, что комната MUC постоянна? Конечно, если он не постоянный, список участников очищается, когда уходит последний пользователь, потому что комната уничтожается, когда уходит последний пользователь. - person Mickaël Rémond; 02.08.2015
comment
Я не говорю, что ваша проблема будет решена обновлением. Просто говорю, что это работает в моем тесте, так что у вас может быть другая проблема, совершенно не связанная с вашим первоначальным вопросом. На этой странице загрузки для ejabberd есть бинарный установщик и пакеты: process-one.net/en /ejabberd/загрузки - person Mickaël Rémond; 03.08.2015
comment
Ну, вы не должны использовать версию трехлетней давности, по крайней мере, из соображений безопасности. В любом случае, вы можете исправить сами, вот где это реализовано: github.com/processone/ejabberd/blob/master/src/ - person Mickaël Rémond; 03.08.2015