joe_z - Shadytel/Dialplan GitHub Wiki

Switches

dia file

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.