Настроить интеграцию с телефонией Asterisk

Продукты
Все продукты

Для настройки интеграции с телефонией Asterisk потребуется выполнить следующие шаги:

  1. Подготовить Asterisk к интеграции. Подробнее >>>
  2. Настроить сервис обмена сообщениями Creatio Messaging Service. Подробнее >>>
  3. Настроить библиотеку обмена сервисными сообщениями. Подробнее >>>
  4. Настроить параметры Asterisk. Подробнее >>>

Функциональность интеграции с телефонией Asterisk лицензируется как отдельное решение. Необходимо сформировать запрос на получение лицензий, отправить его в службу поддержки, загрузить полученный файл лицензий в систему и распределить лицензии между пользователями. Подробнее: Лицензировать Creatio и Управлять лицензиями пользователей.

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

Важно. Если вы настраиваете телефонию для приложения на продуктовой среде, то необходимо разместить сервис обмена сообщениями на отдельном узле, а не на сервере приложения Creatio. Чтобы обеспечить отказоустойчивость телефонии, рекомендуем настроить не менее двух узлов с сервисом обмена сообщениями и балансировщик, который будет перенаправлять пользователей в случае потери связи с одним из узлов.

1. Подготовить Asterisk к интеграции 

Для взаимодействия с Asterisk используется интерфейс AMI (Asterisk Manager Interface), при помощи которого происходит подключение к серверу Asterisk, настройка и управление клиентскими программами.

Для подготовки Asterisk к интеграции создайте AMI-пользователя для Creatio, указав его параметры в файле manager.conf, например:

[terrasoft]
secret = terrasoft
deny=0.0.0.0/0.0.0.0
permit=0.0.0.0/0.0.0.0
read = call,agent,originate
write = call,agent,originate

Значения параметров deny и permit замените на соответствующие адреса.

Важно. Установка звонка на удержание производится с программного телефона или телефона оператора. Коммуникационная панель обрабатывает изменение состояния звонка: отображает постановку на удержание и снятие с него, но не позволяет инициировать удержание.

2. Настроить сервис сообщений Creatio Messaging Service (ранее Terrasoft Messaging Service) 

Сервис сообщений позволяет соединить Creatio c телефонией, подключаясь по протоколу AMI к Asterisk и распределяя события о звонках между пользователями Creatio. Некоторые настройки отличаются в зависимости от платформы, на которой развернут сервис телефонии Asterisk — .NET Framework или .NET Core.

