Автораспределение в версии до 3.0.0
Для автоматического направления входящего звонка на менеджера, ответственного за сущность (контакт\компания\лид) в CRM необходимо, чтобы в Asterisk был включен CURL.
Проверить так: $ asterisk -rx 'core show function CURL'
В результате должны получить описание функции curl. Если функция CURL отсутствует, то ее нужно устанавливать на сервер Asterisk.
Далее в диалплане нужно создать контекст, на который звонок будет приходить ДО голосового приветствия.
Настройка контекста в Asterisk
В файле /etc/asterisk/extensions_custom.conf прописываем контекст. Пример контекста (обратите внимание на код, его нужно изменить):
[bx24transfer]
exten => 1,1,Set(CURLOPT(httptimeout)=5)
exten => 1,n,Set(CURLOPT(conntimeout)=5)
exten => 1,n,Set(TOEXT=${CURL(http://localhost:8077/forward?phone=${CALLERID(num)},,5)})
exten => 1,n,GotoIf($[${TOEXT}]?from-internal,${TOEXT},1:ivr-1,s,1)
где
localhost:8077
– ip-адрес и порт сервера, на котором установлен модуль;
ivr-1,s,1
– контекст с IVR, куда уходит вызов в том случае, если не удалось найти номер в CRM;
CURLOPT(conntimeout)=5
– таймаут 5 сек для выполнения запроса (если на запрос не будут получен ответ, то звонок уйдет дальше по стандартному маршруту).
Логика работы следующая:
Через модуль выполняется запрос в Битрикс24 с поиском ответственного за сущность по полученному номеру
http://localhost:8077/forward?phone=${CALLERID(num)}
Внутренний номер ответственного записывается в переменную
{TOEXT}.
Если внутренний номер найден – звонок переведется на ответственного (
GotoIf
).Если номер не найден – звонок пойдет по второму пути (в данном примере
ivr-1,s,1
).
Есть нужно показать имя сущности на аппарате, то настраиваем контекст следующим образом:
[bx24transfer]
exten => 1,1,Set(CURLOPT(hashcompat)=yes)
exten => 1,n,Set(CURLOPT(httptimeout)=5)
exten => 1,n,Set(CURLOPT(conntimeout)=5)
exten => 1,n,Set(HASH(forwardHash)=${CURL(http://localhost:8077/extendedForward?phone=${CALLERID(num)})})
exten => 1,n,Set(CALLERID(name)=${HASH(forwardHash,name)})
exten => 1,n,GotoIf($[${HASH(forwardHash,number)}]?from-internal,${HASH(forwardHash,numb
Last updated
Was this helpful?