Интеграция с Asterisk для обработки входящих звонков

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
 
(4 промежуточные версии не показаны)
Строка 2: Строка 2:
Обеспечивается функционал:
Обеспечивается функционал:
# поиска договоров по номеру АОН, по наименованию (если не найден автоматически);
# поиска договоров по номеру АОН, по наименованию (если не найден автоматически);
 +
# карточка уже найденного договора отображается в нижней части экрана при его выделении, позволяя просмотреть информацию в биллинге;
# сохранение нового телефона в найденный договор;
# сохранение нового телефона в найденный договор;
# заведение связанного с договором процесса либо привязка сообщения (звонка) к уже существующему процессу.
# заведение связанного с договором процесса либо привязка сообщения (звонка) к уже существующему процессу.
При принятии звонка у оператора должно открываться примерно такое окно для обработки сообщения:
При принятии звонка у оператора должно открываться примерно такое окно для обработки сообщения:
-
[[Изображение:aster_integr_message.png|thumb|300px|Обработка сообщения]]  
+
{|
 +
|- valign=top
 +
|[[Изображение:aster_integr_message.png|thumb|300px|Обработка сообщения]]  
 +
|}
Настройка по пунктам.
Настройка по пунктам.
 +
== Описание среды ==
 +
* Адрес Asterisk: 192.168.20.2
 +
* Адрес BGCRM: 192.168.20.10
 +
* В системе настроен плагин BGBilling, к которому подключен биллинг с идентификатором bg.
 +
* Параметр договора типа Телефон в биллинге: 27
 +
