В качестве памятки опишу как управлять конференц-комнатами XMPP-сервера ejabberd через консоль ejabberdctl.
Рассмотрю самые основные моменты, которые у меня часто возникают в работе с конференц-комнатами (создание, задание параметров комнаты, определение членства пользователя в комнате, удаление комнаты).
В моем случае ejabberd-сервер работает от пользователя ejabberd, поэтому работать с консолью ejabberdctl необходимо через этого же пользователя.
Создадим комнату «general«, для сервиса MUC «conference.example.com» и домена «example.com»:
sudo -u ejabberd ejabberdctl create_room "general" "conference.example.com" "example.com"
Чтобы отобразить доступные параметры для комнаты, выполним команду:
sudo -u ejabberd ejabberdctl get_room_options "general" "conference.example.com"
title description allow_change_subj false allow_query_users true allow_private_messages true allow_private_messages_from_visitors anyone allow_visitor_status true allow_visitor_nickchange false public true public_list true persistent true moderated true captcha_protected false members_by_default true members_only true allow_user_invites false allow_subscription false password_protected false password anonymous false presence_broadcast [moderator,participant,visitor] allow_voice_requests true voice_request_min_interval 1800 max_users 200 logging true vcard vcard_xupdate undefined captcha_whitelist {0,nil} mam true pubsub lang
Для примера для комнаты «general«, укажем что комната постоянная (persistent) и вход в нее только по членству (members_only). Выполним команду:
sudo -u ejabberd ejabberdctl change_room_option "general" "conference.example.com" "persistent" "true" sudo -u ejabberd ejabberdctl change_room_option "general" "conference.example.com" "members_only" "true"
Так как для комнаты указали вход в нее только по членству, то добавить членство в комнате «general«, для пользователя «jakonda@example.com», можно командой:
sudo -u ejabberd ejabberdctl set_room_affiliation "general" "conference.example.com" "jakonda@example.com" "member"
Удалить комнату «general«, можно командой:
sudo -u ejabberd ejabberdctl destroy_room "general" "conference.example.com"
Более подробная документация по API находится на оф. сайте — https://docs.ejabberd.im/developer/ejabberd-api/admin-api/
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА
Оставить ответ