Videosupport messes up sip routing!

ok iv got a weird problem.
Im using trixbox 2.0

I have 2 voip trunks. I have an inbound route for trunk1 set to ext 101. If some1 calls trunk 1 from outside, it works. However if someone on a different extention (eg. 201 or 202…) is calling outside (ie making an outgoing call on trunk 1 or 2), when some1 else calls trunk one from outside it goes straight to voicemail (asterisk voicemail - this shows that my firewall is set up properly).

Trixbox isnt routing the call properly to the extention

Any help would be appreciated

Cheers
UPDATE
I have figured out now that its not just limited to outgoing/incoing trunks! If one extention is calling another internally, no1 else can you their fones!

i have found out the cause to this problem. I have videosupport=yes. if i remove this all is perfect. thing is i use video convos. Any ideas?

please note when reading below that the trunk i receive incoming calls on (sipgate) is set to context=ext-did which the configs for are posted below

my configs are:

----sip.conf…

; Note: If your SIP devices are behind a NAT and your Asterisk
; server isn’t, try adding “nat=1” to each peer definition to
; solve translation problems.

[general]

bindport=5060 ; UDP Port to bind to (SIP standard port is 5060)
bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all)
disallow=all
allow=gsm
videosupport=yes
allow=h263
allow=h263p

; If you need to answer unauthenticated calls, you should change this
; next line to ‘from-trunk’, rather than ‘from-sip-external’.
; You’ll know this is happening if when you call in you get a message
; saying "The number you have dialed is not in service. Please check the
; number and try again."
context = from-sip-external ; Send unknown SIP callers to this context
callerid = Unknown
tos=0x68

; #, in this configuration file, is NOT A COMMENT. This is exactly
; how it should be.
#include sip_nat.conf
#include sip_custom.conf
#include sip_additional.conf
nat=yes
externhost = PRIVATE
externrefresh = 1
localnet = 192.168.0.0/255.255.255.0

—sip_additional.conf—
; do not edit this file, this is an auto-generated file by freepbx
; all modifications must be done from the web gui
register=2996253:SIPGATEPW@sipgate.co.uk/2996253
register=jonnytabpni2:PASSWORD@sip.voipcheap.com

[100]
type=friend
secret=9229
record_out=Adhoc
record_in=Adhoc
qualify=yes
port=5060
nat=yes
host=dynamic
dtmfmode=rfc2833
dial=SIP/100
context=from-internal
canreinvite=no
callerid=device <100>
allow=ulaw

[101]
type=friend
secret=9229
record_out=Adhoc
record_in=Adhoc
qualify=yes
port=5060
nat=yes
mailbox=101@default
host=dynamic
dtmfmode=rfc2833
dial=SIP/101
context=from-internal
canreinvite=no
callerid=device <101>
allow=ulaw

[102]
type=friend
secret=9229
record_out=Adhoc
record_in=Adhoc
qualify=yes
port=5060
nat=yes
host=dynamic
dtmfmode=rfc2833
dial=SIP/102
context=from-internal
canreinvite=no
callerid=device <102>

[201]
type=friend
secret=1234
record_out=Adhoc
record_in=Adhoc
qualify=yes
port=5060
nat=yes
host=dynamic
dtmfmode=rfc2833
dial=SIP/201
context=national
canreinvite=no
callerid=device <201>

[301]
type=friend
secret=18185
record_out=Adhoc
record_in=Adhoc
qualify=yes
port=5060
nat=yes
host=dynamic
dtmfmode=rfc2833
dial=SIP/301
context=national
canreinvite=no
callerid=device <301>

[302]
type=friend
secret=18185
record_out=Adhoc
record_in=Adhoc
qualify=yes
port=5060
nat=yes
host=dynamic
dtmfmode=rfc2833
dial=SIP/302
context=national
canreinvite=no
callerid=device <302>

[ext-did]
username=2996253
type=peer
secret=SIPGATEPW
qualify=5000
nat=yes
insecure=very
host=sipgate.co.uk
fromuser=2996253
fromdomain=sipgate.co.uk
dtmfmode=info
context=ext-did
authuser=2996253

[jonnytabpni2]
type=user
secret=PASSWORD
dtmfmode=info
context=from-trunk

[sipgate]
username=2996253
type=peer
secret=SIPGATEPW
qualify=5000
nat=yes
insecure=very
host=sipgate.co.uk
fromuser=2996253
fromdomain=sipgate.co.uk
dtmfmode=info
context=ext-did
authuser=2996253

[voipcheap]
username=jonnytabpni2
type=peer
secret=PASSWORD
host=sip.voipcheap.com
dtmfmode=info
disallow=all
allow=g729

----------extentions_additional.conf----
; do not edit this file, this is an auto-generated file by freepbx
; all modifications must be done from the web gui

