:: Filtring + from inbound CallerID ::
exten => _[+*0-9].,1,Noop(Filtering +...................)
exten => _[+*0-9].,2,GotoIf($["${CALLERID(num):0:1}" = "+"]?3:4)
exten => _[+*0-9].,3,Set(CALLERID(num)=0${CALLERID(num):2})
exten => _[+*0-9].,4,Agi(agi://127.0.0.1)
:: Filtering 33 from inbound CallerID ::
exten => _X.,1,Noop(Filtering 33...................)
exten => _X.,2,GotoIf($["${CALLERID(num):0:2}" = "+1"]?3:4)
exten => _X.,3,Set(CALLERID(num)=0${CALLERID(num):2})
exten => _X.,4,Agi(agi://127.0.0.1)
:: Altering CallerID name and CallerID number ::
[CallplusWholesale]
exten => _X.,1,Noop(Filtering 64...................)
exten => _X.,2,GotoIf($["${CALLERID(num):0:2}" = "64"]?3:6)
exten => _X.,3,Set(CALLERID(num)=0${CALLERID(num):2})
exten => _X.,4,GotoIf($["${CALLERID(name):0:2}" = "64"]?5:6)
exten => _X.,5,Set(CALLERID(name)=0${CALLERID(name):2})
exten => _X.,6,Agi(agi://127.0.0.1)
:: Extracting DID number from TO header if its not sent in INVITE header ::
[quescom]
exten => quescom,1,Set(VAR=${CUT(CUT(SIP_HEADER(To),@,1),:,2)})
exten => quescom,n,Set(VAR=${FILTER(0123456789,${VAR})})
exten => quescom,n,GotoIf($[${LEN(${VAR})} > 0]?go:hangup)
exten => quescom,n(go),GoTo(${VAR},1)
exten => quescom,n(hangup),Hangup()
For version 5 and above:
[quescom]
exten => quescom,1,Set(VAR=${CUT(CUT(PJSIP_HEADER(read,To),@,1),:,2)})
exten => quescom,n,Set(VAR=${FILTER(0123456789,${VAR})})
exten => quescom,n,GotoIf($[${LEN(${VAR})} > 0]?go:hangup)
exten => quescom,n(go),GoTo(${VAR},1)
exten => quescom,n(hangup),Hangup()
:: Append 0 ::
[TrunkName]
exten => _[*0-9].,1,Noop(Append 0...)
exten => _[*0-9].,2,GotoIf($["${CALLERID(num):0:1}" != "0"]?3:4)
exten => _[*0-9].,3,Set(CALLERID(num)=0${CALLERID(num)})
exten => _[*0-9].,4,Agi(agi://127.0.0.1)
:: Outbound dialling patterns ::
exten => _0044XXX,1,Goto(TrunkContext,44*${EXTEN:-3},1)
exten => _0044XXX,1,Dial(IAX2/44*${EXTEN:-3}@MagratheaIAX)
exten => _112,1,Dial(SIP/31141220${EXTEN}@Trunk1)
exten => _112,2,GotoIf($[${DIALSTATUS}=CHANUNAVAIL]?3)
exten => _112,3,Dial(SIP/31141220${EXTEN}@Trunk2)
[t-xxx]
exten => 911,1,Noop(test)
exten => 911,n,Goto(${CONTEXT},9157441283,1)
:: Routing of inbound call from another system (if local ext is dialled) ::
[Class_Hosted]
exten => _201XXX,1,Goto(transfer-201,${EXTEN},1)
:: Stripping + from inbound DID number (not needed on 4.x versions) ::
[Tele2]
exten => _+X.,1,Goto(Tele2,${EXTEN:1},1)
::Replacing 61 with 0 for DID matching
[Tele2]
exten => _61X.,1,Goto(Tele2,0${EXTEN:2},1)
:: Inbound fax testing with custom conf values ::
[SWS0]
exten => 7144778763,1,Set(FAXOPT(ecm)=yes)
exten => 7144778763,n,Set(FAXOPT(modem)=V27)
exten => 7144778763,n,Set(FAXOPT(maxrate)=4800)
exten => 7144778763,n,Set(FAXOPT(minrate)=2400)
exten => 7144778763,n,Answer()
exten => 7144778763,n,ReceiveFax(/tmp/bla.tiff,df)
:: Add different city prefix for 1 extension on a tenant ::
--------------------------------------------------------
[case1]
exten => _1XXXXX,1,Noop(test)
exten => _1XXXXX,2,GoTo(t-222,0038533${EXTEN},1)
include => case2
[case2]
exten => _[*0-9].,1,GoTo(t-222,${EXTEN},1)
--------------------------------------------------------
Explanation:
t-222 = tenant 222
_1XXXXX = all 6 digit numbers starting with number 1
GoTo(t-222,0038533${EXTEN},1) = If a number confirms the criteria, add a
prefix of 0038533 to it and send it back to the original context, if
not, send it to context case2.
case2 = Any number dialled send to tenant context.
Once added into extensions.conf, reload asterisk and add 'context =
case1' into extensions additional config.
:: Resetting privacy headers for inbound calls ::
exten => _X.,1,Set(CALLERID(num-pres)=allowed)
exten => _X.,2,Set(CALLERID(name-pres)=allowed)
exten => _X.,3,Agi(agi://127.0.0.1)
exten => _X.,4,Hangup();
Set CalleriD name as CallerID number in case Callerid name is received as Anonymous
[Trunk_name]
exten => _X.,1,Noop(Filtering Anonymous...................)
exten => _X.,2,GotoIf($["${CALLERID(name):0:9}" = "Anonymous"]?3:4)
exten => _X.,3,Set(CALLERID(name)=${CALLERID(num)})
exten => _X.,4,Agi(agi://127.0.0.1)
exten => _X.,5,Hangup()
Australia 1300 and 1800 numbers
[t-custom]
exten => _1800.,1,Noop(1800 PREFIX)
exten => _1800.,2,GoTo(${CONTEXT},0${EXTEN},1)
exten => _1300.,1,Noop(1300 PREFIX)
exten => _1300.,2,GoTo(${CONTEXT},0${EXTEN},1)
exten => _13[1-7]XXX,1,Noop(13 PREFIX)
exten => _13[1-7]XXX,2,GoTo(${CONTEXT},0${EXTEN},1)