Asterisk - выполнение сценария agi, если вызов не отвечает?

Вот контекст CH1, который я хочу вызвать из файла.call

[CH1]
exten=>9367,1,Playback(welcome);
same =>  n,Agi(agi://localhost/openlock.agi)
same =>  n,Background(CH1_WAVE1)
same =>  n,Hangup()

мой файл.call выглядит так

Channel: DAHDI/1/somemumber
CallerID:xyz
MaxRetries: 3
RetryTime: 40
WaitTime: 25
Context:CH1
Extension: 9367
Priority: 1

Таким образом, моя проблема заключается в том, что если кто-то не отвечает на вызов, мой сценарий AGI не будет выполнен, так есть ли способ выполнить мой сценарий AGI, если на вызов не ответили после 3 повторных попыток?

1 ответ

Решение

Нет способа сделать это за 3 попытки. Но возможно сделать для каждой попытки.

В файле вызова смените канал на Local/somenumber@dialout/n

Создать контекст

[dialout]
exten => _X.,1,Dial(DAHDI/1/${EXTEN},,g)
exten => _X.,2,Goto(${DIALSTATUS},1)
exten => BUSY,1,AGI(busy.agi)
exten => CONGESTION,1,AGI(fail.agi)
exten => FAILED,1,AGI(fail.agi)
exten => NOANSWER,1,AGI(noanaswer.agi)

Также я НЕ РЕКОМЕНДУЮСЯ создавать набор номера, если вы не гуру в звездочке. Используйте движки с открытым исходным кодом. Это действительно много вопросов, о которых вы никогда не задумывались.

Другие вопросы по тегам