Подскажите, кто знает, как на сервере обмена сообщениями  установить сертификат безопасности и указать его в конфигурационных файлах сервиса сообщений, чтобы использовать wss://

Нравится

4 комментария

Добрый день.

1. получить сертификат. Например, на https://letsencrypt.org/ru/

2. Сформировать сертификат с расширением pfx

 

openssl pkcs12 -export -nokeys -in certificate.cer -out certificate.pfx



3. Установить Messaging Service.

4. Разместить pfx его в папке Messaging Service.

5. Прописать параметры pfx в конфиге Messaging Service

<server name="ClientWebSocketService"
serviceName="ClientWebSocketService" ip="Any" port="2013" mode="Tcp"
 idleSessionTimeOut="10000" maxCommandLength="4096" security="tls12" > //Заменить tls на tls1.2 
 
   <certificate filePath="certificate.pfx" password="111"></certificate>
</server>

 

Добрый день!

 

Дополню ответ Игоря.

 

Так же кроме всех этих действий необходимо дополнительно в конфигурационном файле в секции <servers> удалить или “закомментировать” следующий конфигурационный блок:

<server name="ClientWebSocketService"

serviceName="ClientWebSocketService" ip="Any" port="2013" mode="Tcp"

idleSessionTimeOut="10000" maxCommandLength="4096"

maxConnectionNumber="10000">

</server>

 

А так же после внесения изменений в конфигурационный файл необходимо в системной настройке “Сервер обмена сообщениями“ (код “SysMsgServerNode“) изменить адрес подключения к серверу телефонии с ws:// на wss://.

 

Также подробная инструкция по настройке защищенного соединения wss размещена на Академии: https://academy.terrasoft.ru/docs/user/drugie_reshenija/konnektory_tele…

и не забыть положить файл сертификата в корневой каталог TMS - C:\Program Files (x86)\BPMonline Messaging Service

Коновалов Игорь, К сожалению, по вашему мануалу не получилось.  На http всё работает. 

Сертификат сгенерированный таким образом (без ключа) TMS не принимает:

----

2022-06-16 15:37:57,624 [4] ERROR ClientWebSocketService - Failed to parse 'Tls1.2' to SslProtocol!

2022-06-16 15:37:57,624 [4] ERROR DefaultBootstrap - Failed to setup server instance!

----

Свой pfx сертификат, которым подписан сайт в err.log выдаёт:

----

2022-06-16 15:23:55,676 [15] ERROR ClientWebSocketService - Session: ef6bdf3c-7488-45ea-93ae-05cd0d4a59bb/192.168.2.75:49881

Unexpected error

System.IO.IOException: Сбой операции дешифрования, см. внутреннее исключение. ---> System.ComponentModel.Win32Exception: При обработке сертификата произошла неизвестная ошибка

   --- Конец трассировки внутреннего стека исключений ---

   в System.Net.Security._SslStream.EndRead(IAsyncResult asyncResult)

   в SuperSocket.SocketEngine.AsyncStreamSocketSession.OnStreamEndRead(IAsyncResult result)

----

 

В конфиг файле закомментировал строку без SSL, раскомментировал с ssl как в инструкции:

 

----

<servers>

      <!--

      <server name="ClientWebSocketService" serviceName="ClientWebSocketService" ip="Any" port="2013" mode="Tcp"

      idleSessionTimeOut="10000" maxRequestLength="4096" maxCommandLength="4096" maxConnectionNumber="10000" SendTimeOut="30000">

      </server>-->

       <!--Support for WebSocket secure connection. Replace previous and set correct certificate name and password. -->

           <server name="ClientWebSocketService" serviceName="ClientWebSocketService" ip="Any" port="2013" mode="Tcp"

        idleSessionTimeOut="10000" maxRequestLength="4096" maxCommandLength="4096" security="Tls12">

            <certificate filePath="cert-domain.pfx" password=""></certificate>

        </server>

----