Настроить Creatio Messaging Service на платформе .NET Framework 

  1. Перед установкой Creatio Messaging Service (CMS) убедитесь, что рабочая среда вашего компьютера соответствует программным требованиям:

    • Пакет .NET Framework версии 4.7.2 или выше на сервере, где устанавливается сервис сообщений Creatio Messaging Service.
    • Наличие минимум 2 Гб оперативной памяти и 20 Гб свободного дискового пространства.
  2. Обратитесь в службу поддержки Creatio для получения файлов установки сервиса обмена сообщениями или загрузите установочные файлы CMS по ссылке: Скачать архив. Для корректной установки архив необходимо предварительно распаковать. В случае запуска установки непосредственно из архива программа-архиватор может внести сбои в работу установщика.

    Важно. CMS необходимо разместить на сервере, где будет доступна связь между приложением и ATC. Подробнее: Общие принципы работы интеграции с телефонией.

  3. Запустите файл Creatio Messaging Service Install.msi на том компьютере, который будет использоваться в качестве сервера обмена сообщениями, и выполните установку.
  4. Убедитесь, что служба Terrasoft Messaging Service запущена в приложении Службы (Services) Windows. Если служба Terrasoft Messaging Service не запущена, то запустите ее вручную.
  5. Перейдите в папку с файлами сервиса ~\Terrasoft Messaging Service. Пропишите в конфигурационном файле Terrasoft.Messaging.Service.exe.config следующие параметры для коннектора Asterisk:

    <asterisk filePath="" url="Имя или адрес сервера Asterisk" port="Порт сервера Asterisk" userName="Логин Asterisk" secret="Пароль Asterisk" originateContext="Исходящий контекст" autoPauseOnCommutationStart="true" queueExtensionFormat="Local/{0}@from-queue/n" asyncOriginate="true" sendRingStartedOnRingingState="true" traceQueuesState="false" protocol="Используемый тип протокола – SIP/ либо PJSIP/" packetInfoConfig="Дополнительные параметры пакетов для обработки в конфигурации" />
    
    <asterisk filePath="" url="10.0.15.185" port="5038" userName="creatio" secret="creatio" originateContext="from-internal" autoPauseOnCommutationStart="true" queueExtensionFormat="Local/{0}@from-queue/n" asyncOriginate="true" sendRingStartedOnRingingState="true" traceQueuesState="false" protocol="PJSIP/" packetInfoConfig=""/>
    

    Детальнее перечень параметров для коннектора Asterisk рассмотрен в следующей таблице:

    Наименование параметра
    Назначение параметра
    filePath Диагностика системы. Позволяет проиграть набор событий из преднастроенного файла сценария. Значение по умолчанию должно быть пустым.
    url IP-адрес сервера Asterisk.
    port Порт AMI протокола. Значение по умолчанию 5038.
    originateContext Инициация звонка по номеру из Creatio. Содержит название контекста, в котором будет выполнен звонок на номер телефона пользователя. Значение по умолчанию для FreePBX — from-internal.
    autoPauseOnCommutationStart Корректная работа с очередями Asterisk. Если включена, то Creatio будет ставить оператора на паузу во всех очередях после ответа на звонок. Используется для исключения возможности приема второго звонка во время обработки и/или постановки на удержание текущего звонка.
    queueExtensionFormat Формат определения канала звонка при получении звонков из очереди. При использовании LocalChannel в FreePBX значение по умолчанию — Local/{0}@from-queue.
    sendRingStartedOnRingingState Корректная обработка получения звонка из очереди. При установленном признаке Creatio будет отображать звонок у пользователя после получения AMI-события NewState с параметром Ringing. Значение по умолчанию — “включено”.
    traceQueuesState Диагностика состояния оператора в очередях. Используется для отладки, если оператор при обработке звонка в Creatio получает второй звонок из очереди. Информация о состоянии операторов выводится в лог-файл коннектора. Значение по умолчанию — “выключено”.
    protocol Тип протокола: SIP или PJSIP. Чтобы узнать, какой тип протокола необходимо использовать, обратитесь к администраторам своей АТС.
  6. Проверьте работу телефонии.

На заметку. Если вам необходимо обновить Creatio Messaging Service, то воспользуйтесь следующей инструкцией.

Настроить Creatio Messaging Service на платформе .NET Core 

