[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