Настройка подпрограммы (контекста) 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»

Данный текст является ознакомительным фрагментом.