К списку статей

Автоматический перевод звонка на ответственного менеджера

Для автоматического направления входящего звонка на менеджера, ответственного за сущность (контакт\компания\лид) в CRM, необходимо в диалплане АТС создать контекст, на который звонок будет приходить ДО голосового приветствия.

##Настройка астериск В файле /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 сек для выполнения запроса, если данные не будут получены, то звонок уйдет дальше. Логика работы следующая: в переменную передается номер звонящего. Следующим шагом проверяется существование значения этой переменной (в переменной должен быть внутренний номер ответственного за лид/контакт/компанию). Если номер получен - осуществляется перевод звонка на ответственного (from-internal,${TOEXT},1 - в контексте "from-internal" создается звонок на номер TOEXT). Если ответ не получен - звонок попадает на голосовое приветствие (в данном примере это ivr-2,s,1).

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

[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,number)},1:ivr-1,s,1)

Настройка FreePBX

Далее необходимо включить наш кастомный контекст в диалплан FreePBX. Для этого воспользуемся модулем Custom Destinations. Подробнее о Custom Destinations.

  • Переходим по пути Admin → Custom Destinations и нажимаем Add Destination: Image В поле Target указываем bx24transfer,1,1 Нажимаем Submit и Apply Config. Контекст добавлен.

  • Переходим в Inbound Routes выбираем нужное правило и указываем в нем Destination set → Custom Destination. Image

  • Далее нужно модифицировать контекст bx24asterisk так, чтобы звонок по-умолчанию, если не будет найден ответственный, был направлен правильно. Например, необходимо чтобы звонок был направлен не на IVR, а на группу. Переходим в Inbound Routes, выбираем маршрут и в поле Set Destination смотрим название маршрута в Asterisk. Для этого щелкаем правой кнопкой мыши и выбираем Исследовать элемент. Image Откроется окно с исходным кодом страницы в котором мы найдем значение нашего элемента. Image

    В нашем случае это ext-group, 3, 1 - это и есть обозначение маршрута которое мы укажем в контексте вместо ivr-2, s, 1.