[globals]
#include globals_custom.conf
CALLFILENAME = ""
DIAL_OPTIONS = t
TRUNK_OPTIONS =
DIAL_OUT = 9
FAX =
FAX_RX = system
FAX_RX_EMAIL = fax@mydomain.com
FAX_RX_FROM = freepbx@gmail.com
INCOMING = group-all
NULL = ""
OPERATOR =
OPERATOR_XTN =
PARKNOTIFY = SIP/200
RECORDEXTEN = ""
RINGTIMER = 15
DIRECTORY = last
AFTER_INCOMING =
IN_OVERRIDE = forcereghours
REGTIME = 7:55-17:05
REGDAYS = mon-fri
DIRECTORY_OPTS =
DIALOUTIDS = 1/2/3/
OUT_1 = ZAP/g0
VM_PREFIX = *
VM_OPTS =
VM_GAIN =
VM_DDTYPE = u
TIMEFORMAT = kM
TONEZONE = uk
ALLOW_SIP_ANON = yes
OUTKEEPCID_2 = on
OUTCID_2 = 02890996253
OUTMAXCHANS_2 = 50
OUTPREFIX_2 =
OUT_2 = SIP/sipgate
OUTKEEPCID_3 = on
OUTCID_3 = ABPNI
OUTMAXCHANS_3 = 50
OUTPREFIX_3 =
OUT_3 = SIP/voipcheap

;end of [globals]

[app-cf-busy-off]
include => app-cf-busy-off-custom
exten => *91,1,Answer
exten => *91,n,Wait(1)
exten => *91,n,Macro(user-callerid,)
exten => *91,n,dbDel(CFB/${CALLERID(number)})
exten => *91,n,Playback(call-fwd-on-busy&de-activated)
exten => *91,n,Macro(hangupcall,)
exten => _*91.,1,Answer
exten => _*91.,n,Wait(1)
exten => _*91.,n,Set(fromext=${EXTEN:3})
exten => _*91.,n,dbDel(CFB/${fromext})
exten => _*91.,n,Playback(call-fwd-on-busy&for&extension)
exten => _*91.,n,SayDigits(${fromext})
exten => _*91.,n,Playback(cancelled)
exten => _*91.,n,Macro(hangupcall,)

; end of [app-cf-busy-off]

[app-cf-busy-off-any]
include => app-cf-busy-off-any-custom
exten => *92,1,Answer
exten => *92,n,Wait(1)
exten => *92,n,Playback(please-enter-your&extension)
exten => *92,n,Read(fromext,then-press-pound,)
exten => *92,n,Wait(1)
exten => *92,n,dbDel(CFB/${fromext})
exten => *92,n,Playback(call-fwd-on-busy&for&extension)
exten => *92,n,SayDigits(${fromext})
exten => *92,n,Playback(cancelled)
exten => *92,n,Macro(hangupcall,)

; end of [app-cf-busy-off-any]

[app-cf-busy-on]
include => app-cf-busy-on-custom
exten => *90,1,Answer
exten => *90,n,Wait(1)
exten => *90,n,Playback(call-fwd-on-busy)
exten => *90,n,Playback(please-enter-your&extension)
exten => *90,n,Read(fromext,then-press-pound,)
exten => *90,n,Set(fromext=${IF($[“foo${fromext}”=“foo”]?${CALLERID(number)}:${fromext})})
exten => *90,n,Wait(1)
exten => *90,n(startread),Playback(ent-target-attendant)
exten => *90,n,Read(toext,then-press-pound,)
exten => *90,n,GotoIf($[“foo${toext}”=“foo”]?startread)
exten => *90,n,Wait(1)
exten => *90,n,Set(DB(CFB/${fromext})=${toext})
exten => *90,n,Playback(call-fwd-on-busy&for&extension)
exten => *90,n,SayDigits(${fromext})
exten => *90,n,Playback(is-set-to)
exten => *90,n,SayDigits(${toext})
exten => *90,n,Macro(hangupcall,)
exten => _*90.,1,Answer
exten => _*90.,n,Wait(1)
exten => _*90.,n,Macro(user-callerid,)
exten => _*90.,n,Set(DB(CFB/${CALLERID(number)})=${EXTEN:3})
exten => _*90.,n,Playback(call-fwd-on-busy&for&extension)
exten => _*90.,n,SayDigits(${CALLERID(number)})
exten => _*90.,n,Playback(is-set-to)
exten => _*90.,n,SayDigits(${EXTEN:3})
exten => _*90.,n,Macro(hangupcall,)

; end of [app-cf-busy-on]

[app-cf-off]
include => app-cf-off-custom
exten => *73,1,Answer
exten => *73,n,Wait(1)
exten => *73,n,Macro(user-callerid,)
exten => *73,n,dbDel(CF/${CALLERID(number)})
exten => *73,n,Playback(call-fwd-unconditional&de-activated)
exten => *73,n,Macro(hangupcall,)
exten => _*73.,1,Answer
exten => _*73.,n,Wait(1)
exten => _*73.,n,Set(fromext=${EXTEN:3})
exten => _*73.,n,dbDel(CF/${fromext})
exten => _*73.,n,Playback(call-fwd-unconditional&for&extension)
exten => _*73.,n,SayDigits(${fromext})
exten => _*73.,n,Playback(cancelled)
exten => _*73.,n,Macro(hangupcall,)

