Table of Contents
This is an always evolving setup and is far from perfect. I will update my notes here as I modify things. Also, if you think I can do something better, please let me know!
Test Numbers
Here are some numbers you can dial to test the ability for calls to complete to my network. You are also welcome to call my desk at 871-3411 if it's a sane time of day (Eastern Time). If I am around I am always happy to chat. If you leave a message with a valid callback number, I may even return your call!
- 871-0020 - Fake milliwatt via Asterisk
- 871-0023 - Businessfunk
- 871-0024 - Terrible MOH
- 871-3001 - Milliwatt from the Meridian 1 Opt 11C
- 871-3720 - MOH from the Meridian 1 Opt 11C
- 871-4000 - “Phonestuffs” IVR
- 871-4264 - 4ANI, will read back the calling party number as received by me
- 871-6001 - Sensaphone 400 behind the rack 'o gear at VoFR Communications DBA TRMGTel.
- 871-6264 - 6ANI, same as 4ANI but via TCL script on the US-East ISR tandem
Asterisk Notes
TODOs: Add anti-trombone check.
[ib-iax-scdp] ; Initial context to flag call as a SCDP call exten => _XXX.,1,Set(scdp=1) same => n,NoOp(***INBOUND SCDP CALL = ${scdp}***) same => n,NoOp(***CALLING PARTY:${CALLERID(num)}***) same => n,NoOp( ***CALLED PARTY:${EXTEN}***) same => n,Goto(ib-iax-scdp-b,${EXTEN},1) same => n,Hangup() [ib-iax-scdp-b] ; This inbound context is for the Shadytel Coordinated Dialing Plan include => ob-iax-scdp-tandem ; This is for temporary "legacy" supported dialing ;include => internal ; My local prefix(es) exten => _871XXXX,1,Progress() same => n,Goto(internal,${EXTEN:3},1) same => n,GoTo(scdp-rls-handler,s,1) same => n,Hangup() [ob-iax-scdp-tandem] ; This outbound context is for the Shadytel Coordinated Dialing Plan ; gewt exten => _415XXXX,1,Progress() same => n,Dial(DAHDI/G0/1222${EXTEN},,g) same => n,GoTo(scdp-rls-handler,s,1) same => n,Hangup() ; techfury90 - via gewt exten => _696XXXX,1,Progress() same => n,Dial(DAHDI/G0/1222${EXTEN},,g) same => n,GoTo(scdp-rls-handler,s,1) same => n,Hangup() ; joe_z exten => _563XXXX,1,Progress() same => n,Dial(IAX2/trmg-joe_z/${EXTEN},,g) same => n,GoTo(scdp-rls-handler,s,1) same => n,Hangup() ; doppler through joe_z exten => _357XXXX,1,Progress() same => n,Dial(IAX2/trmg-joe_z/${EXTEN},,g) same => n,GoTo(scdp-rls-handler,s,1) same => n,Hangup() ; appledash exten => _428XXXX,1,Progress() same => n,Dial(IAX2/trmg-appledash/${EXTEN},,g) same => n,GoTo(scdp-rls-handler,s,1) same => n,Hangup() ; andrew867 exten => _222XXXX,1,Progress() same => n,Dial(IAX2/trmg-to-andrew-trunk/${EXTEN:3},,g) same => n,GoTo(scdp-rls-handler,s,1) same => n,Hangup() exten => _709XXXX,1,Progress() same => n,Dial(IAX2/trmg-to-andrew-trunk/${EXTEN:3},,g) same => n,GoTo(scdp-rls-handler,s,1) same => n,Hangup() exten => _867XXXXX,1,Progress() same => n,Dial(IAX2/trmg-to-andrew-trunk/${EXTEN:3},,g) same => n,GoTo(scdp-rls-handler,s,1) same => n,Hangup() ; My local prefix(es) - TODO: ADD ANTI-TROMBONING CHECK ; This is for testing purposes so I can dial myself exten => _871XXXX,1,Progress() same => n,Set(CALLERID(num)=222${CALLERID(num)}) same => n,Goto(internal,${EXTEN:3},1) same => n,GoTo(scdp-rls-handler,s,1) same => n,Hangup() ; Catchall exten => e,1,Goto(scdp-rls-handler,s,1) same => n,Hangup() [ob-iax-scdp-internal] ; This outbound context is for local Shadytel Coordinated Dialing Plan translations exten => _1222XXXXXXX!,1,Set(CALLERID(name)=TRMG A) same => n,Set(CALLERID(num)=871${CALLERID(num)}) same => n,Goto(ob-iax-scdp-tandem,${EXTEN:4},1) same => n,Hangup() [scdp-rls-handler] ; Building this as different cause codes surface. exten => s,1,Set(cc=${HANGUPCAUSE}) same => n,NoOp(***RLS CAUSE: ${cc}***) same => n,ExecIf($[${cc} = 0]?Goto(nis)) same => n,ExecIf($[${cc} = 16]?Goto(normalclearing)) same => n,ExecIf($[${cc} = 17]?Goto(busy)) same => n,ExecIf($[${cc} = 34]?Goto(nocircuit)) same => n,ExecIf($[${cc} = 88]?Goto(nis)) same => n,ExecIf($[${cc} = 100]?Goto(nis)) same => n(catchall),Playback(/var/lib/asterisk/sounds/intercepts/scdp_facility_trouble,noanswer) same => n,SayNumber(${cc}) same => n,Playback(silence/1&/var/lib/asterisk/sounds/intercepts/scdp_facility_trouble,noanswer) same => n,SayNumber(${cc}) same => n,Hangup() same => n(normalclearing),Playback(silence/1&/var/lib/asterisk/sounds/intercepts/dialing_w_shadytel,noanswer) same => n,Hangup() same => n(busy),Busy() same => n(nocircuit),Playback(/var/lib/asterisk/sounds/intercepts/scdp_cbcad,noanswer) same => n,Playback(silence/1&/var/lib/asterisk/sounds/intercepts/scdp_cbcad,noanswer) same => n,Hangup() same => n(nis),Playback(/var/lib/asterisk/sounds/intercepts/scdp_nis,noanswer) same => n,SayNumber(${cc}) same => n,Playback(silence/1&/var/lib/asterisk/sounds/intercepts/scdp_nis,noanswer) same => n,SayNumber(${cc}) same => n,Hangup()
Cisco Notes
Here is an example of a basic VoIP config, translation-pattern, and dial-peer for an H.323 call to gewt
VoIP Configuration
voice service voip no ip address trusted authenticate allow-connections h323 to h323 allow-connections h323 to sip allow-connections sip to h323 allow-connections sip to sip
Note: “no ip address trusted authenticate” disables automatic “toll fraud” preventions in modern IOS versions. Personally, I don't like it, and instead I use ACLs and/or firewall rules to block undesired IPs from hitting the ISR.
voice translation-rule 1010000 rule 1 /^......./ // voice translation-profile strip_cac translate called 1010000
This is to strip the “carrier access code” I use on my local network for SCDP calls (which is 1-222, a currently unassigned NPA)
Dial-Peer
dial-peer voice 1222415 voip description GEWTTANDEM SCDP - H323 translation-profile outgoing strip_cac huntstop destination-pattern 1222415.T session target ipv4:[IP_of_destination] codec g711ulaw bytes 80