rendered paste body[globals]
CONSOLE=Console/dsp ; Console interface for demo
;CONSOLE=Zap/1
EMERGENCY=0
EMERGENCY_TRUNK=Zap/3
EMERGENCY_NUM=911
[extensions]
exten => 100,1,Dial(SIP/100,20)
exten => 100,2,Hangup
exten => 101,1,Dial(SIP/101,20) ; Ring for 20 seconds
exten => 101,2,Voicemail(u${EXTEN}) ; Unavail voicemail if extension doesn't answer
exten => 101,3,Hangup
exten => 101,102,Voicemail(b${EXTEN}) ; Busy Voicemail if extension is busy
exten => 101,103,Hangup
exten => 102,1,Dial(SIP/102,20)
exten => 102,2,Voicemail(u${EXTEN})
exten => 102,3,Hangup
exten => 102,102,Voicemail(b${EXTEN})
exten => 102,103,Hangup
exten => 103,1,Dial(SIP/103,20)
exten => 103,2,Voicemail(u${EXTEN})
exten => 103,3,Hangup
exten => 103,102,Voicemail(b${EXTEN})
exten => 103,103,Hangup
exten => 111,1,Dial(SIP/111,20)
exten => 111,2,Voicemail(u${EXTEN})
exten => 111,3,Hangup
exten => 111,102,Voicemail(b${EXTEN})
exten => 111,103,Hangup
exten => 112,1,Dial(SIP/112,20)
exten => 112,2,Voicemail(u${EXTEN})
exten => 112,3,Hangup
exten => 112,102,Voicemail(b${EXTEN})
exten => 112,103,Hangup
exten => 113,1,Dial(SIP/113,20)
exten => 113,2,Voicemail(u${EXTEN})
exten => 113,3,Hangup
exten => 113,102,Voicemail(b${EXTEN})
exten => 113,103,Hangup
exten => 114,1,Dial(SIP/114,20)
exten => 114,2,Voicemail(u${EXTEN})
exten => 114,3,Hangup
exten => 114,102,Voicemail(b${EXTEN})
exten => 114,103,Hangup
exten => 115,1,Dial(SIP/115,20)
exten => 115,2,Voicemail(u${EXTEN})
exten => 115,3,Hangup
exten => 115,102,Voicemail(b${EXTEN})
exten => 115,103,Hangup
[externalservices]
exten => 9,1,Directory(extensions,extensions)
exten => 9,2,Hangup
exten => 888,1,VoicemailMain
exten => 888,2,Hangup
exten => 2,1,Dial(SIP/102,20)
exten => 2,2,Voicemail(u102)
exten => 2,3,Hangup
exten => 3,1,Dial(SIP/102,20)
exten => 3,2,Voicemail(u102)
exten => 3,3,Hangup
extem => 4,1,Dial(SIP/102,20)
exten => 4,2,Hangup
exten => 0,1,Dial(SIP/102,20)
exten => 0,2,Voicemail(u102)
exten => 0,3,Hangup
[services]
; Access VoiceMail
exten => 500,1,VoicemailMain(${CALLERIDNUM})
exten => 500,2,Hangup
; Create an extension, 501, for evaulating echo latency.
exten => 501,1,Playback(demo-echotest) ; Let them know what's going on
exten => 501,2,Echo ; Do the echo test
exten => 501,3,Playback(demo-echodone) ; Let them know it's over
exten => 501,4,Goto(s,4) ; Start over
; Record a temporary GSM file
exten => 502,1,Wait(2)
exten => 502,2,Record(/tmp/asterisk-recording:gsm)
exten => 502,3,Wait(2)
exten => 502,4,Playback(/tmp/asterisk-recording)
exten => 502,5,Wait(2)
exten => 502,6,Hangup
; Say Current Date and Time
exten => 503,1,DateTime()
exten => 503,2,Wait(1)
exten => 503,3,DateTime()
exten => 503,4,Hangup
; Read back caller's number
exten => 504,1,Wait(1)
exten => 504,2,SayDigits(${CALLERIDNUM})
exten => 504,3,Wait(1)
exten => 504,4,SayDigits(${CALLERIDNUM})
exten => 504,5,Hangup
; *11 calls
exten => 911,1,Goto(nineoneone,s,1)
exten => 411,1,Dial(ZAP/g1/411)
exten => 611,1,Dial(ZAP/g1/611)
[nineoneone]
exten => s,1,SetVar(SET_EMERG_FLAG=0)
exten => s,n(checkavail),ChanIsAvail(${EMERGENCY_TRUNK})
exten => s,n,SetGlobalVar(EMERGENCY=1)
exten => s,n,SetVar(SET_EMERG_FLAG=1)
exten => s,n(dial),Dial(${EMERGENCY_TRUNK}/${EMERGENCY_NUM})
exten => s,s+2(trunkbusy),GotoIf($[${EMERGENCY} = 1]?inprogress)
exten => s,n,SoftHangup(${EMERGENCY_TRUNK}-1)
exten => s,n,Wait(12)
exten => s,n,Goto(checkavail)
exten => s,s+2(inprogress),Congestion
exten => s,checkavail+101(notavail),Goto(trunkbusy)
exten => h,1,GotoIf($[${SET_EMERG_FLAG} = 1]?3)
exten => h,3,SetGlobalVar(EMERGENCY=0)
[incoming]
exten => s,1,Answer
exten => s,2,Wait,1
exten => s,3,DigitTimeout(10) ; Set Digit Timeout to 10 seconds
exten => s,4,ResponseTimeout(20) ; Set Response Timeout to 20 seconds
exten => s,5,Background(graphlogic-intro)
exten => s,6,Background(graphlogic-enter-exten)
exten => s,7,Background(graphlogic-lastname)
exten => s,8,Background(graphlogic-products-services)
exten => s,9,Background(graphlogic-customer-support)
exten => s,10,Background(graphlogic-careers)
exten => s,11,Background(graphlogic-allother)
;exten => s,9,Background(vm-extension) ; "Thanks for calling press 1 for sales, 2 for support, ..."
exten => t,1,Hangup
; Allow incoming calls from the outside to dial our internal extensions
;
include => extensions
include => externalservices
[toll-trunks]
;
; Outbound 1-nxx-nxx-xxxx goes via: PSTN
;
exten => _91NXXNXXXXXX,1,Dial(Zap/g1/${EXTEN:1})
exten => _91NXXNXXXXXX,2,Congestion
exten => _9011.,1,Dial(Zap/g1/${EXTEN:1})
exten => _9011.,2,Congestion
[local-trunks]
;
; Outbound to nxx-xxxx goes via: PSTN
;
exten => _9NXXXXXX,1,Dial(Zap/g1/${EXTEN:1})
exten => _9NXXXXXX,2,Congestion
;
[local-trunks2]
exten => _9NXXNXXXXXX,1,Dial(Zap/g1/${EXTEN:1})
exten => _9NXXNXXXXXX,2,Congestion
[local-access]
;
; Extensions that are this context are allowed to only call local PSTN numbers and other extensions
;
include => extensions
include => services ; voicemail, 911, etc
include => local-trunks ; Access to Local numbers
[toll-access]
;
; Extensions that are this context are allowed to call local and long distance PSTN numbers and other extensions
;
include => local-access ; Everything local-access has
include => local-trunks2
include => toll-trunks ; Access to toll numbers
hydrogen:/home/alex#