; end of [app-cf-off]

[app-cf-off-any]
include => app-cf-off-any-custom
exten => *74,1,Answer
exten => *74,n,Wait(1)
exten => *74,n,Playback(please-enter-your&extension)
exten => *74,n,Read(fromext,then-press-pound,)
exten => *74,n,Wait(1)
exten => *74,n,dbDel(CF/${fromext})
exten => *74,n,Playback(call-fwd-unconditional&for&extension)
exten => *74,n,SayDigits(${fromext})
exten => *74,n,Playback(cancelled)
exten => *74,n,Macro(hangupcall,)

; end of [app-cf-off-any]

[app-cf-on]
include => app-cf-on-custom
exten => *72,1,Answer
exten => *72,n,Wait(1)
exten => *72,n,Playback(call-fwd-unconditional)
exten => *72,n,Playback(please-enter-your&extension)
exten => *72,n,Read(fromext,then-press-pound,)
exten => *72,n,Set(fromext=${IF($[“foo${fromext}”=“foo”]?${CALLERID(number)}:${fromext})})
exten => *72,n,Wait(1)
exten => *72,n(startread),Playback(ent-target-attendant)
exten => *72,n,Read(toext,then-press-pound,)
exten => *72,n,GotoIf($[“foo${toext}”=“foo”]?startread)
exten => *72,n,Wait(1)
exten => *72,n,Set(DB(CF/${fromext})=${toext})
exten => *72,n,Playback(call-fwd-unconditional&for&extension)
exten => *72,n,SayDigits(${fromext})
exten => *72,n,Playback(is-set-to)
exten => *72,n,SayDigits(${toext})
exten => *72,n,Macro(hangupcall,)
exten => _*72.,1,Answer
exten => _*72.,n,Wait(1)
exten => _*72.,n,Macro(user-callerid,)
exten => _*72.,n,Set(DB(CF/${CALLERID(number)})=${EXTEN:3})
exten => _*72.,n,Playback(call-fwd-unconditional&for&extension)
exten => _*72.,n,SayDigits(${CALLERID(number)})
exten => _*72.,n,Playback(is-set-to)
exten => _*72.,n,SayDigits(${EXTEN:3})
exten => _*72.,n,Macro(hangupcall,)

; end of [app-cf-on]

[app-cf-unavailable-off]
include => app-cf-unavailable-off-custom
exten => *53,1,Answer
exten => *53,n,Wait(1)
exten => *53,n,Macro(user-callerid,)
exten => *53,n,dbDel(CFU/${CALLERID(number)})
exten => *53,n,Playback(call-fwd-no-ans&de-activated)
exten => *53,n,Macro(hangupcall,)
exten => _*53.,1,Answer
exten => _*53.,n,Wait(1)
exten => _*53.,n,Set(fromext=${EXTEN:3})
exten => _*53.,n,dbDel(CFU/${fromext})
exten => _*53.,n,Playback(call-fwd-no-ans&for&extension)
exten => _*53.,n,SayDigits(${fromext})
exten => _*53.,n,Playback(cancelled)
exten => _*53.,n,Macro(hangupcall,)

; end of [app-cf-unavailable-off]

[app-cf-unavailable-on]
include => app-cf-unavailable-on-custom
exten => *52,1,Answer
exten => *52,n,Wait(1)
exten => *52,n,Playback(call-fwd-no-ans)
exten => *52,n,Playback(please-enter-your&extension)
exten => *52,n,Read(fromext,then-press-pound,)
exten => *52,n,Set(fromext=${IF($[“foo${fromext}”=“foo”]?${CALLERID(number)}:${fromext})})
exten => *52,n,Wait(1)
exten => *52,n(startread),Playback(ent-target-attendant)
exten => *52,n,Read(toext,then-press-pound,)
exten => *52,n,GotoIf($[“foo${toext}”=“foo”]?startread)
exten => *52,n,Wait(1)
exten => *52,n,Set(DB(CFU/${fromext})=${toext})
exten => *52,n,Playback(call-fwd-no-ans&for&extension)
exten => *52,n,SayDigits(${fromext})
exten => *52,n,Playback(is-set-to)
exten => *52,n,SayDigits(${toext})
exten => *52,n,Macro(hangupcall,)
exten => _*52.,1,Answer
exten => _*52.,n,Wait(1)
exten => _*52.,n,Macro(user-callerid,)
exten => _*52.,n,Set(DB(CFU/${CALLERID(number)})=${EXTEN:3})
exten => _*52.,n,Playback(call-fwd-no-ans&for&extension)
exten => _*52.,n,SayDigits(${CALLERID(number)})
exten => _*52.,n,Playback(is-set-to)
exten => _*52.,n,SayDigits(${EXTEN:3})
exten => _*52.,n,Macro(hangupcall,)