Важно. Настройка Messaging Host (Creatio Messaging Service) на платформе .NET Core доступна для Creatio версии 7.16.3 и выше.

  1. Установите Docker. Для установки Docker на операционную систему Linux воспользуйтесь инструкцией в документации Docker. Для проверки установленной версии Docker выполните в терминале Linux команду:

    docker --version
    
  2. Установите Docker Сompose. Для установки Docker Compose на операционную систему Linux воспользуйтесь инструкцией в документации Docker. Для проверки установленной версии Docker Compose выполните в терминале Linux команду:

    docker-compose --version
    
  3. Установите и настройте компоненты Docker Compose. Контейнер сервиса сообщений развертывается с помощью утилиты Docker Compose. Скачайте архив по ссылке. Разархивируйте содержимое архива с конфигурационными файлами и скриптами в произвольный каталог, например, /opt/messaging.host.

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

    Структура архива с конфигурационными файлами и скриптами:

    /etc/

    ...\appsettings.json — конфигурация сервиса.

    ...\nlog.config — настройка уровня логирования сервиса.

    docker-compose.yml — конфигурация утилиты Docker Compose.

    .env — файл с переменными окружения для запуска компонентов.

  4. Используя терминал Linux, перейдите в каталог docker-compose распакованного архива, например, /opt/messaging.host/docker-compose.
  5. Выполните команду sudo docker-compose pull в терминале. Дождитесь завершения загрузки необходимых образов с компонентами сервиса с Docker Hub.

    Важно. Если на сервере запрещен доступ в интернет, то необходимо вручную скачать нужные образы на машину с открытым доступом (см. конфигурационный файл docker-compose.yml), а затем перенести образы в виде файлов на целевую машину с помощью команд sudo docker export и sudo docker import.

  6. Пропишите в конфигурационном файле etc/appsettings.json следующие параметры для коннектора Asterisk:

    {
        "url": "Имя или адрес сервера Asterisk",
        "port": "Порт сервера Asterisk",
        "userName": "Логин Asterisk",
        "secret": "Пароль Asterisk",
        "originateContext": "Исходящий контекст",
        "autoPauseOnCommutationStart": "true",
        "queueExtensionFormat": "Local/{0}@from-queue/n",
        "asyncOriginate": "true",
        "sendRingStartedOnRingingState": "true",
        "traceQueuesState": "false",
        "protocol": "Используемый тип протокола – SIP/ либо PJSIP/",
        "packetInfoConfig": "Дополнительные параметры пакетов для обработки в конфигурации",
        "filePath": ""
    }
    
    {
        "url": "10.0.15.185",
        "port": "5038",
        "userName": "creatio",
        "secret": "creatio",
        "originateContext": "from-internal",
        "autoPauseOnCommutationStart": "true",
        "queueExtensionFormat": "Local/{0}@from-queue/n",
        "asyncOriginate": "true",
        "sendRingStartedOnRingingState": "true",
        "traceQueuesState": "false",
        "protocol": "PJSIP/",
        "packetInfoConfig": "",
        "filePath": ""
    }
    
  7. Выполните команду sudo docker-compose up -d для запуска сервиса. Также в текущем каталоге будет создана папка logs.

    Детальнее перечень параметров для коннектора Asterisk рассмотрен в следующей таблице

    Наименование параметра
    Назначение параметра
    url IP-адрес сервера Asterisk.
    port Порт AMI протокола. Значение по умолчанию 5038.
    originateContext Инициация звонка по номеру из Creatio. Содержит название контекста, в котором будет выполнен звонок на номер телефона пользователя. Значение по умолчанию для FreePBX — from-internal.
    autoPauseOnCommutationStart Корректная работа с очередями Asterisk. Если включена, то Creatio будет ставить оператора на паузу во всех очередях после ответа на звонок. Используется для исключения возможности приема второго звонка во время обработки и/или постановки на удержание текущего звонка.
    queueExtensionFormat Формат определения канала звонка при получении звонков из очереди. При использовании LocalChannel в FreePBX значение по умолчанию — Local/{0}@from-queue.
    sendRingStartedOnRingingState Корректная обработка получения звонка из очереди. При установленном признаке Creatio будет отображать звонок у пользователя после получения AMI-события NewState с параметром Ringing. Значение по умолчанию — “включено”.
    traceQueuesState Диагностика состояния оператора в очередях. Используется для отладки, если оператор при обработке звонка в Creatio получает второй звонок из очереди. Информация о состоянии операторов выводится в лог-файл коннектора. Значение по умолчанию — “выключено”.
    protocol Тип протокола: SIP или PJSIP. Чтобы узнать, какой тип протокола необходимо использовать, обратитесь к администраторам своей АТС.
    filePath Диагностика системы. Позволяет проиграть набор событий из преднастроенного файла сценария. Значение по умолчанию должно быть пустым.
  8. Проверьте работу телефонии.

3. Настроить библиотеку обмена сервисными сообщениями 

Выбор и настройка библиотеки обмена сообщениями осуществляется однократно администратором системы. Некоторые настройки отличаются в зависимости от платформы, на которой развернут сервис телефонии Asterisk — NET Framework или .NET Core.

