[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#