; end of [app-cf-unavailable-on]

[app-calltrace]
include => app-calltrace-custom
exten => *69,1,Goto(app-calltrace-perform,s,1)

; end of [app-calltrace]

[app-calltrace-perform]
include => app-calltrace-perform-custom
exten => s,1,Macro(user-callerid,)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(info-about-last-call&telephone-number)
exten => s,n,Set(lastcaller=${DB(CALLTRACE/${CALLERID(number)})})
exten => s,n,GotoIf($[ $[ “${lastcaller}” = “” ] | $[ “${lastcaller}” = “unknown” ] ]?noinfo)
exten => s,n,SayDigits(${lastcaller})
exten => s,n,Set(TIMEOUT(digit)=3)
exten => s,n,Set(TIMEOUT(response)=7)
exten => s,n,Background(to-call-this-number&press-1)
exten => s,n,Goto(fin)
exten => s,n(noinfo),Playback(from-unknown-caller)
exten => s,n,Macro(hangupcall,)
exten => s,n(fin),Noop(Waiting for input)
exten => 1,1,Goto(from-internal,${lastcaller},1)
exten => i,1,Playback(vm-goodbye)
exten => i,n,Macro(hangupcall,)
exten => t,1,Playback(vm-goodbye)
exten => t,n,Macro(hangupcall,)

; end of [app-calltrace-perform]

[app-directory]
include => app-directory-custom
exten => #,1,Answer
exten => #,n,Wait(1)
exten => #,n,AGI(directory,${DIR-CONTEXT},from-did-direct,${DIRECTORY:0:1}${DIRECTORY_OPTS})
exten => #,n,Playback(vm-goodbye)
exten => #,n,Hangup
exten => i,1,Playback(privacy-incorrect)

; end of [app-directory]

[app-echo-test]
include => app-echo-test-custom
exten => *43,1,Answer
exten => *43,n,Wait(1)
exten => *43,n,Playback(demo-echotest)
exten => *43,n,Echo()
exten => *43,n,Playback(demo-echodone)
exten => *43,n,Hangup

; end of [app-echo-test]

[app-speakextennum]
include => app-speakextennum-custom
exten => *65,1,Answer
exten => *65,n,Wait(1)
exten => *65,n,Macro(user-callerid,)
exten => *65,n,Playback(your)
exten => *65,n,Playback(extension)
exten => *65,n,Playback(number)
exten => *65,n,Playback(is)
exten => *65,n,SayDigits(${CALLERID(number)})
exten => *65,n,Wait(2)
exten => *65,n,Hangup

; end of [app-speakextennum]

[app-speakingclock]
include => app-speakingclock-custom
exten => *60,1,Answer
exten => *60,n,Wait(1)
exten => *60,n,Set(NumLoops=0)
exten => *60,n(start),Set(FutureTime=$[${EPOCH} + 11])
exten => *60,n,Playback(at-tone-time-exactly)
exten => *60,n,GotoIf($["${TIMEFORMAT}" = “kM”]?hr24format)
exten => *60,n,SayUnixTime(${FutureTime},IM ‘and’ S ‘seconds’ p)
exten => *60,n,Goto(waitloop)
exten => *60,n(hr24format),SayUnixTime(${FutureTime},kM ‘and’ S ‘seconds’)
exten => *60,n(waitloop),Set(TimeLeft=$[${FutureTime} - ${EPOCH}])
exten => *60,n,GotoIf($[${TimeLeft} < 1]?playbeep)
exten => *60,n,Wait(1)
exten => *60,n,Goto(waitloop)
exten => *60,n(playbeep),Playback(beep)
exten => *60,n,Wait(5)
exten => *60,n,Set(NumLoops=$[${NumLoops} + 1])
exten => *60,n,GotoIf($[${NumLoops} < 5]?start)
exten => *60,n,Playback(goodbye)
exten => *60,n,Hangup

; end of [app-speakingclock]

[callback]
include => callback-custom
exten => 1,1,Set(CALL=${CALLERID(number)})
exten => 1,n,Set(DESTINATION=disa.1.1)
exten => 1,n,Set(SLEEP=0)
exten => 1,n,System(/var/lib/asterisk/bin/callback ${CALL} ${DESTINATION} ${SLEEP} &)
exten => 1,n,Hangup

; end of [callback]

[app-callwaiting-cwoff]
include => app-callwaiting-cwoff-custom
exten => *71,1,Answer
exten => *71,n,Wait(1)
exten => *71,n,Macro(user-callerid,)
exten => *71,n,dbDel(CW/${CALLERID(number)})
exten => *71,n,Playback(call-waiting&de-activated)
exten => *71,n,Macro(hangupcall,)

