[Asterisk-Dev] Re: dialplan eval problem?
Tony Mountifield
tony at softins.clara.co.uk
Tue Jun 7 09:46:00 MST 2005
In article <03a101c56b7c$8e506f80$3400000a at cytelcom.com>,
Matthew Boehm <mboehm at cytelcom.com> wrote:
> Just discovered this "problem". Here is the dial plan.
>
> exten => _9.,1,GotoIf($[${CALLERIDNUM} : 3091|3144]?cscid:ncid)
>
> exten => _9.,n(cscid),Set(CALLERID(number)=8322008636)
> exten => _9.,n,Goto(callout)
>
> exten => _9.,n(ncid),Set(CALLERID(name)=Cypress)
> exten => _9.,n,Set(CALLERID(number)=2814494000)
>
> exten => _9.,n(callout),Dial(ZAP/R1d/${EXTEN:1},60,WT)
>
> Extension 3030's callerid is set to "" (ie: null).
>
> If extension 3030 dials out, using the above dialplan, 3030 incorrectly goes
> to priority cscid.
>
> Doesn't pri 1 read as "if ${CALLERIDNUM} contains 3091 or 3144 goto cscid,
> otherwise goto ncid" ?
Assuming the | for alternation works, it would mean "if ${CALLERIDNUM}
starts with 3091 or 3144". Matches with the : operator have an implicit
anchor at the start.
> If so, then how does "if NULL contains 3091 or 3144" eval to true?
I think you need "quotes" around ${CALLERIDNUM} if it could be empty.
Ext 3030 may be currently doing: GotoIf($[ : 3091|3144]?cscid:ncid)
Hope this helps
Tony
--
Tony Mountifield
Work: tony at softins.co.uk - http://www.softins.co.uk
Play: tony at mountifield.org - http://tony.mountifield.org
More information about the asterisk-dev
mailing list