[asterisk-users] question about IF

Bill Gibbs bgibbs at edurotech.com
Thu Oct 26 05:17:49 MST 2006


I am having a problem getting the following logic to work, in a macro.

 

Basically, if the caller ID matches, set the outbond trunk to a Zap
channel, otherwise use a SIP provider.

 

exten => s,n,Set(TRUNK=${IF($[${CALLERIDNUM} =
1234567890]?Zap/g1:SIP/LDPROVIDER)}) ; use PRI instead of SIP

 

That works.  The TRUNK variable is set properly.

 

But the SIP LD provider requires a prepended code, so I say if the TRUNK
var is the SIP/LDPROVIDER set another variable called PREPEND_CODE to
the passed argument, otherwise use nothing if it's the Zap channel since
I will just be sending the digits as is.

 

exten => s,n,Set(PREPEND_CODE=${IF($[ ${TRUNK} =
SIP/LDPROVIDER]?${ARG2}:)})

 

However this always sets the PREPEND_CODE variable even if TRUNK is set
to Zap/g1.  If I use 'SIP/LDPROVIDER' or "SIP/LDPROVIDER" or even
${TRUNK:} = SIP (not sure if that's even valid but I tried it) it still
sets the variable.  I also tried using a space after the : but still
doesn't work.

 

Does IF only match digits???

 

Asterisk ver 1.2.12.1

 

I must be doing something wrong but am not sure what it is...any ideas?
I have a feeling I missed up because I was looking at this at 2am and
working on it via a cell phone SSH connection so I must be missing
something obvious.

 

Bill

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20061026/6ae7cdb6/attachment.htm


More information about the asterisk-users mailing list