; end of [app-callwaiting-cwoff]

[app-callwaiting-cwon]
include => app-callwaiting-cwon-custom
exten => *70,1,Answer
exten => *70,n,Wait(1)
exten => *70,n,Macro(user-callerid,)
exten => *70,n,Set(DB(CW/${CALLERID(number)})=ENABLED)
exten => *70,n,Playback(call-waiting&activated)
exten => *70,n,Macro(hangupcall,)

; end of [app-callwaiting-cwon]

[app-dialvm]
include => app-dialvm-custom
exten => 850,1,Answer
exten => 850,n,Wait(1)
exten => 850,n,VoiceMailMain()
exten => 850,n,Macro(hangupcall,)
exten => _850.,1,Answer
exten => _850.,n,Wait(1)
exten => _850.,n,Macro(get-vmcontext,${EXTEN:3})
exten => _850.,n,VoiceMailMain(${EXTEN:3}@${VMCONTEXT})
exten => _850.,n,Macro(hangupcall,)

; end of [app-dialvm]

[app-vmmain]
include => app-vmmain-custom
exten => *97,1,Answer
exten => *97,n,Wait(1)
exten => *97,n,Macro(user-callerid,)
exten => *97,n,Macro(get-vmcontext,${CALLERID(num)})
exten => *97,n,VoiceMailMain(${CALLERID(num)}@${VMCONTEXT})
exten => *97,n,Macro(hangupcall,)

; end of [app-vmmain]

[disa]
include => disa-custom
exten => 1,1,Set(RESCOUNT=1)
exten => 1,n(loop),GotoIf($[ ${RESCOUNT} > 5]?end)
exten => 1,n,Read(RRES,press-1,1,1,3,)
exten => 1,n,Set(RESCOUNT=$[${RESCOUNT}+1])
exten => 1,n,GotoIf($[“x${RRES}”=“x”]?loop)
exten => 1,n,Set(TIMEOUT(digit)=5)
exten => 1,n,Set(TIMEOUT(response)=10)
exten => 1,n,Playback(enter-password)
exten => 1,n,DISA(/etc/asterisk/disa-1.conf)
exten => 1,n(end),Hangup

; end of [disa]

[national]
include => national-custom
include => national_bad-number
include => bad-number
exten => _02XXXXXXXXX,1,Goto(national_rulematch,${EXTEN},1)
exten => _01XXXXXXXXX,1,Goto(national_rulematch,${EXTEN},1)
exten => _08XXXXXXXX,1,Goto(national_rulematch,${EXTEN},1)
exten => _XXXXXXXX,1,Goto(national_rulematch,${EXTEN},1)
exten => _XXX,1,Goto(national_rulematch,${EXTEN},1)
exten => s,1,Macro(hangupcall,)
exten => h,1,Macro(hangupcall,)

; end of [national]

[national_rulematch]
include => national_rulematch-custom
include => from-internal-additional
include => outrt-001-sipgate
include => outrt-002-voipcheap
include => national_bad-number
include => bad-number
exten => s,1,Macro(hangupcall,)
exten => h,1,Macro(hangupcall,)

; end of [national_rulematch]

[national_bad-number]
include => national_bad-number-custom

; end of [national_bad-number]

[ivr-2]
include => ivr-2-custom
include => ext-findmefollow
include => ext-local
exten => h,1,Hangup
exten => s,1,Set(LOOPCOUNT=0)
exten => s,n,Set(__DIR-CONTEXT=default)
exten => s,n,Set(IVR_CONTEXT${CONTEXT}=${IVR_CONTEXT})
exten => s,n,Set(_IVR_CONTEXT=${CONTEXT})
exten => s,n,GotoIf($["${CDR(disposition)}" = “ANSWERED”]?begin)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n(begin),Set(TIMEOUT(digit)=3)
exten => s,n,Set(TIMEOUT(response)=2)
exten => s,n,Background(this-call-may-be-monitored-or-recorded&wait-moment)
exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup
exten => 606,1,dbDel(${BLKVM_OVERRIDE})
exten => 606,n,Set(__NODEST=)
exten => 606,n,Goto(ext-group,606,1)
exten => 607,1,dbDel(${BLKVM_OVERRIDE})
exten => 607,n,Set(__NODEST=)
exten => 607,n,Goto(ext-group,607,1)
exten => 8,1,dbDel(${BLKVM_OVERRIDE})
exten => 8,n,Set(__NODEST=)
exten => 8,n,Goto(callback,1,1)
exten => 9,1,dbDel(${BLKVM_OVERRIDE})
exten => 9,n,Set(__NODEST=)
exten => 9,n,Goto(disa,1,1)
exten => t,1,dbDel(${BLKVM_OVERRIDE})
exten => t,n,Set(__NODEST=)
exten => t,n,Goto(ext-group,600,1)
exten => i,1,Playback(invalid)
exten => i,n,Goto(loop,1)
exten => loop,1,Set(LOOPCOUNT=$[${LOOPCOUNT} + 1])
exten => loop,n,GotoIf($[${LOOPCOUNT} > 2]?hang,1)
exten => loop,n,Goto(ivr-2,s,begin)
exten => return,1,Set(IVR_CONTEXT=${CONTEXT})
exten => return,n,Set(IVR_CONTEXT${CONTEXT}=${IVR_CONTEXT
${CONTEXT}})
exten => return,n,Goto(ivr-2,s,begin)
exten => fax,1,Goto(ext-fax,in_fax,1)

