Подскажите, как нужно доработать эту часть диалплана, чтобы звонок повторялся не только при занятом номере, но и когда вызываемый абонент не ответил в течение 30 секунд (т.е. чтобы вызов сбрасывался и повторялся по-новой).
[macro-out-call-redial]
exten => s,1,NoOp(Out call)
exten => s,n,MixMonitor(/var/www/html/aster/sounds/${UNIQUEID}.wav,ba)
exten => s,n(redial),Dial(SIP/${ARG1}@mtt,,tT)
exten => s,n,NoOp(${DIALSTATUS})
exten => s,n,GotoIf($["${DIALSTATUS}"="BUSY"]?red)
exten => s,n,Hangup
exten => s,n(red),Playback(busy1)
exten => s,n,Wait(5)
;exten => s,n,StopPlayTones()
exten => s,n,Goto(redial)
спросил 2014-07-16 12:59:56 +0400
Аноним
[macro-out-call-redial]
exten => s,1,NoOp(Out call)
exten => s,n,MixMonitor(/var/www/html/aster/sounds/${UNIQUEID}.wav,ba)
exten => s,n,Set(loop=3)
exten => s,n(redial),Dial(SIP/${ARG1}@mtt,30,gtT)
exten => s,n,NoOp(${DIALSTATUS})
exten => s,n,GotoIf($["${DIALSTATUS}"="BUSY"]?red)
exten => s,n,Set(loop=$[ ${loop} - 1 ])
exten => s,n,GotoIf($[ ${loop} <= 0 ]?hangup)
exten => s,n,Wait(0.1)
exten => s,n,GotoIf($["${DIALSTATUS}"!="ANSWERED"]?redial)
exten => s,n(hangup),Hangup
exten => s,n(red),Playback(busy1)
exten => s,n,Wait(5)
;exten => s,n,StopPlayTones()
exten => s,n,Goto(redial)
Задан: 2014-07-16 12:59:56 +0400
Просмотрен: 481 раз
Обновлен: Jul 17 '14
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
exten => s,n,GotoIf($["${DIALSTATUS}"="NO-ANSWER"]?red)
awsswa ( 2014-07-16 13:52:01 +0400 )редактироватьПроблема в том, что выполнение диалплана останавливается, если абонент не ответил: http://c2n.me/ix97U4.png Т.е. на шаг определения DIALSTATUS не переходит. Как этого избежать?
romaro ( 2014-07-16 18:45:39 +0400 )редактироватьexten => s,n(redial),Dial(SIP/${ARG1}@mtt,30,tT) - вот вам ваши 30 секунд
awsswa ( 2014-07-16 19:50:35 +0400 )редактировать