Asterisk 星号拨号计划防止拨号计划连续重复

Asterisk 星号拨号计划防止拨号计划连续重复,asterisk,Asterisk,我的diaplan中有以下宏,每次来电时都会执行该宏 问题是它正在无限期地重复自己。我希望它重复3次,如果用户没有输入,它应该说再见并退出。谁能帮我做这个吗 谢谢 [macro-test] ;exten => s,1,Answer() ;exten => s,n,Wait(2) exten => s,1,Set(AGISIGHUP=no) exten => s,n,NoOp(AGISUGHUP: ${AGISIGHUP}) exten =&g

我的diaplan中有以下宏,每次来电时都会执行该宏

问题是它正在无限期地重复自己。我希望它重复3次,如果用户没有输入,它应该说再见并退出。谁能帮我做这个吗

谢谢

[macro-test]   
;exten => s,1,Answer()   
;exten => s,n,Wait(2)   
exten => s,1,Set(AGISIGHUP=no)   
exten => s,n,NoOp(AGISUGHUP: ${AGISIGHUP})   
exten => s,n,Set(CALLED=${MACRO_EXTEN})   
exten => s,n,Set(CALLER=${CUT(CUT(SIP_HEADER(From),@,1),:,2)})  
exten => s,n(action),Set(EXIT=0)  
exten => s,n,Set(TOKEN="")    
exten => s,n,Set(INIT="true")   
exten => s,n,While($[${EXIT}<1])   
exten => s,n,Set(EXIT=1)   
exten => s,n,Agi(agi://${ARG1}/server.agi?caller=${CALLER}&called=${CALLED}&init=${INIT})   
exten => s,n,Set(INIT="false")   
exten => s,n,NoOp(AGISTATUS: ${AGISTATUS})    
exten => s,n,GotoIf($["${AGISTATUS}" != "SUCCESS"]?fail:succ)   
exten => s,n(succ),EndWhile()   
exten => s,n,Set(INIT="end")   
exten => s,n,Agi(agi://${ARG1}/server.agi?caller=${CALLER}&called=${CALLED}&init=${INIT})   
exten => s,n,Hangup()   
exten => s,n(fail),Wait(2)   
exten => s,n,Playback(vm-goodbye)   
exten => s,n,Hangup()   

exten => h,1,NoOp(Notify Billing System)   
exten => h,n,NoOp(Other Tasks)   
exten => h,n,Hangup()   
[宏测试]
;extn=>s,1,Answer()
;extn=>s,n,等待(2)
扩展=>s,1,设置(AGISHIGHUP=no)
exten=>s,n,NoOp(AGISUGHUP:${AGISIGHUP})
extn=>s,n,Set(调用=${MACRO\u extn})
extn=>s,n,Set(调用者=${CUT(CUT(SIP_头(From),@,1),:,2)})
扩展=>s,n(操作),设置(退出=0)
ext=>s,n,Set(TOKEN=”“)
exten=>s,n,Set(INIT=“true”)
exten=>s,n,While($[${EXIT}s,n,Set(EXIT=1)
exten=>s,n,Agi(Agi://${ARG1}/server.Agi?caller=${caller}&called=${called}&init=${init})
exten=>s,n,Set(INIT=“false”)
extn=>s,n,NoOp(AGISTATUS:${AGISTATUS})
扩展=>s,n,GotoIf($[“${AGISTATUS}”!=“SUCCESS”]?失败:成功)
extn=>s,n(成功),EndWhile()
ext=>s,n,Set(INIT=“end”)
exten=>s,n,Agi(Agi://${ARG1}/server.Agi?caller=${caller}&called=${called}&init=${init})
extn=>s,n,Hangup()
扩展=>s,n(失败),等待(2)
扩展=>s,n,播放(vm再见)
extn=>s,n,Hangup()
扩展=>h,1,NoOp(通知计费系统)
extn=>h,n,NoOp(其他任务)
extn=>h,n,Hangup()
简单循环拨号计划

exten =>s ,1,Set(loop=3)
exten =>s,n(loop),Noop(loop start here)
exten =>s,n,Noop(do something here)
exten =>s,n,Set(loop=$[ ${loop} - 1 ]);decrease loop countr
exten =>s,n,GotoIf($[ ${loop} > 0 ]?loop); if still have something, do again
extn=>h,n,Hangup()

不要挂断电话,当你已经挂断了