; end of [ivr-2]

[app-recordings]
include => app-recordings-custom
exten => *77,1,Macro(user-callerid,)
exten => *77,n,Wait(2)
exten => *77,n,Macro(systemrecording,dorecord)
exten => *99,1,Macro(user-callerid,)
exten => *99,n,Wait(2)
exten => *99,n,Macro(systemrecording,docheck)

; end of [app-recordings]

[ext-recordings]
include => ext-recordings-custom
exten => recording-4,1,Answer
exten => recording-4,n,Playback(custom/badname)
exten => recording-4,n,Hangup
exten => recording-3,1,Answer
exten => recording-3,n,Playback(custom/better-together)
exten => recording-3,n,Hangup
exten => recording-5,1,Answer
exten => recording-5,n,Playback(custom/bettertogether)
exten => recording-5,n,Hangup
exten => recording-6,1,Answer
exten => recording-6,n,Playback(custom/cep20theme)
exten => recording-6,n,Hangup
exten => recording-2,1,Answer
exten => recording-2,n,Playback(this-call-may-be-monitored-or-recorded&wait-moment)
exten => recording-2,n,Hangup

; end of [ext-recordings]

[ext-group]
include => ext-group-custom
exten => 600,1,Macro(user-callerid,)
exten => 600,n,GotoIf($[“foo${BLKVM_OVERRIDE}” = “foo”]?skipdb)
exten => 600,n,GotoIf($["${DB(${BLKVM_OVERRIDE})}" = “TRUE”]?skipov)
exten => 600,n(skipdb),Set(__NODEST=)
exten => 600,n,Set(__BLKVM_OVERRIDE=BLKVM/${EXTEN}/${CHANNEL})
exten => 600,n,Set(__BLKVM_BASE=${EXTEN})
exten => 600,n,Set(DB(${BLKVM_OVERRIDE})=TRUE)
exten => 600,n(skipov),Set(RRNODEST=${NODEST})
exten => 600,n(skipvmblk),Set(__NODEST=${EXTEN})
exten => 600,n,GotoIf($[“foo${RGPREFIX}” = “foo”]?REPCID)
exten => 600,n,Noop(Current RGPREFIX is ${RGPREFIX}…stripping from Caller ID)
exten => 600,n,Set(CALLERID(name)=${CALLERID(name):${LEN(${RGPREFIX})}})
exten => 600,n,Set(RGPREFIX=)
exten => 600,n(REPCID),Noop(CALLERID(name) is ${CALLERID(name)})
exten => 600,n,Set(RecordMethod=Group)
exten => 600,n,Macro(record-enable,101-102,${RecordMethod})
exten => 600,n,Set(RingGroupMethod=ringall)
exten => 600,n(DIALGRP),Macro(dial,15,${DIAL_OPTIONS},101-102)
exten => 600,n,Set(RingGroupMethod=)
exten => 600,n,GotoIf($[“foo${RRNODEST}” != “foo”]?nodest)
exten => 600,n,Set(__NODEST=)
exten => 600,n,dbDel(${BLKVM_OVERRIDE})
exten => 600,n,Goto(ext-local,${VM_PREFIX}101,1)
exten => 600,n(nodest),Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST})
exten => 606,1,Macro(user-callerid,)
exten => 606,n,GotoIf($[“foo${BLKVM_OVERRIDE}” = “foo”]?skipdb)
exten => 606,n,GotoIf($["${DB(${BLKVM_OVERRIDE})}" = “TRUE”]?skipov)
exten => 606,n(skipdb),Set(__NODEST=)
exten => 606,n,Set(__BLKVM_OVERRIDE=BLKVM/${EXTEN}/${CHANNEL})
exten => 606,n,Set(__BLKVM_BASE=${EXTEN})
exten => 606,n,Set(DB(${BLKVM_OVERRIDE})=TRUE)
exten => 606,n(skipov),Set(RRNODEST=${NODEST})
exten => 606,n(skipvmblk),Set(__NODEST=${EXTEN})
exten => 606,n,GotoIf($[“foo${RGPREFIX}” = “foo”]?REPCID)
exten => 606,n,Noop(Current RGPREFIX is ${RGPREFIX}…stripping from Caller ID)
exten => 606,n,Set(CALLERID(name)=${CALLERID(name):${LEN(${RGPREFIX})}})
exten => 606,n,Set(RGPREFIX=)
exten => 606,n(REPCID),Noop(CALLERID(name) is ${CALLERID(name)})
exten => 606,n,Set(RecordMethod=Group)
exten => 606,n,Macro(record-enable,${RecordMethod})
exten => 606,n,Set(RingGroupMethod=ringall)
exten => 606,n,GotoIf($[“foo${RRNODEST}” != “foo”]?DIALGRP)
exten => 606,n,Answer
exten => 606,n,Wait(1)
exten => 606,n,Playback(custom/bettertogether)
exten => 606,n(DIALGRP),Macro(dial,20,${DIAL_OPTIONS},)
exten => 606,n,Set(RingGroupMethod=)
exten => 606,n,GotoIf($[“foo${RRNODEST}” != “foo”]?nodest)
exten => 606,n,Set(__NODEST=)
exten => 606,n,dbDel(${BLKVM_OVERRIDE})
exten => 606,n,Goto(app-blackhole,musiconhold,1)
exten => 606,n(nodest),Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST})
exten => 607,1,Macro(user-callerid,)
exten => 607,n,GotoIf($[“foo${BLKVM_OVERRIDE}” = “foo”]?skipdb)
exten => 607,n,GotoIf($["${DB(${BLKVM_OVERRIDE})}" = “TRUE”]?skipov)
exten => 607,n(skipdb),Set(__NODEST=)
exten => 607,n,Set(__BLKVM_OVERRIDE=BLKVM/${EXTEN}/${CHANNEL})
exten => 607,n,Set(__BLKVM_BASE=${EXTEN})
exten => 607,n,Set(DB(${BLKVM_OVERRIDE})=TRUE)
exten => 607,n(skipov),Set(RRNODEST=${NODEST})
exten => 607,n(skipvmblk),Set(__NODEST=${EXTEN})
exten => 607,n,GotoIf($[“foo${RGPREFIX}” = “foo”]?REPCID)
exten => 607,n,Noop(Current RGPREFIX is ${RGPREFIX}…stripping from Caller ID)
exten => 607,n,Set(CALLERID(name)=${CALLERID(name):${LEN(${RGPREFIX})}})
exten => 607,n,Set(RGPREFIX=)
exten => 607,n(REPCID),Noop(CALLERID(name) is ${CALLERID(name)})
exten => 607,n,Set(RecordMethod=Group)
exten => 607,n,Macro(record-enable,${RecordMethod})
exten => 607,n,Set(RingGroupMethod=ringall)
exten => 607,n,GotoIf($[“foo${RRNODEST}” != “foo”]?DIALGRP)
exten => 607,n,Answer
exten => 607,n,Wait(1)
exten => 607,n,Playback(custom/cep20theme)
exten => 607,n(DIALGRP),Macro(dial,20,m(default)t,)
exten => 607,n,Set(RingGroupMethod=)
exten => 607,n,GotoIf($[“foo${RRNODEST}” != “foo”]?nodest)
exten => 607,n,Set(__NODEST=)
exten => 607,n,dbDel(${BLKVM_OVERRIDE})
exten => 607,n,Goto(app-blackhole,musiconhold,1)
exten => 607,n(nodest),Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST})