Явно проблемы в связке сертификата и его скармливанием ТМСу, но что делать не пойму. Если исправить Tls12 на Tls1.2 получаю такую ошибку в err.log:

----

2022-06-16 15:30:08,380 [6] ERROR ClientWebSocketService - Session: 4ba204cb-1f12-4925-933f-547e63fe4ea8/192.168.2.75:49894

Unexpected error

System.IO.IOException: Сбой операции дешифрования, см. внутреннее исключение. ---> System.ComponentModel.Win32Exception: При обработке сертификата произошла неизвестная ошибка

   --- Конец трассировки внутреннего стека исключений ---

   в System.Net.Security._SslStream.EndRead(IAsyncResult asyncResult)

   в SuperSocket.SocketEngine.AsyncStreamSocketSession.OnStreamEndRead(IAsyncResult result)

2022-06-16 15:30:16,231 [4] ERROR ClientWebSocketService - Failed to parse 'Tls1.2' to SslProtocol!

2022-06-16 15:30:16,231 [4] ERROR DefaultBootstrap - Failed to setup server instance!

 

 

 

Показать все комментарии

Коллеги, всем добрый день! 

 

Подскажите, пожалуйста, можем ли мы запросом к коннектору (используется коннектор к Asterisk от Terrasoft) получить перечень пользователей, у которых состояние в системе (связанные с телефонией) = "Активен"? 

 

Нравится

1 комментарий

Напрямую через коннектор такой возможности нет, но вы можете отправить запрос на выборку пользователей и их состояний в приложение либо напрямую в БД.

Сессии операторов хранятся в таблице OperatorSession, состояние в колонке OperatorStateId. Также состояние операторов в очереди можно найти в таблице QueueOperator.

Как вариант - вы можете написать собственный сервис и в нём использовать базовый класс OperatorSessionRepository и метод GetAllActiveOperators.

Показать все комментарии

Рады представить новое дополнение для интеграции с телефонией Asterisk!

 

Решение расширяет возможности базового коннектора и позволяет получить аудиозаписи звонков в интерфейсе системы, а также импортирует звонки неавторизованных сотрудников.

 

Дополнение работает со всеми версиями Астериск. Использовать можно как совместно, так и раздельно с Asterisk Connector for Creatio.

 

Детали на сайте!

Нравится

Поделиться

0 комментариев
Показать все комментарии
2019-10-04 10:53:09,1009 [Telephony] System.Net.Sockets.SocketException (0x80004005): The operation completed successfully
   at Terrasoft.Messaging.Asterisk.AsteriskClient.get_Instance()
   at Terrasoft.Messaging.Asterisk.AsteriskManager.CreateConnection(IDictionary`2 parameters, IDictionary`2 sessionServiceParameters)
   at Terrasoft.Messaging.Core.MessagingServer.ProcessMsgCommand(MsgCommandInfo msgCommand, WebSocketSession session)

Кто нибудь сталкивался с ошибкой сокетов на Астериске?

Приложение BPM и MessageSerivce находятся на одной машине.

Подключение по http.

Коннект к машине Астериска есть, подключение проходит успешно, софтфон подключается.

Нравится

2 комментария

В Asterisk такое же SocketException (0x80004005) было при использовании старой версии Terrasoft Messaging Service. Необходимо будет обновить версию TMS. Скачать можно, например, тут, но лучше запросить актуальную в службе поддержки.

Инструкция по переустановке 

 

Перед обновлением необходимо сохранить файл Terrasoft.Messaging.Service.exe.config и сертификат(если он используется) из имеющегося TMS, чтобы потом перенести настройки во вновь установленный:

 

  1. Сохраняем файл настроек
  2. Останавливаем службу TMS
  3. Удаляем TMS
  4. Перезагружаем сервер
  5. Устанавливаем новую версию TMS
  6. Переносим настройки (сверяем настройки в файле)
  7. Запускаем службу
  8. Проверяем работоспособность.

