A J Stiles
2016-Mar-10 10:24 UTC
[asterisk-users] Dialplan question: Variables in GoTo() ?
I can't seem to find a definitive answer on this, and I really don't want to risk breaking a production server to find out; so I am going to try asking this here, and maybe anyone else in the same situation searching the archives sometime in future will find the answer I get. Can you use variables in the target of a GoTo() statement? What I am specifically thinking of is this; [from_some_source] exten => s,1,AGI(look_up_stuff.agi,${CALLERID(num)},${EXTEN}) ; this AGI script sets variables: next_context, next_ext, next_step exten => s,n,GoTo(${next_context},${next_ext},${next_step}) Will this work? Does Asterisk evaluate expressions like this, or does it expect literals? -- AJS Note: Originating address only accepts e-mail from list! If replying off- list, change address to asterisk1list at earthshod dot co dot uk .
Steve Edwards
2016-Mar-10 14:15 UTC
[asterisk-users] Dialplan question: Variables in GoTo() ?
On Thu, 10 Mar 2016, A J Stiles wrote:> Can you use variables in the target of a GoTo() statement?Yes. Here are a few examples from one of my dialplans: ; invalid template [i](!) exten = i,1, verbose(1,[${EXTEN}@${CONTEXT}]) exten = i,n, goto(${CONTEXT},s,1) ; look up (set) DNIS (DID) channel variables exten = _x.,n, goto(lookup-dnis,${EXTEN},1) ; dispatch to selected application exten = _[123456],n, goto(${PRODUCT-${EXTEN}-APPLICATION},s,1) This particular dialplan uses the invalid template in around 30 contexts and 'goto(${CONTEXT},s,1)' about 15 times. Note that the last example 'nests' the variable expansion -- a variable within a variable. -- Thanks in advance, ------------------------------------------------------------------------- Steve Edwards sedwards at sedwards.com Voice: +1-760-468-3867 PST
Joshua Colp
2016-Mar-10 14:15 UTC
[asterisk-users] Dialplan question: Variables in GoTo() ?
A J Stiles wrote:> I can't seem to find a definitive answer on this, and I really don't want to > risk breaking a production server to find out; so I am going to try asking this > here, and maybe anyone else in the same situation searching the archives > sometime in future will find the answer I get. > > Can you use variables in the target of a GoTo() statement? > > What I am specifically thinking of is this; > > [from_some_source] > exten => s,1,AGI(look_up_stuff.agi,${CALLERID(num)},${EXTEN}) > ; this AGI script sets variables: next_context, next_ext, next_step > exten => s,n,GoTo(${next_context},${next_ext},${next_step}) > > Will this work? Does Asterisk evaluate expressions like this, or does it > expect literals?It most certainly will work. It evaluates on use. -- Joshua Colp Digium, Inc. | Senior Software Developer 445 Jan Davis Drive NW - Huntsville, AL 35806 - US Check us out at: www.digium.com & www.asterisk.org
A J Stiles
2016-Mar-10 15:28 UTC
[asterisk-users] *SOLVED* Re: Dialplan question: Variables in GoTo() ?
On Thursday 10 Mar 2016, Joshua Colp wrote:> I wrote: > > I can't seem to find a definitive answer on this, and I really don't want > > to risk breaking a production server to find out; so I am going to try > > asking this here, and maybe anyone else in the same situation searching > > the archives sometime in future will find the answer I get. > > > > Can you use variables in the target of a GoTo() statement? > > > > What I am specifically thinking of is this; > > > > [from_some_source] > > exten => s,1,AGI(look_up_stuff.agi,${CALLERID(num)},${EXTEN}) > > ; this AGI script sets variables: next_context, next_ext, next_step > > exten => s,n,GoTo(${next_context},${next_ext},${next_step}) > > > > Will this work? Does Asterisk evaluate expressions like this, or does it > > expect literals? > > It most certainly will work. It evaluates on use.Thanks very much. I tried it, and it worked beautifully. Exactly as I expected. There is something a little bit "ZX Spectrum BASIC" about an evaluated GOTO, but sometimes it's the least messy way of accomplishing something. -- AJS Note: Originating address only accepts e-mail from list! If replying off- list, change address to asterisk1list at earthshod dot co dot uk .
Maybe Matching Threads
- [LLVMdev] conditional flow resulting in "Instruction does not dominate all uses!"
- Form actions with additional parameters
- [LLVMdev] conditional flow resulting in "Instruction does not dominate all uses!"
- Bridge() and Goto() and dialplan contexts, oh my!
- long return times from System() calls with 1.6.2.6?