Настройка подпрограммы (контекста) SmartCallback
Настройка подпрограммы (контекста) SmartCallback
Собственные функции можно писать разными способами:
• в синтаксисе настраиваемого плана набора (файл «extensions_custom.conf»)
• на языке AEL (Asterisk Extension Language) (файл «extensions.ael»)
• на PHP или на другом языке, используя функцию AGI (Asterisk Gateway Interface)
Наша задача легко решается использованием файла «extensions_custom.conf». Для редактирования требуется открыть меню PBX / Tools / Asterisk File Editor:
открыть для редактирования «extensions_custom.conf» и добавить в него подпрограмму (контекст) [SmartCallback] с номером «661234»:
[SmartCallback]
exten => 661234,1,SET(CALL2B=${ODBC_LASTCALL(${CALLERID(number)})})
exten => 661234,n,Set(DIAL=${DB(DEVICE/${CALL2B}/dial)})
exten => 661234,n,GotoIf($["${DIAL}" = ""]?nfound)
exten => 661234,n,Set(CDR(accountcode)=B:${CDR(accountcode)})
exten => 661234,n,DIAL(${DIAL},12,)
exten => 661234,n,GotoIf($["s${DIALSTATUS}" = "sANSWER"]?endcon)
exten => 661234,n(nfound),Goto(601234,1)
exten => 661234,n(endcon),Hangup()
[ext-did-custom]
include => SmartCallback
Наша функция:
• вызывает еще не созданный нами запрос к статистике вызовов под названием «LASTCALL» (запросу передаем номер звонящего – «CALLERID(number)»)
• находит как следует сделать набор абонента, который вызывал звонящего последним
• добавляет к полю «accountcode» префикс «B:», чтобы в статистике сохранилась информация, что вызов был переключен на сотрудника нашей подпрограммой «SmartCallback»
• пытается в течение 12 секунд вызвать найденного абонента
• если абонент не найден или не ответил, переключает на еще не созданный номер «601234»
Данный текст является ознакомительным фрагментом.