Возможно кому-то еще поможет, вот еще возможные причины этой ошибки:

1) На сервере не установлен компонент Websocket

2) Версия .net framework ниже 4.7.2

3) Используется старая версия службы интеграции.(Terrasoft Messaging Service)

Показать все комментарии

Добрый день, коллеги.

Не могли бы подсказать механизм работы интеграции с Asterisk и возможность расширения перечня данных передаваемых в bpmonline из данной телефонии.

В частности, необходимо из Asterisk получить поле "Внешний номер". 

Данное значение предполагается записать в пользовательское поле.

Как данное значение добавить к перечню полей, заполняемому при осуществлении звонка?

Есть ли Документация (помимо представленной в Академии), раскрывающее магию взаимодействия Bpmonline и Asterisk AMI посредством BPMonline Messaging Service?

Нравится

7 комментариев
Лучший ответ

Вариантов много написать сторонее приложение которое будет читать файл логов и отправлять его в BPM (оффлайн режим) За настройку логирования смотрите документацию по продукты Asterisk 

Я думаю проще данную информацию будет получить из логов Asterisk. Если вам она не нужна сразу во время звонка, то посмотрите документацию Asterisk по логированию звонковю

Григорий Чех,

Можно подробнее и как обработать эту информацию на стороне Bpmonline?

Вариантов много написать сторонее приложение которое будет читать файл логов и отправлять его в BPM (оффлайн режим) За настройку логирования смотрите документацию по продукты Asterisk 

Меня интересует архитектура и реализация со стороны bpmonline.

Есть ли у кого документация по MessagingService?

Игорь, добрый день.

Документацию по настройке интеграции с Asterisk и по её архитектуре можно найти в академии. Также информация есть в комментариях в самом файле Terrasoft.Messaging.Service.exe.config.

 

Мотков Илья,

Это я изучил в первую очередь.

Но ни в академии, ни на community не нашёл информации по расширению интеграции с Asterisk AMI.

+ на SDKNETAPI Не нашёл описание класса MessaginService (

Интересно, а развивается ли вообще SDKNETAPI?)

 

Документация по классам серверной части ядра платформы (.NET Core API) доступна на отдельном web-ресурсе.

Показать все комментарии

Здравствуйте!

Хотим выбрать для системы коннектор Bpm'online Asterisk Connector. Сейчас занимаемся изучением вопроса и возможных "но".

Например, возник вопрос, как фиксируется звонок, если Клиент позвонил, начал разговор с Оператором 1, Оператор фиксирует Обращение. Звонок сорвался, Клиент перезвонил, попал на  Оператора 2, тот перевёл его на Оператора 1. Как звонок зафиксируется в системе? Возможно ли эти два звонка привязать к одному Обращению?

Или если переадресация от Оператора на другого Сотрудника. Это будет один и тот же звонок в системе или 2 звонка - один Оператору, другой - Сотруднику?  

Если кто-то может поделиться своим опытом и слабыми местами коннектора, о которых нужно знать, буду благодарна. 

Нравится

1 комментарий

Всё нижеупомянутое — общее для разных систем телефонии, не только Asterisk:

В первой ситуации, конечно, будет два звонка.

При поступлении в bpm'online service звонка оператору справа под информацией о входящем звонке есть кнопки запуска процессов создания нового обращения и привязки к существующему:

scr_section_service_requests_buttons_on_call.png 

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

Сравнение функциональности Asterisk и других АТС есть здесь.

Показать все комментарии

Здравствуйте, уважаемое сообщество!

Настроил телефонию согласно инструкции https://academy.terrasoft.ru/documents/sales-team/7-7-0/kak-nastroit-int...
Всё отлично, звонок проходит, слышно хорошо, но у нас несколько менеджеров и каждому привязана своя симка, разделение на стороне Astresk'а выполнено при помощи контекстов, можно ли как-то настроить для каждого пользователя свой контекст или передавать его при вызове, а то при настройке по умолчанию в Terrasoft.Messaging.Service.exe.config для Asteriks originateContext="from-internal" и вызов для всех менеджеров идёт с одного номера.

