All pastes #911585 Raw Edit

Something

public text v1 · immutable
·published 2008-02-20 20:20 UTC
rendered paste body
[general]
static=yes
writeprotect=no


[globals]
#include "local_vars.conf"

CONSOLE=Console/dsp                             ; Console interface for demo

EMERGENCY=0
EMERGENCY_TRUNK=Zap/3
EMERGENCY_NUM=911

LOCAL_AREA=203
CALLERID_NUM=2035555555
CALLERID_NAME=Comapny

NICKOFFICE=12035555555

[macro-oneline]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,GotoIf($["${ARG1}" = "${CALLERIDNUM}"]?voicemail:exten)

exten => s,n(voicemail),VoicemailMain(${CALLERIDNUM})
exten => s,n,Hangup()

exten => s,n(exten),Dial(SIP/${ARG1},20,t)
exten => s,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)
exten => s,n,Congestion()
exten => s,n,Hangup()

exten => s,n(busy),Voicemail(b${ARG1})
exten => s,n,Hangup()

exten => s,n(unavail),Voicemail(u${ARG1})
exten => s,n,Hangup()


[macro-remote]
exten => s,1,Answer
exten => s,n,Macro(dialenum,$ARG1)
exten => s,n,Hangup()


[macro-dialenum]
exten => s,1,Set(CALLERID(all)=${CALLERID_NAME} <${CALLERID_NUM}>)
exten => s,n,Dial(SIP/${ARG1}@sipbroker-out)
exten => s,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?chanunavail)
exten => s,n,Congestion()
exten => s,n,Hangup()

exten => s,n(chanunavail),GotoIf(${Local${ARG1:1:6}}?zap:sip)
exten => s,n(sip),Set(CALLERID(all)=${CALLERID_NAME} <${CALLERID_NUM}>)
exten => s,n,Dial(SIP/${ARG1}@asterlink)
exten => s,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?zap)
exten => s,n,Congestion()
exten => s,n,Hangup()

exten => s,n(zap),Set(CALLERID(all)=${CALLERID_NAME} <${CALLERID_NUM}>)
exten => s,n,Set(LOCAL=${Local{$ARG1:1:6}})
exten => s,n,GotoIf(${LOCAL}?zaplocal)
exten => s,n,Set(CALLNUM=${ARG1})
exten => s,n(zaplocal),Set(CALLNUM=${Local${ARG1:1:6}:1}${ARG1:4})
exten => s,n,Dial(ZAP/g1/${CALLNUM})
exten => s,n,Congestion()
exten => s,n,Hangup()


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

[extensions]
exten => 106,1,Macro(remote,${NICKOFFICE})
exten => _1XX,1,Macro(oneline,${EXTEN})

;conference
exten => 200,1,MeetMe(200|p)
exten => 200,n,Playback(vm-goodbye)
exten => 200,n,Hangup()

[outgoing]
exten => _9NXXXXXX,1,Macro(dialenum,1${LOCAL_AREA}${EXTEN:1})
exten => _9NXXNXXXXXX,1,Macro(dialenum,1${EXTEN:1})
exten => _91NXXNXXXXXX,1,Macro(dialenum,$EXTEN:1})
exten => 911,1,Goto(nineoneone,s,1)
exten => _[468]11,1,Dial(zap/g1/${EXTEN})


[services]
; Access VoiceMail
exten => 500,1,VoicemailMain(${CALLERIDNUM})
exten => 500,n,Hangup()

exten => 555,1,VoicemailMain
exten => 555,n,Hangup()

; Create an extension, 501, for evaulating echo latency.
exten => 501,1,Playback(demo-echotest) ; Let them know what's going on
exten => 501,n,Echo                    ; Do the echo test
exten => 501,n,Playback(demo-echodone) ; Let them know it's over
exten => 501,n,Hangup()

; Record a temporary GSM file
exten => 502,1,Wait(2)
exten => 502,n,Record(/tmp/asterisk-recording:gsm)
exten => 502,n,Wait(2)
exten => 502,n,Playback(/tmp/asterisk-recording)
exten => 502,n,Wait(2)
exten => 502,n,Hangup()

; Say Current Date and Time
exten => 503,1,DateTime()
exten => 503,n,Wait(1)
exten => 503,n,DateTime()
exten => 503,n,Hangup()

; Read back caller's number
exten => 504,1,Wait(1)
exten => 504,n,SayDigits(${CALLERIDNUM})
exten => 504,n,Wait(1)
exten => 504,n,SayDigits(${CALLERIDNUM})
exten => 504,n,Hangup()

; Read back digitis
exten => 505,1,Wait(1)
exten => 505,n,Read(CMD||4)
exten => 505,n,Wait(1)
exten => 505,n,SayDigits(${CMD})
exten => 505,n,Hangup()


[toll-access]
include => extensions
include => outgoing
include => services


[extservices]
; Directory
exten => 9,1,Directory(default|extensions)
exten => 9,n,Hangup()

; check VM
exten => 888,1,VoicemailMain
exten => 888,n,Hangup()

; products services
exten => 2,1,Dial(SIP/101,20)
exten => 2,n,Voicemail(u101)
exten => 2,n,Hangup()

; techsupport
exten => 3,1,Dial(SIP/101,20)
exten => 3,n,Voicemail(u101)
exten => 3,n,Hangup()

; careers
exten => 4,1,Dial(SIP/103,20)
exten => 4,n,Voicemail(u103)
exten => 4,n,Hangup()

; operator
exten => 5,1,Dial(SIP/103,20)
exten => 5,n,Voicemail(u103)
exten => 5,n,Hangup()


[incoming]
exten => _X.,1,Goto(s,1)
exten => i,1,Goto(s,begin)
exten => s,1,Answer
exten => s,n,Wait,1
exten => s,n,DigitTimeout(10)           ; Set Digit Timeout to 10 seconds
exten => s,n,ResponseTimeout(20)        ; Set Response Timeout to 20 seconds
exten => s,n,Background(graphlogic-intro)
exten => s,n(begin),Background(graphlogic-enter-exten)
exten => s,n,Background(graphlogic-lastname)
exten => s,n,Background(graphlogic-products-services)
exten => s,n,Background(graphlogic-customer-support)
exten => s,n,Background(graphlogic-careers)
exten => s,n,Background(graphlogic-allother)
exten => t,1,Hangup

include => extensions
include => extservices