Asterisk IVR после зависания

Я хочу перенаправить звонящего на IVR после того, как набранный номер повесил трубку. Я провел исследование и нашел нечто под названием deadAGI, но не смог заставить его работать. Вы можете найти мой файл extensions_custom.conf ниже.

[from-internal-custom]
exten => 80,1,AGI(custom/agi.php)
exten => 80,2,MixMonitor(${FILE}.WAV)
exten => 80,3,Dial(SIP/custom/${NUMBER})
exten => 80,4,Hangup()
exten => h,1,deadAGI(custom/finish)

Мои файлы AGI верны, я в этом уверен. Мне просто нужно правильно выполнить команду зависания.

Заранее спасибо.


person Deniz B.    schedule 23.01.2016    source источник
comment
Я голосую за то, чтобы закрыть этот вопрос как не относящийся к теме, потому что он выглядит как вопрос конфигурации звездочки, не связанный с программированием.   -  person Jim Garrison    schedule 23.01.2016
comment
Таких вопросов много, но это не проблема.   -  person Deniz B.    schedule 23.01.2016


Ответы (4)


В «основном шоу-приложении Dial» говорится:

    g: Proceed with dialplan execution at the next priority in the current
extension if the destination channel hangs up.

Поэтому измените свой код на:

[from-internal-custom]
exten => 80,1,AGI(custom/agi.php)
exten => 80,2,MixMonitor(${FILE}.WAV)
exten => 80,3,Dial(SIP/custom/${NUMBER},,g)
exten => 80,4,deadAGI(custom/finish)
exten => 80,5,Hangup()

Если вы хотите, чтобы ваш скрипт запускался независимо от того, вызывающий или вызываемый абонент вешает трубку:

e: Execute the 'h' extension for peer after the call ends

So:

[from-internal-custom]
exten => 80,1,AGI(custom/agi.php)
exten => 80,2,MixMonitor(${FILE}.WAV)
exten => 80,3,Dial(SIP/custom/${NUMBER},,ge)
exten => 80,4,deadAGI(custom/finish)
exten => 80,5,Hangup()
exten => h,1,deadAGI(custom/finish)

Ваша идея почти удалась. 'h' — это расширение, а не приоритет.

person viktike    schedule 23.01.2016
comment
Я пробовал этот, но не совсем то, что мне нужно. Если вызываемый абонент вешает трубку, вызывающий абонент остается на линии, но AGI не работает. - person Deniz B.; 25.01.2016

Если вы используете FreePBX и определили IVR в графическом интерфейсе FreePBX, он будет просто доступен вызовом соответствующего контекста диалплана, который вы легко найдете в сгенерированном файле extensions.conf.

exten => h,1,Goto(the_ivr_context,${EXTEN},1)

person Stefano Losi    schedule 23.01.2016

Помните, что никакие медиафайлы не могут быть воспроизведены на мертвых каналах, поэтому сохраните каналы, на которых вы хотите воспроизводить IVR.

person Dhananjay Kashyap    schedule 29.01.2016

Вы не можете играть с мертвым каналом, поток звездочки будет передавать/сбрасывать все связанные с каналом переменные/значения файла deadAGI, чтобы мы могли записать историю вызовов.

person Dhananjay Kashyap    schedule 29.01.2016
comment
Хорошо, спасибо за эту информацию, но как я могу справиться с этим. Я думаю, вы понимаете, что мне нужно, я прав? - person Deniz B.; 01.02.2016
comment
Можно использовать приложение confbridge, когда вызываемый абонент повесит трубку, тогда вы будете единственным участником моста, поэтому настройте файл IVR в настройках confbridge для воспроизведения файла, когда есть только один участник. Это довольно легко. Дайте мне знать, что у вас есть другие вопросы. - person Dhananjay Kashyap; 01.02.2016