; end of [ext-group]

[app-userlogonoff]
include => app-userlogonoff-custom
exten => *12,1,Macro(user-logoff,)
exten => *12,n,Hangup
exten => *11,1,Macro(user-logon,)
exten => *11,n,Hangup
exten => _*11.,1,Macro(user-logon,${EXTEN:3},)
exten => _*11.,n,Hangup

; end of [app-userlogonoff]

[app-pickup]
include => app-pickup-custom
exten => _.,1,Noop(Attempt to Pickup ${EXTEN:2} by ${CALLERID(num)})
exten => _
.,n,Pickup(${EXTEN:2})

; end of [app-pickup]

[app-zapbarge]
include => app-zapbarge-custom
exten => 888,1,Macro(user-callerid,)
exten => 888,n,Set(GROUP()=${CALLERID(number)})
exten => 888,n,Answer
exten => 888,n,Wait(1)
exten => 888,n,ZapBarge()
exten => 888,n,Hangup

; end of [app-zapbarge]

[app-chanspy]
include => app-chanspy-custom
exten => 555,1,Macro(user-callerid,)
exten => 555,n,Answer
exten => 555,n,Wait(1)
exten => 555,n,ChanSpy()
exten => 555,n,Hangup

; end of [app-chanspy]

[ext-test]
include => ext-test-custom
exten => 7777,1,Goto(from-pstn,s,1)
exten => 666,1,Goto(ext-fax,in_fax,1)
exten => h,1,Macro(hangupcall,)

; end of [ext-test]

