Some examples how to clean up numbers.,Add and remove refixes as well as clean up caller ID and add and remove prefixes to your caller ID. You can see on the right what type of common dial errors and what the dialed number become after it was changed to a correct N America call pattern
[numcleanup] ; exten => _.,1,Set(StrEXTEN=${SIP_HEADER(TO):5}) ;cleans up header exten => _.,2,Set(StrEXTEN=${CUT(StrEXTEN,@,1)}) ;cleans up header exten => _.,3,Set(StrEXTEN=${FILTER(0-9,${StrEXTEN})}) cleans up and removes non numeric characters exten => _.,4,Goto(${StrEXTEN:0:20}${EXTEN:50:50},5) ; sends to next line to checks for 911 exten => _911,5,Goto(1${EXTEN:2:10},7) ;Blocked 911 calls exten => _91NXXNXXXXXX,5,Goto(1${EXTEN:2:10},6) ;918887776666 = 18887776666 exten => _1NXXNXXXXXX,5,Goto(callerID,${EXTEN},1) If valid NAmerica # go to clean up caller id exten => _NXXNXXXXXX,5,Goto(1${EXTEN},6);8887776666 = 18887776666 exten => _NXXNXXXXXXX,5,Goto(1${EXTEN:0:10},6);88877766662 = 18887776666 exten => _NXXNXXXXXXXX,5,Goto(1${EXTEN:0:10},6);888777666622 = 18887776666 exten => _1NXXNXXXXXXX,5,Goto(${EXTEN:0:11},6);188877766662 = 18887776666 exten => _1NXXNXXXXXXXX,5,Goto(${EXTEN:0:11},6);1888777666622 = 18887776666 exten => _0NXXNXXXXXX,5,Goto(1${EXTEN:1:10},6);08887776666 = 18887776666 exten => _0NXXNXXXXXXX,5,Goto(1${EXTEN:1:10},6);088877766662 = 18887776666 exten => _0NXXNXXXXXXXX,5,Goto(1${EXTEN:1:10},6);0888777666622 = 18887776666 exten => _11NXXNXXXXXX,5,Goto(${EXTEN:1:12},6);118887776666 = 18887776666 exten => _11NXXNXXXXXXX,5,Goto(${EXTEN:1:11},6);1188877766662 = 18887776666 exten => _11NXXNXXXXXXXX,5,Goto(${EXTEN:1:11},6);11888777666622 = 18887776666 exten => _111NXXNXXXXXX,5,Goto(${EXTEN:2:11},6) ;1118887776666 = 18887776666 exten => _111NXXNXXXXXXX,5,Goto(${EXTEN:2:11},6);11188877766662 = 18887776666 exten => _111NXXNXXXXXXXX,5,Goto(${EXTEN:2:11},6);111888777666622 = 18887776666 exten => _10NXXNXXXXXX,5,Goto(1${EXTEN:2:10},6) ;108887776666 = 18887776666 exten => _10NXXNXXXXXXX,5,Goto(1${EXTEN:2:10},6);1088877766662 = 18887776666 exten => _10NXXNXXXXXXXX,5,Goto(1${EXTEN:2:10},6);10888777666622 = 18887776666 exten => _01NXXNXXXXXX,5,Goto(1${EXTEN:2:10},6) ;018887776666 = 18887776666 exten => _01NXXNXXXXXXX,5,Goto(1${EXTEN:2:10},6);0XXXXXXXXXXX2 = 18887776666 exten => _01NXXNXXXXXXXX,5,Goto(1${EXTEN:2:10},6);01888777666622 = 18887776666 exten => _[2-8]XX1NXXNXXXXXX.,5,Goto,(${EXTEN:3:11},6);613118887776666 =18887776666 exten => _.,5,Goto(${EXTEN:0:3}1${EXTEN1:5:10},7) ;Sends calls to busy Ext exten => _X.,6,Goto(callerID,${EXTEN},1) exten => _X.,7,Dial(LOCAL/${EXTEN}@Error,1) exten => _X.,8,NoOp(DS:${DIALSTATUS}) ;exten => _X.,9,Hangup()
[Error] exten => _.,1,Busy exten => _.,1,Hangup()
;Cleans up inbound dids for north Americak [incoming_dids] exten => _.,1,Set(StrEXTEN=${FILTER(0-9,${EXTEN})}) ;Removes non numaric characters exten => _.,2,Goto(${StrEXTEN:0:20}${EXTEN:50:50},3) ;Sets EXTENSION to = new cleaned up did. exten => _NXXNXXXXXX,3,Goto(${EXTEN:0:10},5) ;Routes 10 digits DIDs to correct destination. If you need to add an 1 or 0 comment this line out. exten => _1NXXNXXXXXX,3,Goto(${EXTEN:1:10},5) ;Removes 1 from did. exten => _1NXXNXXXXXXX,3,Goto(${EXTEN:1:10},5) ;Removes 1 from did and extra digit behind did exten => _0NXXNXXXXXX,3,Goto(${EXTEN:1:10},5) ;Removes 0 from did exten => _0NXXNXXXXXXX,3,Goto(${EXTEN:1:10},5) ;Removes 0 from did and extra digit behind did ;exten => _NXXNXXXXXX,3,Goto(1${EXTEN:0:10},5) ;Addes 1 from did. Comment out to add 0 instead of one. ;exten => _NXXNXXXXXXX,3,Goto(1${EXTEN:0:10},5) ;Addes 1 from did and removes extra digit behind did. Comment out to add 0 instead of 1. ;exten => _NXXNXXXXXX,3,Goto(0${EXTEN:0:10},5) ;Addes 0 from did ;exten => _NXXNXXXXXXX,3,Goto(0${EXTEN:0:10},5) ;Addes 0 from did and removes extra digit behind did exten => _.,4,Goto(${EXTEN:0:3}1${EXTEN1:5:10},6) ;routes incoming dids not in proper format to Error Ext so caller gets busy signal or error of some sort. Even can read the number back. exten => _X.,5,Goto(callerID_DIDs,${EXTEN},1) exten => _X.,6,Dial(LOCAL/${EXTEN}@Error,1) ;exten => _X.,8,Hangup() ;exten => h,1,Hangup()
|