Управление конференц-комнатами ejabberd через консоль ejabberdctl.
В качестве памятки опишу как управлять конференц-комнатами XMPP-сервера ejabberd через консоль ejabberdctl.
Рассмотрю самые основные моменты, которые у меня часто возникают в работе с конференц-комнатами (создание, задание параметров комнаты, определение членства пользователя в комнате, удаление комнаты).
ejabberd 18.12.1 на Debian 9 Stretch по этой статье.В моем случае 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/
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Как оказалось, автоматическое подключение к конференции необходимо настраивать на клиентах, на сервере только чтобы комната сохранялась, даже если последний участник покинет её.
Так что необходимо разбираться с клиентами.
Понял, спасибо за быстрый ответ.
То же смотрел на такой вариант, но к сожалению не подходит, в организации машины максимум под Windows 8 и часть с 32-х разрядной версией операционной системы.
Хорошего дня и поменьше глюков с багами )
Спасибо и взимно)
Если найдете, решение, напишите, дополню статейку 😉
Доброго дня!
Занимаюсь, пока ещё тестовой, настройкой ejabberd сервера в небольшой организации.
Столкнулся со следующей проблемой, как принудительно подключить всех пользователей к созданной комнате, желательно без возможности её покинуть.
Просто сейчас используется для общения чат, но он не устраивает пользователей по функционалу.
Если честно то я давненько отошел от использования ejabberd, сейчас используем связку synapse-matrix