Webitel
Glossary Item Box
Общие положения
Интеграция Webitel реализована на клиенте в виде отдельных модулей bpm’online. Состав модулей, входящих в интеграцию:
Пакет WebitelCore — модули, содержащие низкоуровневые взаимодействия с АТС Webitel с использованием модуля Verto, а также СTI-панели на странице приложения bpm`online.
Пакет WebitelCollaborations — реализация базовых интерфейсов для работы с Webitel в bpm’online. Содержит модуль WebitelCtiProvider, реализующий класс WebitelCtiProvider, коннектор к Webitel, страницу настройки параметров подключения, справочник для редактирования пользователей Webitel непосредственно в bpm’online, необходимые привязки данных.
Подробно с архитектурой платформы Webitel можно ознакомиться в документации.
Взаимодействие компонентов
Класс WebitelCtiProvider (наследник класса Terrasoft.BaseCtiProvider) реализует необходимое взаимодействие между CtiModel и низкоуровневым глобальным объектом Webitel (модуль WebitelCore.WebitelModule.js) (рис. 1).
Рис. 1. Схема взаимодействия компонентов при интеграции Webitel с bpm'online
Интеграция осуществляется следующим образом. Если пользователь установил системную настройку библиотеки интеграции Webitel, CtiProviderInitializer загружает модуль WebitelCtiProvider. Далее вызывается метод init в WebitelCtiProvider, который осуществляет логин пользователя в сессию телефонии (метод LogInMsgServer сервиса MsgUtilService.svc). Если логин был успешным, вызывается метод connect, который проверяет, что еще нет существующего подключения (свойство this.isConnected имеет значение false и this.webitel — пустое). После этого connect запрашивает настройки подключения к Webitel, которые хранятся в системных настройках webitelConnectionString и webitelWebrtcConnectionString (рис. 2).
Рис. 2. — Загрузка провайдера WebitelCtiProvider и подключения СTI-панели
После получения системных настроек происходит получение настроек пользователя из справочника [Пользователи Webitel], используя метод GetUserConnection клиентского сервиса WUserConnectionService. После получения пользовательских настроек загружается модуль WebitelModule и WebitelVerto, если в настройках пользователя установлен признак [Use web phone]. Затем вызывается метод onConnected, в котором создается глобальный объект Webitel, где свойства заполняются настройками подключения. Происходит подписка на события объекта Webitel и вызывается метод connect, который осуществляет подключение по WebSocket, авторизацию в АТС Webitel и остальные низкоуровневые операции по подключению. При возникновении события onConnect подключение считается успешным, и у пользователя появляется возможность работать со звонками. Во время работы коннектора WebitelCtiProvider реагирует на события объекта Webitel, обрабатывает их и, при необходимости, генерирует события коннектора, описанные в классе Terrasoft.BaseCtiProvider. Для управления звонками WebitelCtiProvider реализует абстрактные методы класса Terrasoft.BaseCtiProvider, используя методы объекта Webitel.
Примеры взаимодействия CtiPanel, CtiModel и WebitelCtiProvider
Исходящий звонок оператора абоненту с установкой звонка на удержание абонентом, снятия с удержания абонентом и завершения звонка оператором (рис. 3).
Рис. 3. — Последовательность возникновения событий при звонке
Список портов Webitel
- 871 — порт WebSocket для подключения к серверу Webitel и получения событий.
- 5060 и 5080 — сигнальные порты для подключениz SIP-телефонов и провайдеров телефонии.
- 5066 — порт для подключения Web-телефона, сигнальный порт WebRTC.
- 4004 — порт для получения записей разговоров.
События Webitel
Табл. 1. — События WebitelCtiProvider
Событие | Описание |
---|---|
onNewCall | Событие начала нового звонка. |
onAcceptCall | Событие поднятия трубки. |
onHoldCall | Событие удержания звонка. |
onUnholdCall | Событие снятия звонка с удержания. |
onDtmfCall | Событие тонового набора. |
onBridgeCall | Событие соединения с каналом. |
onUuidCall | Событие смены UUID звонка. |
onHangupCall | Событие завершения звонка. |
onNewWebRTCCall | Событие новой WebRTC-сессии. |