Комната XMPP MUC недоступна, если к ней не присоединена учетная запись администратора

У меня возникают некоторые проблемы с настройкой комнаты MUC правильно, с помощью ejabberd и библиотеки php для доступа к xmlrpc. Я могу создать комнаты без проблем, так что все это работает.

use \GameNet\Jabber\RpcClient;
use \GameNet\Jabber\Mixins\UserTrait;
$rpc = new RpcClient([
        'server' => $app->config['jabber'].':4560',
        'host' => 'mydomain.org',
        'debug' => false,
    ]);

$rpc->createRoom($groupname);
$rpc->setRoomOption($groupname,'persistent',true);
$rpc->setRoomOption($groupname,'members_only',true);
$rpc->setRoomOption($groupname,'public',false);
$rpc->setRoomOption($groupname,'moderated',false);
$rpc->setRoomAffiliation($groupname, $user.'@mydomain.org' , 'owner');

Я могу видеть комнату в Ejabberd и присоединиться к комнате MUC, используя учетную запись администратора Ejabberd. Затем я добавляю другого пользователя и присоединяюсь как участник:

$rpc->setRoomAffiliation($groupname, 'user2@mydomain.org' , 'member');

Используя jabber-клиент, user2 может видеть комнату, но когда они присоединяются к ней, я получаю сообщение об ошибке (от клиента, не переданного с сервера): "Не удалось присоединиться к комнате: Невозможно войти в эту комнату: Вы забанены из комнаты "

Что меня смутило, так это то, что если я запущу другого клиента и войду в комнату, используя учетную запись администратора, я смогу присоединиться к ней, используя user2. Если Admin уходит, user2 не выгнан, но если user2 уходит и пытается повторно присоединиться, они получают сообщение об ошибке.

Кажется, что разрешения комнаты неправильные, но я не могу думать, что. Кажется, что в комнате нужен модератор, но комната не модерируется.

Я хочу, чтобы комната была видимой / доступной только для пользователей, связанных как участники.

Дополнительная информация - это ответ на запрос о членстве в комнате - означает ли это значение ответа 0, что оно не работает?

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
   <params>
      <param>
         <value>
            <struct>
               <member>
                  <name>res</name>
                  <value>
                     <int>0</int>
                  </value>
               </member>
            </struct>
         </value>
      </param>
   </params>
</methodResponse>

0 ответов

Другие вопросы по тегам