[asterisk-users] Problem with GotoIf in dialplan
Paul Hales
pdhales at optusnet.com.au
Mon Jul 10 19:03:38 MST 2006
You need a ? after the condition, not a ,.
eg:
exten => s,17,GotoIf($[${DIALSTATUS} = NOANSWER]?106)
later,
Paul Hales
--
Paul Hales
Technical Manager
AsteriskIT
www.asteriskit.com.au
ph: 03 8320 8100
On Mon, 2006-07-10 at 18:40 -0700, Eric Lyons wrote:
> Hmm.
>
> GotoIf seems to be doing something, uh, wrong in my dialplan: Despite getting a TRUE value in the conditional (as shown in the
> debug below), it doesn't take the jump! The following is part of the macro being executed in the dialplan, starting at priority 16:
>
> exten => s,16,Dial(IAX2/sixtel/${ARG1},${ARG2})
> exten => s,17,GotoIf($[${DIALSTATUS} = NOANSWER],106)
> exten => s,18,GotoIf($[${DIALSTATUS} = CONGESTION],23)
> exten => s,19,GotoIf($[${DIALSTATUS} = CHANUNAVAIL],23)
> exten => s,20,GotoIf($[${DIALSTATUS} = BUSY],100)
> exten => s,21,GotoIf($[${DIALSTATUS} = CANCEL],104)
> exten => s,22,Goto(102)
> exten => s,23,Dial(Zap/g4/${ARG1},${ARG2})
> exten => s,24,GotoIf($[${DIALSTATUS} = NOANSWER],106)
> exten => s,25,GotoIf($[${DIALSTATUS} = BUSY],100)
> exten => s,26,GotoIf($[${DIALSTATUS} = CANCEL],104)
> exten => s,27,Goto(102)
> exten => s,100,NoOp(reporting busy)
> exten => s,101,Busy()
> exten => s,102,NoOp(reporting congestion)
> exten => s,103,Congestion()
> exten => s,104,NoOp(reporting cancel)
> exten => s,105,Hangup()
> exten => s,106,NoOp(reporting noanswer returning to caller)
>
> The Dial() in priority 16 returns with CHANUNAVAIL, as evidenced in the following monitor output, but it doesn't take the jump:
>
> -- Executing Dial("Zap/20-1", "IAX2/sixtel/1415xxxxxxx|5") in new stack
> -- Called sixtel/1415xxxxxxx
> -- Hungup 'IAX2/sixtel-1'
> == Everyone is busy/congested at this time (1:0/0/1)
> -- Executing GotoIf("Zap/20-1", "0|106") in new stack
> -- Executing GotoIf("Zap/20-1", "0|23") in new stack
> -- Executing GotoIf("Zap/20-1", "1|23") in new stack <--- TRUE!
> -- Executing GotoIf("Zap/20-1", "0|100") in new stack
> -- Executing GotoIf("Zap/20-1", "0|104") in new stack
> -- Executing Goto("Zap/20-1", "102") in new stack <--- WHA??
> -- Goto (macro-dialout,s,102)
> -- Executing NoOp("Zap/20-1", "reporting congestion") in new stack
> -- Executing Congestion("Zap/20-1", "") in new stack
> -- Channel 0/20, span 1 got hangup request
>
> The macro jumps to priority 102 instead of 23 as though it fell through all the GotoIf's! This is asterisk v1.2.7.1, and no, I
> don't have "jumps" set.
>
> Can anyone explain why it doesn't take the jump? The plain "Goto" jump happens; it doesn't fall through to Dial(), so I don't get
> it.
>
> Eric.
>
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-users
More information about the asterisk-users
mailing list