Комната 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>