[asterisk-users] trouble removing + sign
Administrator TOOTAI
admin at tootai.net
Thu Feb 14 03:23:55 CST 2019
Le 14/02/2019 à 00:12, sean darcy a écrit :
> I'm using BLACKLIST() to check numbers, which does not like leading +
> signs. I want to test if there is a plus sign, and then remove it.
>
> I tried:
>
> ; strip leading plus sign
> same => n, Verbose( callerid 0:1 is ${CALLERID(num):0:1} )
> same => n,ExecIf($["${CALLERID(num):0:1}" = "+"]?Set(CALLERID(num) =
> ${CALLERID(num):1})
> same=>n,GotoIf(${BLACKLIST()}?make-em-wait)
>
> but it's stripping the first character + sign or not. The callerid is
> 1203XXYYYY
>
> -- Executing [s at hangup-spam:3] Verbose("PJSIP/2667075-0000000b", "
> callerid 0:1 is 1 ") in new stack
> callerid 0:1 is 1
> -- Executing [s at hangup-spam:4] ExecIf("PJSIP/2667075-0000000b",
> "0?Set(CALLERID(num) = 203XXXYYYY") in new stack
> -- Executing [s at hangup-spam:5] GotoIf("PJSIP/2667075-0000000b",
> "0?make-em-wait") in new stack
>
> ExecIf correctly finds the comparison false(the "0"), but still executes
> the appiftrue .
>
> What am I missing ?
Try ExecIf($["x${CALLERID(num):0:1}" == "x+"]?Set(CALLERID(num) =
${CALLERID(num):1})
Or you could use somethjing like
exten = _X.,1,NoOp(Your dialplan)
same = n,...
exten = _+.,1,Goto(${EXTEN:1},1)
--
Daniel
More information about the asterisk-users
mailing list