[ext-did]
include => ext-did-custom
exten => fax,1,Goto(ext-fax,in_fax,1)
exten => 2996253,1,Set(FROM_DID=2996253)
exten => 2996253,n,Goto(ivr-2,s,1)
exten => s,1,Noop(No DID or CID Match)
exten => s,n,Answer
exten => s,n,Wait(2)
exten => s,n,Playback(ss-noservice)
exten => s,n,SayAlpha(${FROM_DID})
exten => _[#X].,1,Set(FROM_DID=${EXTEN})
exten => _[
#X].,n,Noop(Received an unknown call with DID set to ${EXTEN})
exten => _[*#X].,n,Goto(ext-did,s,1)

; end of [ext-did]

[ext-did-direct]
include => ext-did-direct-custom
exten => fax,1,Goto(ext-fax,in_fax,1)
exten => 02890996253,1,Set(FROM_DID=02890996253)
exten => 02890996253,n,Goto(from-did-direct,101,1)

; end of [ext-did-direct]

[ext-local]
include => ext-local-custom
exten => 100,1,Macro(exten-vm,novm,100)
exten => 100,n,Hangup
exten => 100,hint,SIP/100
exten => 101,1,Macro(exten-vm,101,101)
exten => 101,n,Hangup
exten => 101,hint,SIP/101
exten => ${VM_PREFIX}101,1,Macro(vm,101,DIRECTDIAL)
exten => ${VM_PREFIX}101,n,Hangup
exten => 102,1,Macro(exten-vm,novm,102)
exten => 102,n,Hangup
exten => 102,hint,SIP/102
exten => 201,1,Macro(exten-vm,novm,201)
exten => 201,n,Hangup
exten => 201,hint,SIP/201
exten => 301,1,Macro(exten-vm,novm,301)
exten => 301,n,Hangup
exten => 301,hint,SIP/301
exten => 302,1,Macro(exten-vm,novm,302)
exten => 302,n,Hangup
exten => 302,hint,SIP/302

; end of [ext-local]

[outbound-allroutes]
include => outbound-allroutes-custom
include => outrt-001-sipgate
include => outrt-002-voipcheap
exten => foo,1,Noop(bar)

; end of [outbound-allroutes]

[outrt-001-sipgate]
include => outrt-001-sipgate-custom
exten => 10000,1,Macro(dialout-trunk,2,${EXTEN},)
exten => 10000,n,Macro(outisbusy,)
exten => 50000,1,Macro(dialout-trunk,2,${EXTEN},)
exten => 50000,n,Macro(outisbusy,)
exten => _08XXXXXXXX,1,Macro(dialout-trunk,2,${EXTEN},)
exten => _08XXXXXXXX,n,Macro(outisbusy,)

; end of [outrt-001-sipgate]

[outrt-002-voipcheap]
include => outrt-002-voipcheap-custom
exten => _X.,1,Macro(dialout-trunk,3,${EXTEN},)
exten => _X.,n,Macro(outisbusy,)

; end of [outrt-002-voipcheap]

[app-blackhole]
include => app-blackhole-custom
exten => hangup,1,Noop(Blackhole Dest: Hangup)
exten => hangup,n,Hangup
exten => zapateller,1,Noop(Blackhole Dest: Play SIT Tone)
exten => zapateller,n,Answer
exten => zapateller,n,Zapateller()
exten => musiconhold,1,Noop(Blackhole Dest: Put caller on hold forever)
exten => musiconhold,n,Answer
exten => musiconhold,n,MusicOnHold()
exten => congestion,1,Noop(Blackhole Dest: Congestion)
exten => congestion,n,Answer
exten => congestion,n,Playtones(congestion)
exten => congestion,n,Congestion(20)
exten => congestion,n,Hangup
exten => busy,1,Noop(Blackhole Dest: Busy)
exten => busy,n,Answer
exten => busy,n,Playtones(busy)
exten => busy,n,Busy(20)
exten => busy,n,Hangup

; end of [app-blackhole]

[from-internal-additional]
include => from-internal-additional-custom
include => ext-findmefollow
include => fmgrps
include => app-cf-busy-off
include => app-cf-busy-off-any
include => app-cf-busy-on
include => app-cf-off
include => app-cf-off-any
include => app-cf-on
include => app-cf-unavailable-off
include => app-cf-unavailable-on
include => ext-queues
include => app-calltrace
include => app-directory
include => app-echo-test
include => app-speakextennum
include => app-speakingclock
include => app-callwaiting-cwoff
include => app-callwaiting-cwon
include => ext-meetme
include => app-dialvm
include => app-vmmain
include => app-recordings
include => ext-group
include => grps
include => app-userlogonoff
include => app-pickup
include => app-zapbarge
include => app-chanspy
include => ext-test
include => ext-local
include => outbound-allroutes
exten => h,1,Hangup

; end of [from-internal-additional]

Cheers