Содержание


Практическое использование технологии Jabber

Часть 2.2. Совместное использование OpenFire вместе с Asterisk. Настройка OpenFire

Серия контента:

Этот контент является частью # из серии # статей: Практическое использование технологии Jabber

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Практическое использование технологии Jabber

Следите за выходом новых статей этой серии.

Среди всего многообразия плагинов, доступных для сервера OpenFire, наибольший интерес вызывают три: Fastpath Service, SIP Phone Plugin и Asterisk-IM Openfire Plugin. Назначение первого плагина уже было описано в первой статье данного цикла: он используется для создания групповых чатов и конференций. А вот о назначении двух других стоит поговорить подробнее, так как оба они служат для интеграции сервера OpenFire с платформой Asterisk. SIP Phone Plugin превращает клиент Spark в программный IP-телефон, а плагин Asterisk-IM обеспечивает синхронизацию статусов IP-телефонов Asterisk и отображение этих статусов в Spark.

Конфигурация Asterisk-IM

В консоли администрирования OpenFire следует перейти в раздел Плагины и установить два плагина SIP Phone Plugin и Asterisk-IM Openfire Plugin. Поскольку OpenFire написан на языке Java, то плагины представляет собой файлы с расширением .jar. После завершения установки в OpenFire появится дополнительная вкладка - Asterisk-IM.

По умолчанию данная служба выключена, и ее необходимо включить и добавить в разделе General Settings (общие настройки) в меню сервера OpenFire. Примечание: для подключения клиентов Asterisk используется порт 5060, а для подключения плагина Asterisk-IM к серверу Asterisk необходимо использовать порт 5038. В качестве имени пользователя указывается учетная запись администратора Asterisk, в данном случае это admin.

Рисунок 1. Установка параметров подключения к Asterisk
Рисунок 1. Установка параметров подключения к Asterisk
Рисунок 1. Установка параметров подключения к Asterisk

После этого сервер Asterisk будет добавлен в список, и если подключение с данным сервером Asterisk будет установлено, то напротив его названия появится зеленый кружок (индикатор).

Следующим этапом будет настройка Configure Phone Manager (настройка менеджера телефонии), в данном разделе необходимо поменять значение Asterisk Queue Presence (наличие очереди Asterisk) на Yes (да) и указать значение параметра Asterisk Context (контекст Asterisk). Данный параметр берется из настроек любой учетной записи на сервере Asterisk, и его значение будет равно from-internal. В качестве параметра Default Caller ID (идентификатор абонента по умолчанию) необходимо выставить значение DefaultCID. При данной конфигурации плагин будет подставлять значение по умолчанию, выставленное на сервере Asterisk. На рисунке 2 показана рабочая конфигурация сервера OpenFire.

Рисунок 2. Настройка менеджера телефонии
Рисунок 2. Настройка менеджера телефонии
Рисунок 2. Настройка менеджера телефонии

К этому моменту основная конфигурация OpenFire уже готова, и можно переходить к настройке Phone Mappings (привязка телефонных номеров). В данном меню задается соответствие между учетными записями OpenFire и телефонными номерами Asterisk. Для привязки телефонных номеров необходимо заполнить четыре поля, три из которых являются обязательными. В поле Username (имя пользователя) указывается учетная запись пользователя в OpenFire, для заполнения поля Device (устройство) необходимо указать значение из поля Dial (номер) в настройках абонента Asterisk (см. рисунок 3).

Рисунок 3. Привязка учетных записей OpenFire к телефонным номерам Asterisk
Рисунок 3. Привязка учетных записей OpenFire к телефонным номерам Asterisk
Рисунок 3. Привязка учетных записей OpenFire к телефонным номерам Asterisk

Параметр Dial состоит из двух частей, первая часть - это используемый клиентом протокол, вторая часть - это номер абонента в Asterisk. Для абонента с номером 771 значение Dial будет равно SIP/771, так как используется протокол SIP, если используется другой протокол, например IAX2, то необходимо указать значение Dial - IAX/771. Аналогично задаются значения и для других учетных записей.

В поле Extension (расширение) вводится телефонный номер абонента, соответствующий его учетной записи в OpenFire. Поле Caller ID отвечает за отображаемое имя абонента, в качестве его значения можно использовать имя пользователя, однако данный параметр не является обязательным. При сохранении настроек для пользователя, необходимо поставить переключатель в строке Primary (основной).

