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

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

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

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

  2. Настроить сервис обмена сообщениями Creatio Messaging Service. Подробнее >>>

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

  4. Настроить параметры Asterisk. Подробнее >>>

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

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

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

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

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

  1. Создайте 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 = system,call,log,verbose,command,agent,user,originate
    
    write = system,call,log,verbose,command,agent,user,originate
    

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

  2. Проверьте активность функции парковки и параметры файла “features.conf”, например:

    parkext => 700
    
    parkpos => 701-720
    
    context => parkedcalls
    
    parkingtime => 45

Важно. Значение “parkingtime” определяет максимальное время, которое звонок может находиться в режиме удержания. По истечении этого времени абонент возобновит разговор с оператором. Значение “parkingtime” должно быть достаточным, чтобы избежать раннего возврата звонка оператору.

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 по ссылке: Скачать Creatio Messaging Service. Для корректной установки CMS архив необходимо предварительно распаковать. В случае запуска установки непосредственно из архива программа-архиватор может внести сбои в работу установщика.

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

  3. Запустите файл Creatio Messaging Service Install.msi на том компьютере, который будет использоваться в качестве сервера обмена сообщениями, и выполните установку.

  4. Убедитесь, что служба “TerrasoftMessagingService” запущена в приложении Службы (Services) Windows. Если служба “TerrasoftMessagingService” не запущена, то запустите ее вручную.

  5. Перейдите в папку с файлами сервиса ~\BPMonline Messaging Service. Пропишите в конфигурационном файле “Terrasoft.Messaging.Service.exe.config” следующие параметры для коннектора Asterisk:

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

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

    Наименование параметра

    Назначение параметра

    FilePath

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

    URL

    Параметр для указания IP-адреса сервера Asterisk.

    protocol

    Параметр позволяет выбрать тип протокола: SIP или PJSIP. Чтобы узнать, какой тип протокола необходимо использовать, обратитесь к администраторам своей АТС.

    Port

    Порт AMI протокола. Значение по умолчанию “5038”.

    OriginateContext

    Команда используется для инициации звонка по номеру из Creatio. Параметр содержит название контекста, в котором будет выполнен звонок на номер телефона пользователя. Значение по умолчанию для FreePBX — “from-internal”.

    parkingLotContext

    Контекст для инициации звонка на получение паркованной линии. Значение по умолчанию — “originateContext”.

    AutoPauseOnCommutationStart

    Настройка предназначена для корректной работы с очередями Asterisk. Если включена, то Creatio будет ставить оператора на паузу во всех очередях после ответа на звонок. Используется для исключения возможности приема второго звонка во время обработки и/или постановки на удержание текущего звонка.

    queueExtensionFormat

    Формат определения канала звонка при получении звонков из очереди. При использовании LocalChannel в FreePBX значение по умолчанию — “Local/{0}@from-queue”.

    sendRingStartedOnRingingState

    Признак отвечает за корректную обработку получения звонка из очереди. При установленном признаке Creatio будет отображать звонок у пользователя после получения AMI события “NewState” с параметром Ringing. Значение по умолчанию — “включено”.

    traceQueuesState

    Настройка предназначена для диагностики состояния оператора в очередях. Используется для отладки, если оператор при обработке звонка в Creatio получает второй звонок из очереди. Информация о состоянии операторов выводится в лог-файл коннектора. Значение по умолчанию — “выключено”.

    Пример настроенной конфигурации:

    <asterisk   filePath=" "url="10.0.15.185" port="5038"
    
    userName="bpm" secret="bpm" originateContext="from-internal"
    
    parkingLotContext="from-internal" autoPauseOnCommutationStart="true"
    
    queueExtensionFormat="Local/{0}@from-queue/n" asyncOriginate="true"
    
    sendRingStartedOnRingingState="true" traceQueuesState="false"
    
    protocol="SIP/" packetInfoConfig=""/> 
  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 выполните команду docker --version в терминале (консоли) Linux-машины.

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

  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": "Исходящий контекст",
    
       "parkingLotContext": "Контекст парковки",
    
       "autoPauseOnCommutationStart": "true",
    
       "queueExtensionFormat": "Local/{0}@from-queue/n",
    
       "asyncOriginate": "true",
    
       "sendRingStartedOnRingingState": "true",
    
       "traceQueuesState": "false",
    
       "protocol": "Используемый тип протокола – SIP/ либо PJSIP/",
    
       "packetInfoConfig": "Дополнительные параметры пакетов для обработки в конфигурации",
    
       "filePath": ""
    
    }
  7. Выполните команду sudo docker-compose up -d для запуска сервиса. Также в текущем каталоге будет создана папка logs.

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

    Наименование параметра

    Назначение параметра

    FilePath

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

    URL

    Параметр для указания IP-адреса сервера Asterisk.

    protocol

    Параметр позволяет выбрать тип протокола: SIP или PJSIP. Чтобы узнать, какой тип протокола необходимо использовать, обратитесь к администраторам своей АТС.

    Port

    Порт AMI протокола. Значение по умолчанию “5038”.

    OriginateContext

    Команда используется для инициации звонка по номеру из Creatio. Параметр содержит название контекста, в котором будет выполнен звонок на номер телефона пользователя. Значение по умолчанию для FreePBX — “from-internal”.

    parkingLotContext

    Контекст для инициации звонка на получение паркованной линии. Значение по умолчанию — “originateContext”.

    AutoPauseOnCommutationStart

    Настройка предназначена для корректной работы с очередями Asterisk. Если включена, то Creatio будет ставить оператора на паузу во всех очередях после ответа на звонок. Используется для исключения возможности приема второго звонка во время обработки и/или постановки на удержание текущего звонка.

    queueExtensionFormat

    Формат определения канала звонка при получении звонков из очереди. При использовании LocalChannel в FreePBX значение по умолчанию — “Local/{0}@from-queue”.

    sendRingStartedOnRingingState

    Признак отвечает за корректную обработку получения звонка из очереди. При установленном признаке Creatio будет отображать звонок у пользователя после получения AMI события “NewState” с параметром Ringing. Значение по умолчанию — “включено”.

    traceQueuesState

    Настройка предназначена для диагностики состояния оператора в очередях. Используется для отладки, если оператор при обработке звонка в Creatio получает второй звонок из очереди. Информация о состоянии операторов выводится в лог-файл коннектора. Значение по умолчанию — “выключено”.

    Пример настроенной конфигурации:

    "asterisk": {
    
       "url": "Имя_или_адрес_сервера_Asterisk",
    
       "port": "Порт_сервера_Asterisk",
    
       "userName": "Логин Asterisk",
    
       "secret": "Пароль Asterisk",
    
       "originateContext": "Исходящий контекст",
    
       "parkingLotContext": "Контекст парковки",
    
       "autoPauseOnCommutationStart": "true",
    
       "queueExtensionFormat": "Local/{0}@from-queue/n",
    
       "asyncOriginate": "true",
    
       "sendRingStartedOnRingingState": "true",
    
       "traceQueuesState": "false",
    
       "protocol": "Используемый тип протокола – SIP/ либо PJSIP/",
    
       "packetInfoConfig": "Дополнительные параметры пакетов для обработки в конфигурации",
    
       "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. Обновите страницу вашего браузера, чтобы внесенные изменения вступили в силу.