Click-to-call на несколько SIP клиентов с одним номером

circle-exclamation

В данной статье приведён пример настройки диалплана Asterisk для ситуации, когда за одним внутренним номером закреплено несколько SIP-устройств. Например, это могут быть несколько физических телефонов или программных клиентов, использующих одну и ту же учётную запись. Диалплан распределяет вызов все эти устройства при инициализации звонка.

В файл /etc/asterisk/extensions_custom.conf добавляем код ниже

circle-exclamation
[from-crm-click2call-example]

exten => _X.,1,NoOp(CRM Click2Call to ${EXTEN})

 ; вызов на все устройства оператора (номер берём из Local/XXX@...)
 same => n,Set(CONTACTS=${PJSIP_DIAL_CONTACTS(${CUT(CUT(CHANNEL,/,2),@,1)})})
 same => n,GotoIf($["${CONTACTS}"=""]?no_contacts)

 same => n,Dial(${CONTACTS},30,g)

 ; ===== оператор ответил =====
 same => n,Set(OPERATOR=${BRIDGEPEER(pjsip,endpoint)})
 same => n,NoOp(Answered by operator ${OPERATOR})

 ; CallerID
 same => n,Set(CALLERID(num)=${OPERATOR})
 same => n,Set(CALLERID(name)=CRM-Call)

 ; Звоним клиенту
 same => n,Dial(Local/${EXTEN}@from-internal,60)

 same => n,Hangup()

exten => _X.,n(no_contacts)
 same => n,NoOp(No operator available)
 same => n,Hangup()

Обновляем диалплан из консоли

В настройках модуля интеграции указываем только что созданный контекст

Сохраняем настройки

При звонке кликом из CRM инициация звонка произойдет на всех устройствах подключенных к соответствующему внутреннему номеру.

Last updated