7.9.0.1228

Нравится

2 комментария

Здравствуйте, Александр!

Насколько мне известно в Asterisk можно настроить отдельно очередь для входящих и исходящих звонков. Попробуйте выполнить настройку исходящих звонков создав для каждого менеджера отдельную очередь и привязав к ней отдельную сим-карту и линию менеджера. Про настройку очереди для исходящих звонков в Asterisk есть много статей. Например, https://habrahabr.ru/post/204048/ или https://habrahabr.ru/post/180445/

"Мотков Илья" написал:

Здравствуйте, Александр!

Насколько мне известно в Asterisk можно настроить отдельно очередь для входящих и исходящих звонков. Попробуйте выполнить настройку исходящих звонков создав для каждого менеджера отдельную очередь и привязав к ней отдельную сим-карту и линию менеджера. Про настройку очереди для исходящих звонков в Asterisk есть много статей. Например, https://habrahabr.ru/post/204048/ или https://habrahabr.ru/post/180445/


Спасибо, буду копать в этом направлении

Показать все комментарии

Коллеги, добрый день.

Есть коробочная установка sales 7.8 и коробочный AsteriskNOW (под управлением FreePBX), на Asterisk'е настроено два внутренних номера 101 и 102 (оба в контексте from-internal) с созданием соответствующих пользователей. Протокол PJSIP. Звонки с софтфонов между этими номерами нормально проходят.

Установлен и настроен коннектор BPM - Asterisk, в консоли выдаётся сообщение об успешном подключении к серверу в профиле отображается статус Активен. Но при попытке совершения вызова из bpm выдаётся ошибка:
[Telephony] {"connectionUId":"701d02fe-d0a9-4b81-8a97-c00afb97b22c","eventType":0,"content":"{"errorType":0,"data":"Asterisk error: OriginateResponse: Failure, Target Number = 102"}","contentType":"MsgErrorInfo"} 1 all-combined.js:1813:491

В консоли Астериска при этом появляется:
WARNING[7801]: chan_sip.c:6084 create_addr: Purely numeric hostname (101), and not a peer--rejecting!

Т.е. Астериск отклоняет осуществление вызова с прописанного в bpm номера (101).

В связи с этим вопрос: подскажите, пожалуйста, кто сталкивался - какие дополнительные настройки нужны в коробочной Asterisk/FreePBX для запуска интеграции?

Нравится

2 комментария

Александр, добрый день.

Исходя из приведенных данных можно предположить, что Originate выполняется на peer "SIP/102" (исходя из того, что предупреждение от модуля chan_sip). Вы же ранее указали, что используете модуль PJSIP. Наиболее вероятно, что проблема в этом. Больше точно можно было бы сказать из полного запроса Orginate и полного ответа. Посмотреть полную информацию можно в файлах логов интеграционной службы TMS. Если предположение верное, обратитесь, пожалуйста, в поддержку для получения интеграционной службы, которая работает с PJSIP модулем.

Да, дело было в модуле pjsip. Поменял его в Asterisk на sip, ошибка ушла.
Спасибо.

Показать все комментарии

В BPMOnline 7.2 (813) AgentDesktop Demo существуют поля для настройки asterisk. К сожалению, заставить все заработать не вышло, потому возникли вопросы. Прошу помочь разобраться.
Что было сделано
1. В системных настройках "Библиотека обмена сообщениями по умолчанию" было выбрано "Библиотека интеграции с телефонией по протоколу Asterisk (AMI)".
2. В системных настройках "Сервер обмена сообщениями" была добавлена "localhost:2011"
3. В профиле пользователя в пункте настройки Call Centre сохранены настройки. Правда, выпадающий список "Технология" был пуст, справочник с похожим названием найти не удалось, и таблица в БД ConnectionTechnologies также пуста.
В итоге
1. CTIPanel, к сожалению, не отобразилась.
2. Рядом с номерами телефонов контрагентов и контактов появился ярлычок трубки
При нажатии на трубочку в консоль отладки браузера выводится callMake('номер телефона') и тишина, никаких ошибок.
Вопросы
1. Я так понимаю, на данном этапе интеграция с asterisk не реализована до конца?
2. Как добиться отображения ctipanel
3. В каком модуле (процессе) обрабатывается вызов callMake?