Конфигурация SIP Phone Plugin

После добавления всех пользователей через плагин Asterisk-IM остается настроить SIP Phone Plugin. Для совершения звонков через Spark используется SIP Phone Plugin, а плагин Asterisk-IM используется для мониторинга состояния IP- телефонов (клиентов Spark) и отображение соответствующего статуса в Spark.

Меню настройки плагина находится во вкладке Server (сервер) и называется Phone (телефон), а в самом меню находятся три вкладки SIP Phone Mappings, SIP Settings и SIP Calls. Настройка начинается с вкладки SIP Settings (настройки SIP), где задается IP-адрес сервера Asterisk, номер для доступа к голосовой почте и параметры STUN (Session Traversal Utilities for NAT) сервера, как показано на рисунке 4).

Рисунок 4. Настройка SIP Phone Plugin
Рисунок 4. Настройка SIP Phone Plugin
Рисунок 4. Настройка SIP Phone Plugin

Так как в данной конфигурации STUN не используется, то соответствующие поля остаются пустыми. На этом настройка SIP Settings завершена. На следующем этапе необходимо настроить SIP Phone Mappings (привязка SIP-телефонов). Настройка параметров SIP Phone Mappings очень похожа на настройку Phone Mappings в Asterisk-IM, необходимо также ввести имя пользователя на сервере OpenFire (XMPP username), а в качестве SIP username (имя пользователя SIP) следует указывать только цифры, т.е. телефонный номер абонента в Asterisk. В качестве имени для авторизации тоже используется телефонный номер абонента. Поле Display Phone Number (отображаемый телефонный номер) задается по желанию, также поддерживаются кириллические символы. Значение поля Password (пароль) должно соответствовать значению поля Secret на сервере Asterisk. После этого остается только задать IP-адрес сервера Asterisk и номер голосовой почты. Создание пользователя завершается нажатием кнопки Create (создать). После этого созданная запись появляется в списке абонентов, однако статус записи будет Unregistered, это значение изменится автоматически при первом подключении клиента Spark. Проверить работоспособность параметров можно, выбрав пункт Edit (редактировать). При правильных параметрах система выдаст сообщение SIP Account Successfully Test (учетная запись SIP успешно проверена). При сохранении параметров необходимо активировать учетную запись, поставив переключатель в строке Enable (разрешить).

Что касается вкладки SIP Calls (SIP-звонки), то в ней можно просмотреть полную статистику звонков через Spark, также существует возможность фильтрации звонков по имени пользователя, по номеру получателя, и номеру звонящего, а также возможен выбор временного периода.

Рисунок 5. Статистика учетной записи Spark
Рисунок 5. Статистика учетной записи Spark
Рисунок 5. Статистика учетной записи Spark

На этом настройка плагинов на сервере OpenFire закончена. Теперь необходимо установить SIP Softphone Plugin для клиента Spark, выбрав соответствующий плагин в меню "Доступные плагины" клиента Spark. Для того, чтобы плагин заработал, необходимо просто перезапустить клиент.

После успешного подключения в Spark появится раздел IP-телефонии, изображенный на рисунке 6. Теперь можно принимать и совершать звонки, а также пользоваться всеми преимуществами сервера OpenFire и протокола Jabber.

Рисунок 6. Использование IP-телефонии в Jabber-клиенте Spark
Рисунок 6. Использование IP-телефонии в Jabber-клиенте Spark
Рисунок 6. Использование IP-телефонии в Jabber-клиенте Spark

Заключение

В результате конфигурации Asterisk и OpenFire было создано гибкое решение для организации взаимодействия пользователей, в котором помимо обычного текстового чата или конференции доступна возможность совершения голосовых звонков непосредственно через клиент Jabber. Кроме того, пользователи Spark могут видеть статусы остальных пользователей в Asterisk, и если кто-то в данный момент совершает звонок по телефону, то его статус в Jabber автоматически меняется на "On Phone", тем самым превращая Spark в универсальное средство коммуникации.


Ресурсы для скачивания

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=830751
ArticleTitle=Практическое использование технологии Jabber: Часть 2.2. Совместное использование OpenFire вместе с Asterisk. Настройка OpenFire
publish-date=08162012