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.