Strip Leading Digits (Inbound Calls)

I am using callerid superfecta, and my sip provider sends the callerid with a +1. I need to strip the +1 before passing to callerid lookup, can anyone help me with the please? I have tried the below context change on the trunk, but it doesn’t pass the name. It only strips the +1, and doesn’t pass the callerid “name”

[custom-from-trunk]
exten => _X!,1,NoOp(Caller ID name received from provider is ${CALLERID(name)})
exten => _X!,n,GotoIf($["${CALLERID(num):0:2}" != “+1”]?noplusatstart)
exten => _X!,n,NoOp(Changing Caller ID number from ${CALLERID(num)} to ${CALLERID(num):2})
exten => _X!,n,Set(CALLERID(num)=${CALLERID(num):2})
exten => _X!,n(noplusatstart),Goto(from-trunk,${EXTEN},1)
exten => h,1,Macro(hangupcall,)

I think this is an issue with freepbx 2.6. This problem doesn’t occur whith 2.5

  1. X!" will fail to “catch” and “Unavailable” or “private” CALLERID conditions. Suggest using "[0-9a-zA-Z*#]!” instead. You may be able to leave off the “*#” if you like.

  2. The ExecIf/CallerID(all) below should workaround it, in the meantime.

exten => _[0-9a-zA-Z*#]!,1,NoOp(Caller ID name received from provider is ${CALLERID(name)})
exten => _[0-9a-zA-Z*#]!,n,ExecIf($["${CALLERID(num):0:2}" = "+1"]|Set|CALLERID(all)="${CALLERID(name)} <${CALLERID(num):2}>")
exten => _[0-9a-zA-Z*#]!,n,Goto(from-trunk,${EXTEN},1)
exten => h,1,Hangup