Именованные задачи
Сервер CommuniGate Pro поддерживает специальные доменные объекты — «именованные задачи». Когда запрос реального времени адресован на имя именованной задачи, сервер запускает приложение реального времени, заданное для этой именованной задачи, и передаёт запрос запущенной копии приложения. Новые запросы на тот же адрес передаются уже запущенной копии приложения.
Именованные задачи могут быть использованы для реализации механизмов совместной работы, таких как «групповые чаты» в стиле протокола XMPP.
Создание новой именованной задачи
Администратор сервера с правами «может менять установки всех доменов и пользователей» может создавать именованные задачи в любом домене.
Администратор домена может создавать и удалять именованные задачи в домене, только если ему предоставлено право доступа может создавать именованные задачи.
Чтобы создать именованную задачу, создайте нового пользователя (или выберите существующего), который будет являться владельцем именованной задачи.
Используйте интерфейс администратора, чтобы открыть страницы установок пользователя, затем откройте страницу установок звонков в разделе “real-time” и найдите панель именованные задачи:
Введите имя именованной задачи, которую вы хотите создать, и нажмите на кнопку “создать именованную задачу”.
Сервер проверяет, что в этом домене не существует пользователя или другого объекта с таким именем, и создаёт новую именованную задачу.
Задание настроек именованной задачи
Чтобы задать настройки именованной задачи, нажмите на имени именованной задачи на странице настроек пользователя-владельца именованной задачи. Появится страница с настройками именованной задачи.
Настоящее имя — краткое описание именованной задачи.
Имя программы — имя приложения реального времени. Для именованной задачи запускается ровно одна копия этого приложения.
Нажмите на кнопку “модифицировать” для изменения настроек именованной задачи.
Переименование именованных задач
Если вы хотите переименовать именованную задачу, откройте страницу её установок, заполните поле новое имя именованной задачи и нажмите на кнопку “переименовать именованную задачу”.
Если не существует объекта с именем, совпадающим с новым именем именованной задачи, то именованная задача переименовывается, и страница с её настройками должна появиться на экране под новым именем.
Удаление именованных задач
Если вы хотите удалить именованную задачу, откройте страницу с её настройками и нажмите на кнопку “удалить именованную задачу”.
Временные именованные задачи
Сервер CommuniGate Pro позволяет создавать временные именованные задачи. Этим задачам даются временные имена, под которыми они сразу запускаются. Когда выполнение временной именованной задачи заканчивается, её имя высвобождается и может быть использовано для именования других объектов в домене.
Временные именованные задачи могут быть использованы для создания ad-hoc групповых чатов. Когда клиента по протоколам XMPP или XIMSS посылают запрос на создание группового чата с уникальным именем, сервер создаёт временную именованную задачу для выполнения приложения реального времени chatroom, и имя этой задачи передаётся клиентам.
Групповые чаты
CommuniGate Pro реализует групповые чаты в стиле XMPP (многосторонние сессии для обмена мгновенными сообщениями), используя приложение реального времени chatroom.
Это приложение реализует групповой чат согласно спецификации XEP-0045.
Приложение chatroom реализует следующие дополнительные функции:
Запись в журнал
Журнал разговора сохраняется в хранилище файлов пользователя в виде файлов с именем private/chatlogs/taskName/YYYY-MM.log, где taskName — имя именованной задачи чата, YYYY — год, а MM — номер месяца.
Интерфейс командной строки
Участник чата может послать групповое мгновенное сообщение, начинающееся с префикса #cmd:. Оставшаяся часть сообщения обрабатывается как команда. Команда выполняется в зависимости от «роли» и «членства» отправителя. Ответ на команду отправляется в виде мгновенного сообщения с префиксом #cmdResult: отправителю команды. Ниже перечислены реализованные команды.
Объединение чатов
Чат в CommuniGate Pro может подсоединиться к другому чату (на этом же или другом сервере CommuniGate Pro, или на другом сервере XMPP) в качестве участника.
В результате такого подсоединения сообщения этого чата CommuniGate Pro отправляются в другой чат с префиксом, указывающим на отправителя в этом чате. Таким же образом сообщения другого чата отправляются в чат CommuniGate Pro с префиксом, указывающим на отправителя в другом чате.
Чат CommuniGate Pro может подсоединяться к нескольким локальным или удалённым чатам, играя роль моста между этими чатами.
Приложение chatroom реализует следующие команды интерфейса командной строки:
help | Возвращает список поддерживаемых команд. |
killroom | Отсоединяет всех участников и прекращает выполнение текущей копии именованной задачи. |
**kick nickName | Удаляет участника из чата. |
**voice nickName | Изменяет «роль» указанного участника на participant (участник), чтобы он мог публиковать свои сообщения. |
**novoice nickName | Изменяет «роль» указанного участника на visitor (посетитель), чтобы он не мог публиковать свои сообщения. |
**moderator nickName | Изменяет «роль» указанного участника на moderator (модератор). |
**member nickName | Изменяет «членство» указанного участника на member (член). |
**admin nickName | Изменяет «членство» указанного участника на administrator (администратор). |
**guest nickName | Изменяет «членство» указанного участника на guest (гость). |
**ban nickName | Изменяет «членство» указанного участника на outcast (изгнанник), и удаляет его из чата. |
msg nickName сообщение | Отправляет частное сообщение указанному участнику. |
announce сообщение | Отправляет обычное сообщение группового чата от имени пользователя. Это сообщение не удаляется из истории сообщений чата, но оно может быть заменено другой командой announce от любого пользователя. Эта команда доступна только модераторам и администраторам. |
sysann сообщение | Отправляет сообщение группового чата от имени самого чата. Это сообщение не удаляется из истории сообщений чата, но оно может быть заменено другой командой sysann от любого пользователя. Эта команда доступна только модераторам и администраторам. |
temp сообщение | Отправляет обычное сообщение группового чата от имени пользователя. Это сообщение не сохраняется в истории сообщений чата и не записывается в журналы разговора в чате. Эта команда доступна только модераторам и администраторам. |
invite userAddress [ причина ] | Отправляет пользователю userAddress приглашение на подсоединение к этому чату. |
join roomAddress | Отправляет чату roomAddress приглашение на подсоединение к этому чату от имени пользователя. |
merge roomAddress [ thisRoomNick [ otherRoomNick ] ] | Подсоединяет этот чат в качестве участника к чату roomAddress. |
Автоматически создаваемые групповые чаты
Многие чаты на базе протокола XMPP реализуют домены «только для чатов», вида chats.mycompany.com. Такие серверы автоматически создают новый чат, когда в их домене запрашивается неизвестное имя.
В доменах CommuniGate Pro содержатся разнообразные объекты — пользователи, псевдонимы, переадресаторы, списки рассылок, группы и другие, и создание групповые чаты по запросу пользователя обычно не приветствуется: администратор домена или сервера может создать именованную задачу для чата, тогда как обычные пользователи могут создавать «временные групповые чаты» с уникальными именами, используя «ad-hoc» групповые чаты.
Чтобы разрешить обычным пользователям создавать именованные задачи для чатов постой попыткой подсоединения к неизвестному в домене имени, включите опцию “свободное создание чатов” в установках домена.
Если пользователь пытается подсоединиться к несуществующему в домене чату, именованная задача чата создастся автоматически, и пользователь будет владельцем этой задачи.
Если попытка создания чата таким образом совершается пользователем другого домена CommuniGate Pro или внешним пользователем, то иименованная задача для чата создаётся, только если в домене есть пользователь chatmaster. Это пользователь используется в качестве владельца новой именованной задачи.