For NOC support, call 563-9400
test numbers:
^ number ^ destination ^
| 8000 | asterisk 1004hz |
| 8200 | definity mW then silence |
| 8203 | definity loopback/echo |
| 8400 | meridian mW then silence |
====== Directory ======
Prefix 563
^ number ^ description ^
| 8000 | asterisk 1004hz |
| 8200 | definity mW then silence |
| 8203 | definity loopback/echo |
| 8400 | meridian mW then silence |
| 92XX | definity extensions
| 9200 | kitchen table phone |
| 9201 | living room phone |
| 93XX | cisco 3845 extensions |
| 9300 | cisco 3845 MICA bank |
| 9301 | kitchen modem |
| 939[2-9] | UDS modem bank on cisco 2511 |
| 94XX | meridian extensions |
| 9400 | living room wall set |
| 9401 | bedroom rotary set |
| 9402 | ISDN BRI |
| 9403 | ISDN BRI |
| 9404 | kitchen phone |
====== Switches ======
{{joe_z:joe_z-scdp_diagram.svg}}
{{joe_z:joe_z-scdp_diagram.dia?linkonly|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.