Нравится

2 комментария

Здравствуйте, Эмин!

Для интеграции с Asterisk рекомендуем использовать BPMonline Agent Desktop 7.2.0.915 и выше.

Для интеграции с Asterisk используется дополнительно Terrasoft Messaging Service (служба, которая должна быть установлена на одном из компьютеров в локальной сети). Браузер обращается к Terrasoft Messaging Service, Terrasoft Messaging Service обращается к Asterisk.

Касательно первого пункта, все верно.

Касательно второго пункта, в системной настройке "Сервер обмена сообщениями" задается строка подключения к Terrasoft Messaging Service. Установлена ли она у Вас? Не рекомендуем в данной настройке использовать localhost, вместо этого используйте ip-адрес сервера, на котором установлена Terrasoft Messaging Service. Правильный вид: ws://ip-адрес:2013 (обратите внимание, что порт не 2011).

Касательно третьего пункта, указывать "Технология" не нужно, в будущих версиях данный параметр исключат из страницы настроек.

CTIPanel не отображается из-за того, что соединение с сервером телефонии не установлено.

Также, обратите внимание на то, что на рабочем месте должен быть установлен софтфон, настроенный на ту же учетную запись пользователя телефонии, которая указана в профиле пользователя в пункте настройки Call Centre.

"Резвов Роман" написал:

Огромное спасибо, Роман! Запросили демо BPM AgentDesktop(915), будем разбираться.

Показать все комментарии

Добрый день!

В данный момент для клиента мы реализовываем интеграцию BPMOnline 7.0 и телефонии на базе Asterisk.
Вопросы к сообществу:

  • насколько такая задача актуальна для других клиентов?
  • насколько такое решение будет интересно как проект/продукт?
  • есть ли у кого то еще опыт реализации такой интеграции?

Нравится

5 комментариев

Здравствуйте, Александр.

Вопросом интеграции с Asterisk занимался целый ряд наших партнеров (http://www.community.terrasoft.ru/forum/topic/7025), так что можно сделать вывод, что вопрос актуален для клиентов.

Судя по активному обсуждению на Community (http://www.community.terrasoft.ru/forum/topic/7931) такое решение будет интересно и востребовано.

Интеграции реализовывались в рамках проектных решений как для 3.Х, так и для BPMonline

Александр,
-задача очень актуальная,
-могу судить только по финансовой отрасли, так как ею занимаюсь: такое решение будет интересно как поставка продукта (коннектор) + настройки логики работы КЦ. Безусловно, нужно сопровождение коннектора, чтобы в случае изменений (апгрейдов) на стороне Астериск, вы выпускали апгрейд для коннектора своим клиентам.

Какая функциональность реализована или планируется? Расскажите подробнее!

"Шевченко Юрий" написал:Какая функциональность реализована или планируется?

2 основные задачи - звонок в BPMOnline из карточек контакта/контрагента; подъем карточки контакта/контрагента при входящем звонке.

В отличие от обсуждения мы реализовываем звонки именно в интерфейсе BPMOnline, чтобы пользователь работал в единой системе.

"Александр Свистунов" написал:В данный момент для клиента мы реализовываем интеграцию BPMOnline 7.0 и телефонии на базе Asterisk.

Александр, эта интеграция уже реализована?

"Владимир Соколов" написал:эта интеграция уже реализована?

Владимир, в итоге в проекте обновились до 7.2 Agent Desktop, где есть нативная поддержка Asterisk через AMI.

Показать все комментарии