* Параметр типа "text" пользователя BGCRM с предлагаемым номером: 4
-
== Настройка Asterisk ==
+
== Asterisk ==
На эту тему в сети можно множество руководств. Например: [http://harchive.today/dnC9f#http://habrahabr.ru/post/154933/ http://habrahabr.ru/post/154933/]
На эту тему в сети можно множество руководств. Например: [http://harchive.today/dnC9f#http://habrahabr.ru/post/154933/ http://habrahabr.ru/post/154933/]
Настройку удобнее производить с помощью оболочки FreePBX, а ещё проще использовать готовый дистрибутив [http://asterisk.org/downloads AsteriskNOW],  
Настройку удобнее производить с помощью оболочки FreePBX, а ещё проще использовать готовый дистрибутив [http://asterisk.org/downloads AsteriskNOW],  
включающий в себя сборку ОС с Asterisk ом и FreePBX.
включающий в себя сборку ОС с Asterisk ом и FreePBX.
-
Для связки настройка AMI...
+
Для настройки AMI укажите в файле manager.conf секрет и адрес доступа.
-
.....
+
<source lang="bash">
 +
[general]
 +
enabled = yes
 +
port = 5038
 +
bindaddr = 0.0.0.0
 +
 
 +
[crm]
 +
secret = 55555
 +
deny=0.0.0.0/0.0.0.0
 +
permit=192.168.20.0/255.255.255.0
 +
permit=127.0.0.1/255.255.255.0
 +
read = call
 +
writetimeout = 5000
 +
</source>
 +
 
 +
== BGCRM ==
 +
В конфигурации сервера в переменной createOnStart добавить следующие классы:
 +
<source lang="bash">
 +
createOnStart=ru.bgcrm.plugin.asterisk.AMIManager,ru.bgcrm.event.listener.MessageTypeCallListener
 +
</source>
 +
 
 +
Так же в конфигурации определяется тип сообщения и обработчик конфгурация AMIManager.
 +
<source lang="bash">
 +
messageType.1.title=Звонки
 +
messageType.1.class=ru.bgcrm.dao.message.MessageTypeCall
 +
messageType.1.search.1.title=Авто (номер)
 +
messageType.1.search.1.class=ru.bgcrm.plugin.bgbilling.dao.MessageTypeSearchCall
 +
messageType.1.search.1.billingId=bg
 +
messageType.1.search.1.commands=contractByPhoneParam:27
 +
messageType.1.search.1.stringExpressionNumberPreprocess=if( numberFrom.length() == 11 ){ numberFrom = numberFrom.substring(1)}; return numberFrom;
 +
messageType.1.search.2.title=По номеру/примечанию
 +
messageType.1.search.2.class=ru.bgcrm.plugin.bgbilling.dao.MessageTypeSearchContractByTitleAndComment
 +
messageType.1.search.2.billingId=bg
 +
messageType.1.saver.class=ru.bgcrm.plugin.bgbilling.dao.MessageTypeContactSaverPhone
 +
messageType.1.saver.paramId=27
 +
messageType.1.offerNumberFromParamId=4
 +
 
 +
# AMI
 +
asterisk:amiManager.1.messageTypeId=1
 +
asterisk:amiManager.1.host=192.168.20.2
 +
asterisk:amiManager.1.port=5038
 +
asterisk:amiManager.1.login=crm
 +
asterisk:amiManager.1.pswd=55555
 +
</source>
 +
 
 +
JEXL макрос stringExpressionNumberPreprocess обрезает первый символ 11 значных номеров.
 +
 
 +
== Запуск ==
 +
После произведения настройки перезапустить сервер BGCRM и проглядеть bgcrm.log на наличие ошибок.
 +
 
 +
В оснастке сообщения зарезервировать номер, совершить на него звонок и ожидать открытия обработчика сообщения (см. скрин в начале статьи).
 +
 
 +
Для удобства можно настроить в конфигурации пользователя открытие оснастки сообщений сразу после логина.

Текущая версия на 04:39, 25 апреля 2014

Данное руководство описывает процесс интеграции BGBilling, BGCRM и Asterisk для обработки в BGCRM входящих звонков. Обеспечивается функционал:

  1. поиска договоров по номеру АОН, по наименованию (если не найден автоматически);
  2. карточка уже найденного договора отображается в нижней части экрана при его выделении, позволяя просмотреть информацию в биллинге;
  3. сохранение нового телефона в найденный договор;
  4. заведение связанного с договором процесса либо привязка сообщения (звонка) к уже существующему процессу.

При принятии звонка у оператора должно открываться примерно такое окно для обработки сообщения:

Обработка сообщения

Настройка по пунктам.

Содержание

Описание среды

  • Адрес Asterisk: 192.168.20.2
  • Адрес BGCRM: 192.168.20.10
  • В системе настроен плагин BGBilling, к которому подключен биллинг с идентификатором bg.
  • Параметр договора типа Телефон в биллинге: 27
  • Параметр типа "text" пользователя BGCRM с предлагаемым номером: 4

Asterisk

На эту тему в сети можно множество руководств. Например: http://habrahabr.ru/post/154933/ Настройку удобнее производить с помощью оболочки FreePBX, а ещё проще использовать готовый дистрибутив AsteriskNOW, включающий в себя сборку ОС с Asterisk ом и FreePBX.

Для настройки AMI укажите в файле manager.conf секрет и адрес доступа.

[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
 
[crm]
secret = 55555
deny=0.0.0.0/0.0.0.0
permit=192.168.20.0/255.255.255.0
permit=127.0.0.1/255.255.255.0
read = call
writetimeout = 5000

BGCRM

В конфигурации сервера в переменной createOnStart добавить следующие классы:

createOnStart=ru.bgcrm.plugin.asterisk.AMIManager,ru.bgcrm.event.listener.MessageTypeCallListener

Так же в конфигурации определяется тип сообщения и обработчик конфгурация AMIManager.

messageType.1.title=Звонки
messageType.1.class=ru.bgcrm.dao.message.MessageTypeCall
messageType.1.search.1.title=Авто (номер)
messageType.1.search.1.class=ru.bgcrm.plugin.bgbilling.dao.MessageTypeSearchCall
messageType.1.search.1.billingId=bg
messageType.1.search.1.commands=contractByPhoneParam:27
messageType.1.search.1.stringExpressionNumberPreprocess=if( numberFrom.length() == 11 ){ numberFrom = numberFrom.substring(1)}; return numberFrom;
messageType.1.search.2.title=По номеру/примечанию
messageType.1.search.2.class=ru.bgcrm.plugin.bgbilling.dao.MessageTypeSearchContractByTitleAndComment
messageType.1.search.2.billingId=bg
messageType.1.saver.class=ru.bgcrm.plugin.bgbilling.dao.MessageTypeContactSaverPhone
messageType.1.saver.paramId=27
messageType.1.offerNumberFromParamId=4
 
# AMI
asterisk:amiManager.1.messageTypeId=1
asterisk:amiManager.1.host=192.168.20.2
asterisk:amiManager.1.port=5038
asterisk:amiManager.1.login=crm
asterisk:amiManager.1.pswd=55555

JEXL макрос stringExpressionNumberPreprocess обрезает первый символ 11 значных номеров.

Запуск

После произведения настройки перезапустить сервер BGCRM и проглядеть bgcrm.log на наличие ошибок.

В оснастке сообщения зарезервировать номер, совершить на него звонок и ожидать открытия обработчика сообщения (см. скрин в начале статьи).

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

Личные инструменты