Интеграция с 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 == |
На эту тему в сети можно множество руководств. Например: [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 укажите в файле 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 входящих звонков. Обеспечивается функционал:
- поиска договоров по номеру АОН, по наименованию (если не найден автоматически);
- карточка уже найденного договора отображается в нижней части экрана при его выделении, позволяя просмотреть информацию в биллинге;
- сохранение нового телефона в найденный договор;
- заведение связанного с договором процесса либо привязка сообщения (звонка) к уже существующему процессу.
При принятии звонка у оператора должно открываться примерно такое окно для обработки сообщения:
Настройка по пунктам.
Содержание |
Описание среды
- Адрес 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 на наличие ошибок.
В оснастке сообщения зарезервировать номер, совершить на него звонок и ожидать открытия обработчика сообщения (см. скрин в начале статьи).
Для удобства можно настроить в конфигурации пользователя открытие оснастки сообщений сразу после логина.