Механизм интеграции с телефонией

Сложный
PDF

Назначение интеграции с телефонией — управление звонками из интерфейса приложения. Creatio позволяет настроить интеграцию с автоматическими (АТС) и офисными (Private Branch Exchange, PBX) телефонными станциями. Об АТС читайте в Википедии. О PBX читайте в Википедии.

Инструменты, которые предоставляет Creatio для управления звонками:

  • Коммуникационная панель.
  • Раздел Звонки (Calls).

Действия, которые позволяет выполнять коммуникационная панель:

  • Отображает входящий звонок пользователю приложения. При этом используется поиск контакта/контрагента по номеру звонящего.
  • Выполняет звонок из приложения в один клик.
  • Управляет звонком (ответить, поставить/снять с удержания, завершить, перевести) в Creatio.
  • Отображает историю звонков для удобного управления связями звонков или возможностью перезвонить.

Независимо от выбранной для интеграции телефонии, интерфейс коммуникационной панели не отличается.

Действия, которые позволяет выполнять раздел Звонки (Calls):

  • Сохраняет входящие и исходящие звонки.
  • Отображает временные характеристики (дата начала, дата завершения, длительность разговора) звонка.
  • Отображает связанный контакт/контрагент.

Чтобы использовать функциональность телефонии, выполните настройку интеграции с соответствующим коннектором телефонии. Для этого воспользуйтесь одной из инструкций, которая приведена в блоке статей Коннекторы к телефонии.

Возможности АТС описаны в статье Сравнение возможностей интеграции с различными АТС. По умолчанию в приложении настроена интеграция с сервисом телефонии Webitel.

Типы интеграции с телефонией 

Типы интеграции с телефонией, которые поддерживает Creatio:

  • first-party — интеграция с телефонией реализована на front-end стороне приложения.
  • third-party — интеграция с телефонией реализована на back-end стороне приложения.

first-party интеграция 

Тип интеграции first-party используется для коннекторов Webitel, Oktell, Finesse. Для интеграции с коннекторами Webitel и Oktell используется протокол WebSocket. О протоколе WebSocket читайте в Википедии. Для коннектора Finesse используются long-polling http-запросы. О long-polling http-запросах читайте в официальной документации PubHub.

first-party интеграция подразумевает создание отдельного интеграционного подключения к серверу телефонии для каждого пользователя (т. е. путем использования интеграционной библиотеки коммуникационная панель из браузера напрямую выполняет подключение к API сервера телефонии). В этом подключении выполняется обработка событий АТС. При first-party интеграции Creatio из браузера интегрируется с JavaScript-адаптером.

Виды взаимодействия при first-party интеграции:

  • Cтраница Creatio взаимодействует с сервером приложения по протоколу HTTP(S) для авторизации.
  • Страница Creatio, которая содержит элементы телефонии, взаимодействует с клиентской JavaScript-библиотекой, которая, как правило, предоставляется производителем АТС, путем отправки событий и принятия JavaScript-команд.
  • Клиентская JavaScript-библиотека взаимодействует с АТС через API АТС.

При входящем звонке сервер телефонии передает событие начала нового звонка и его параметры через WebSocket в библиотеку клиентской интеграции. В ответ на отправленное событие библиотека генерирует событие RingStarted, которое передается на страницу приложения.

При исходящем звонке front-end часть приложения генерирует команду начала звонка, которая по WebSocket передается на сервер телефонии.

third-party интеграция 

Тип интеграции third-party используется для коннекторов API-телефонии (Asterisk, Avaya, Callway, Ctios, Infinity, Infra, Tapi).

third-party интеграция подразумевает создание одного подключения к серверу телефонии для всех пользователей. В этом подключении выполняется обработка событий АТС. Для распределения информационных потоков разных пользователей используется Creatio Messaging Service (CMS). Creatio Messaging Service (CMS) — Windows proxy-служба, которая является универсальным хостером библиотек интеграции с АТС. Позволяет взаимодействовать с АТС путем использования библиотеки-адаптера производителя АТС. Все события телефонии проходят через CMS. При получении клиентских подключений CMS автоматически подключает используемую Creatio библиотеку и инициирует подключение к АТС. Фактически, CMS является функциональной оберткой для коннекторов телефонии, которые не поддерживают first-party интеграцию. Это позволяет из браузера взаимодействовать с функциональностью телефонии в браузере путем генерации и обработки событий, а также передачи данных.

Виды взаимодействия при third-party интеграции:

  • Cтраница Creatio взаимодействует с сервером приложения по протоколу HTTP(S) для авторизации.
  • CMS взаимодействует с сервером приложения по протоколу HTTP(S) для отправки запроса сохранения информации о звонке в базе данных.
  • CMS взаимодействует с браузером по протоколу WebSocket. CMS передает браузеру события (начало звонка, завершение звонка, изменение статуса оператора и т. д.) телефонии. Браузер передает CMS команды управления (выполнение звонка, постановка звонка на удержание, завершение звонка, изменение статуса оператора и т. д.) звонком.
  • Библиотека-адаптер взаимодействует с АТС через API АТС.

При входящем звонке сервер телефонии передает событие начала нового звонка и его параметры через библиотеку-адаптер на хост с CMS. В ответ на отправленное событие CMS генерирует событие RingStarted, которое передается на страницу приложения.

При исходящем звонке front-end часть приложения генерирует команду начала звонка, которая по WebSocket передается в CMS. В ответ на отправленную команду CMS генерирует событие исходящего звонка для АТС.

Реализация взаимодействия коннекторов с Creatio 

Все коннекторы взаимодействуют с конфигурацией приложения через класс Terrasoft.integration.telephony.CtiModel, который получает события от коннектора и обрабатывает их.

Класс CtiModel описан в Библиотеке JS-классов.