Настроить библиотеку на платформе .NET Framework 

  1. Откройте дизайнер системы, например, нажав кнопку btn_system_designer00001.png в правом верхнем углу приложения.
  2. В блоке “Настройка системы” кликните по ссылке “Системные настройки”.
  3. В системной настройке “Библиотека обмена сообщениями по умолчанию” (код “SysMsgLib”) укажите значение по умолчанию “Библиотека интеграции с телефонией по протоколу Asterisk (AMI)”.
  4. В системной настройке “Сервер обмена сообщениями” (код “SysMsgServerNode”) укажите параметры подключения к сервису системных сообщений. В поле Значение по умолчанию укажите сетевой адрес сервера обмена сообщениями в виде: “ws://сервер:2013” для сайтов, доступных по протоколу http, или “wss://сервер:2013” для сайтов, доступных по протоколу https, где:

    • сервер — доменное имя сервера, на котором размещена служба обмена сообщениями. Не рекомендуется использование ip-адреса или localhost-значения.
    • 2013 — порт, используемый по умолчанию для подключения к сервису сообщений. Номер порта можно изменить в конфигурационном файле Terrasoft.Messaging.Service.exe.config. Не рекомендуется использовать значение localhost, поскольку это может привести к ошибке при подключении к серверу телефонии. При использовании wss-соединения убедитесь, что адрес сервера и адрес, на который выдан SSL-сертификат, совпадают.

    На заметку. Если ваш сайт доступен по протоколу https, и вы используете защищенное подключение (wss) для веб-сокетов, то на сервере обмена сообщениями необходимо установить сертификат безопасности и указать его в конфигурационных файлах сервиса сообщений. Для получения подробной информации о такой настройке обратитесь в службу поддержки Creatio.

Настроить библиотеку на платформе .NET Core 

Важно. Настройка Messaging Host на платформе .NET Core доступна для Creatio версии 7.16.3 и выше.

  1. Откройте дизайнер системы, например, нажав кнопку btn_system_designer00003.png в правом верхнем углу приложения.
  2. В блоке “Настройка системы” кликните по ссылке “Системные настройки”.
  3. В системной настройке “Библиотека обмена сообщениями по умолчанию” (код “SysMsgLib”) укажите значение по умолчанию “Библиотека интеграции с телефонией по протоколу Asterisk (AMI)”.
  4. В системной настройке “Сервер обмена сообщениями” (код “SysMsgServerNode”) укажите параметры подключения к сервису сообщений. В поле Значение по умолчанию укажите сетевой адрес сервера обмена сообщениями в виде: “http://сервер:2013” для сайтов, доступных по протоколу http, или “https://сервер:2014” для сайтов, доступных по протоколу https, где:

    • сервер — доменное имя сервера, на котором размещен сервис обмена сообщениями. Не рекомендуется использование ip-адреса или localhost-значения.
    • 2013 или 2014 — порт, используемый по умолчанию для подключения к сервису сообщений. Номер порта можно изменить в конфигурационном файле docker-compose.yml. Не рекомендуется использовать значение localhost, поскольку это может привести к ошибке при подключении к серверу телефонии. При использовании https-соединения убедитесь, что адрес сервера и адрес, на который выдан SSL-сертификат, совпадают.

      На заметку. Если ваш сайт доступен по протоколу https и вы используете защищенное подключение для веб-сокетов, то на сервере обмена сообщениями необходимо установить сертификат безопасности и указать его в конфигурации docker-compose. Для получения подробной информации о такой настройке обратитесь в службу поддержки Creatio.

4. Настроить параметры Asterisk 

Настройка параметров Asterisk выполняется для каждого пользователя Creatio, которому была выделена лицензия на интеграцию с телефонией Asterisk, под его учетной записью. Чтобы выполнить настройку:

  1. Откройте страницу профиля пользователя, например, кликнув по ссылке Профиль на главной странице приложения.
  2. Нажмите кнопку Настройки параметров Call Centre.
  3. На открывшейся странице заполните следующие поля:

    1. Отключить интеграцию с Contact Centre — установленный признак позволяет отключить интеграцию Creatio с телефонией. Кнопка выполнения звонка перестанет отображаться на коммуникационной панели приложения.
    2. Номер — номер линии пользователя в Asterisk. По умолчанию совпадает с номером телефона. Например, для отслеживания пользовательской линии SIP/305 необходимо указать значение 305, а для отслеживания линии SIP/office — office.

      Важно. Для каждого пользователя используется отдельная линия. Не рекомендуется указывать одну линию для нескольких пользователей, поскольку это может привести к ошибкам интеграции.

    3. Контекст исходящего звонка — укажите контекст исходящего звонка, если для данного пользователя он должен быть отличным от общесистемного, указанного в файле Terrasoft.Messaging.Service.exe.config.
    4. Включить режим отладки — установленный признак позволяет отображать диагностическую информацию в консоли браузера. Может использоваться при возникновении проблем в телефонии и обращении клиента в службу поддержки.
  4. Нажмите Сохранить.
  5. Обновите страницу вашего браузера, чтобы внесенные изменения вступили в силу.