Brian J. Murrell
2019-Feb-20 17:08 UTC
[asterisk-users] if function when the true value has a colon in it?
Following up on my previously asked question if I rewrite the branching
example (not that it negates the more general branching question) I was
using as such:
exten =>
s,n,Set(EXT=${IF($[${SIP}=PJSIP]?${PJSIP_DIAL_CONTACTS(${STRREPLACE(ARG2,PJSIP/,)})}:${ARG2})})
exten => s,n,Dial(${EXT},20,TtWw)
exten => s,n,Goto(s-${DIALSTATUS},1)
But that ${IF expression?tval:fval} doesn't work because tval has a :
in it which the if function is taking as the terminator for the tval.
How can I deal with that? Double quoting the tval doesn't seem to work
as it introduces an unwanted close-double-quote into EXT which Dial()
barfs at.
Cheers,
b.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL:
<http://lists.digium.com/pipermail/asterisk-users/attachments/20190220/50c0df24/attachment.sig>
Stefan Tichy
2019-Feb-20 19:34 UTC
[asterisk-users] if function when the true value has a colon in it?
On Wed, Feb 20, 2019 at 12:08:14PM -0500, Brian J. Murrell wrote:> exten => s,n,Set(EXT=${IF($[${SIP}=PJSIP]?${PJSIP_DIAL_CONTACTS(${STRREPLACE(ARG2,PJSIP/,)})}:${ARG2})}) > > But that ${IF expression?tval:fval} doesn't work because tval has a : > in it which the if function is taking as the terminator for the tval.As workaround you could use ExecIf: ExecIF($[${SIP}=PJSIP]?Set(EXT=.....):Set(EXT=...)) -- Stefan Tichy ( asterisk3 at pi4tel dot de )