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 == in your gotoif (instead of =) Regards, Dovid Original Message From: seandarcy2 at gmail.com Sent: February 14, 2019 01:14 To: asterisk-users at lists.digium.com Reply-to: asterisk-users at lists.digium.com Subject: [asterisk-users] trouble removing + sign 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 ? -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- Check out the new Asterisk community forum at: https://community.asterisk.org/ New to Asterisk? Start here: https://wiki.asterisk.org/wiki/display/AST/Getting+Started asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
On 2/13/19 6:22 PM, Dovid Bender wrote:> Try == in your gotoif (instead of =) > > > > > Regards, > > Dovid > > > > Original Message > > > > From: seandarcy2 at gmail.com > Sent: February 14, 2019 01:14 > To: asterisk-users at lists.digium.com > Reply-to: asterisk-users at lists.digium.com > Subject: [asterisk-users] trouble removing + sign > > > 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 ? > > > --Tried the double equal sign. Same result. sean
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
On Wed, Feb 13, 2019 at 06:12:58PM -0500, sean darcy wrote:> same => n,ExecIf($["${CALLERID(num):0:1}" = "+"]?Set(CALLERID(num) > ${CALLERID(num):1})ExecIf($["${CALLERID(num):0:1}"="+"]?Set(CALLERID(num)=${CALLERID(num):1}))> ExecIf correctly finds the comparison false(the "0"), but still executes the > appiftrue .Executes the appiftrue or just shows what could be executed? -- Stefan Tichy ( asterisk3 at pi4tel dot de )
The format of Set is Set(MYVAR=myval) not Set(MYVAR = myval) On 02/13/2019 06:12 PM, sean darcy wrote:> 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 ? > >-- http://help.nyigc.net/
On 2/14/19 4:23 AM, Administrator TOOTAI wrote:> 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) >I like using the "x" before caller id. That deals with caller id null values. I also agree that the Set equal sign should not have spaces on either side. But, the problem here was : no closing parens for the ExecIf ! Thanks for the help. I figured this out because I kept changing the line based on your suggestions. sean