joe_z - Shadytel/Dialplan GitHub Wiki
Switches
Asterisk - LBRDILLGAX0
todo: anti-tromboning. For now, just don't create a loop on accident. just Don't Do It.
todo: outgoing calling party number should be set to match SCDP
Each trunk directs in to it's appropriate inbound context. SCDP trunks get 1 (222) appended automatically which denotes an SCDP number on my system. 222 is an unused NPA in NANP. The number is then sent to the scdp context for further decoding.
[trmg-inbound]
; SCDP tandem
exten => _X.,1,Progress()
same => n,Gosub(scdp,1222${EXTEN},1(private))
same => n,Hangup
[doppler-inbound]
; SCDP endpoint
exten => _X.,1,Progress()
same => n,Gosub(scdp,1222${EXTEN},1(private))
same => n,Hangup
The scdp context includes various other contexts that correspond to specific outgoing trunks and local numbers. Those contexts perform the necessary digit conversion, for example to 4 digits for local, 7 digits for calls placed through trmg, or 4 digits for calls placed to doppler.
Additionally, a crude permissions system is implemented disallowing calls from 'public' to be placed to scdp destinations.
[scdp]
; shadytel coordinated dialplan
include => local-scdp
include => doppler-scdp
include => trmg-scdp
[local-scdp]
; local stuff
exten => _1222563XXXX,1,Gosub(inbound-sub,${EXTEN:7},1(${ARG1}))
same => n,Hangup
[trmg-scdp]
; numbers that route to or through trmg
; Andrew
exten => _1222222XXXX,1,Goto(${ARG1})
same => n(public),Progress
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Hangup()
same => n(private),Noop
same => n(internal),Dial(IAX2/trmg-joe_z/${EXTEN:4},180,${IF($["${ARG1}" = "internal"]?T)})
same => n,Hangup
; gewt
; GewtTandem
exten => _1222415XXXX,1,Goto(${ARG1})
same => n(public),Progress
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Hangup()
same => n(private),Noop
same => n(internal),Dial(IAX2/trmg-joe_z/${EXTEN:4},180,${IF($["${ARG1}" = "internal"]?T)})
same => n,Hangup
; appledash
; DashTel
; 428 == HAT
exten => _1222428XXXX,1,Goto(${ARG1})
same => n(public),Progress
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Hangup()
same => n(private),Noop
same => n(internal),Dial(IAX2/trmg-joe_z/${EXTEN:4},180,${IF($["${ARG1}" = "internal"]?T)})
same => n,Hangup
; techfury90
; OwOTel
exten => _1222466XXXX,1,Goto(${ARG1})
same => n(public),Progress
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Hangup()
same => n(private),Noop
same => n(internal),Dial(IAX2/trmg-joe_z/${EXTEN:4},180,${IF($["${ARG1}" = "internal"]?T)})
same => n,Hangup
; aperron
; INads 6
exten => _1222696XXXX,1,Goto(${ARG1})
same => n(public),Progress
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Hangup()
same => n(private),Noop
same => n(internal),Dial(IAX2/trmg-joe_z/${EXTEN:4},180,${IF($["${ARG1}" = "internal"]?T)})
same => n,Hangup
; Andrew
exten => _1222709XXXX,1,Goto(${ARG1})
same => n(public),Progress
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Hangup()
same => n(private),Noop
same => n(internal),Dial(IAX2/trmg-joe_z/${EXTEN:4},180,${IF($["${ARG1}" = "internal"]?T)})
same => n,Hangup
; Andrew
exten => _1222867XXXXX,1,Goto(${ARG1})
same => n(public),Progress
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Hangup()
same => n(private),Noop
same => n(internal),Dial(IAX2/trmg-joe_z/${EXTEN:4},180,${IF($["${ARG1}" = "internal"]?T)})
same => n,Hangup
; local to trmg
; TRMGtel
; VOFR
exten => _1222871XXXX,1,Goto(${ARG1})
same => n(public),Progress
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Hangup()
same => n(private),Noop
same => n(internal),Dial(IAX2/trmg-joe_z/${EXTEN:4},180,${IF($["${ARG1}" = "internal"]?T)})
same => n,Hangup
; catchall for scdp numbers that trmg can maybe route
;exten => _1222XXXXXXX,1,Goto(${ARG1})
;same => n(public),Progress
;same => n,Playback(custom/68000-cbrfca,noanswer)
;same => n,Playback(custom/68000-cbrfca,noanswer)
;same => n,Hangup()
;same => n(private),Noop
;same => n(internal),Dial(IAX2/trmg-joe_z/${EXTEN:4},180,${IF($["${ARG1}" = "internal"]?T)})
;same => n,Hangup
[doppler-scdp]
; numbers that route to doppler
exten => _1222357XXXX,1,Goto(${ARG1})
same => n(public),Progress
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Playback(custom/68000-cbrfca,noanswer)
same => n,Hangup()
same => n(private),Noop
;same => n(internal),Dial(IAX2/doppler-joe_z/${EXTEN:4},180,${IF($["${ARG1}" = "internal"]?T)})
same => n(internal),Dial(IAX2/doppler-joe_z/${EXTEN:7},180,${IF($["${ARG1}" = "internal"]?T)})
same => n,Hangup
Trunks
trmg - TR1 - 871
IAX2
Not much to it. For historical reasons, I register to trmg on this trunk. I send an SCDP prefix and number since trmg's equipment functions as a tandem.
I route almost all SCDP calls over this trunk. The obvious exceptions are calls to my own prefix (563) as well as calls to doppler (357).
doppler - DoppLeR - 357
IAX2
Again, for historical reasons, I register to doppler on this trunk. I send 4 digits, stripping the prefix from the number.