[general]
static=yes
writeprotect=yes
[globals]
;*****************************************************************************
;*****!!!!! DO NOT EDIT THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING!!!!!*****
;*****************************************************************************
; If you need to make changes to the user/extensions, edit mappings.inc
#include mappings.inc
;
; general rules for extensions:
; 1xx -> normal extensions
; 2xx -> menu/ivr extensions
; 21xx -> system extensions
; 8500 -> voicemail
; 7xx -> parking/unparking calls
; 600x -> meetme conference rooms
; 86xx -> direct access to queus/menu
; 9xxxxxxxx -> external 7 digit dialing
; 9xxxxxxxxxxxx -> external 11 digit dialing
; 9011xxxxxxxxxx -> external international
; [3469]11 -> service code
; 9911 -> also works
;
; Sipura dialplan:
; default: (*xx|[3469]11|0|00|[2-9]xxxxxx|1xxx[2-9]xxxxxxS0|xxxxxxxxxxxx.)
;
INTTRUNK = Zap/G2
INTTRUNK2 = Zap/g2 ; Failover if VoIP route down
LDTRUNK = Zap/G2
LOCALTRUNK = Zap/g2
e911 = Zap/25 ; Specific channel for e911 services
LOCALAC = 806 ; Local area code
;LOCALSTATIONID = "Asteria Solutions Group <256-705-0280>"
[trunkint]
;
; International long distance through trunk
;
exten => _9011.,1,SetVar(NUMBER=${EXTEN})
exten => _9011.,2,GotoIf($[x${CID${CALLERIDNUM}} != x]?3:10)
exten => _9011.,3,SetCIDNum(${CID${CALLERIDNUM}}|a)
exten => _9011.,4,Dial(${INTTRUNK}/${EXTEN:1})
exten => _9011.,5,Goto(s-int-${DIALSTATUS}|1)
exten => _9011.,10,SetCIDNum(${CID_MAIN}|a)
exten => _9011.,11,Goto(4)
exten => s-BUSY,1,Busy()
exten => s-int-CHANUNAVAIL,1,Dial(${INTTRUNK2}/${NUMBER:1})
exten => s-int-CHANUNAVAIL,2,Congestion()
exten => s-int-CHANUNAVAIL,102,Busy()
exten => _s-int-.,1,Goto(s-int-CHANUNAVAIL|1)
[trunkld]
;
; Long distance context accessed through trunk
;
exten => _91NXXNXXXXXX,1,SetVar(NUMBER=${EXTEN})
exten => _91NXXNXXXXXX,2,GotoIf($[x${CID${CALLERIDNUM}} != x]?3:10)
exten => _91NXXNXXXXXX,3,SetCIDNum(${CID${CALLERIDNUM}}|a)
exten => _91NXXNXXXXXX,4,Dial(${LDTRUNK}/${EXTEN:1})
exten => _91NXXNXXXXXX,5,Goto(s-ld-${DIALSTATUS}|1)
exten => _91NXXNXXXXXX,10,SetCIDNum(${CID_MAIN}|a)
exten => _91NXXNXXXXXX,11,Goto(4)
exten => s-ld-BUSY,1,Busy()
exten => s-ld-CHANUNAVAIL,1,Dial(${INTTRUNK}/${NUMBER:1})
exten => s-ld-CHANUNAVAIL,2,Dial(${INTTRUNK2}/${NUMBER:1})
exten => s-ld-CHANUNAVAIL,3,Congestion()
exten => s-ld-CHANUNAVAIL,102,Busy()
exten => s-ld-CHANUNAVAIL,103,Busy()
exten => _s-ld-.,1,Goto(s-ld-CHANUNAVAIL|1)
[trunklocal]
;
; Local seven-digit dialing accessed through trunk interface
;
exten => _9NXXXXXX,1,SetVar(NUMBER=${EXTEN})
exten => _9NXXXXXX,2,GotoIf($[x${CID${CALLERIDNUM}} != x]?3:10)
exten => _9NXXXXXX,3,SetCIDNum(${CID${CALLERIDNUM}}|a)
exten => _9NXXXXXX,4,Dial(${LOCALTRUNK}/${EXTEN:1})
exten => _9NXXXXXX,5,Goto(s-lo-${DIALSTATUS}|1)
exten => _9NXXXXXX,10,SetCIDNum(${CID_MAIN}|a)
exten => _9NXXXXXX,11,Goto(4)
exten => s-lo-BUSY,1,Busy()
exten => s-lo-CHANUNAVAIL,1,Dial(${INTTRUNK}/${LOCALAC}${NUMBER:1})
exten => s-lo-CHANUNAVAIL,2,Dial(${INTTRUNK2}/${LOCALAC}${NUMBER:1})
exten => s-lo-CHANUNAVAIL,3,Congestion()
exten => s-lo-CHANUNAVAIL,102,Busy()
exten => s-lo-CHANUNAVAIL,103,Busy()
exten => _s-lo-.,1,Goto(s-lo-CHANUNAVAIL|1)
[trunktollfree]
;
; Long distance context accessed through trunk interface
;
exten => _91800NXXXXXX,1,SetVar(NUMBER=${EXTEN})
exten => _91800NXXXXXX,2,GotoIf($[x${CID${CALLERIDNUM}} != x]?3:10)
exten => _91800NXXXXXX,3,SetCIDNum(${CID${CALLERIDNUM}}|a)
exten => _91800NXXXXXX,4,Dial(${LOCALTRUNK}/${EXTEN:1})
exten => _91800NXXXXXX,5,Goto(s-tf-${DIALSTATUS}|1)
exten => _91888NXXXXXX,1,SetVar(NUMBER=${EXTEN})
exten => _91888NXXXXXX,2,GotoIf($[x${CID${CALLERIDNUM}} != x]?3:10)
exten => _91888NXXXXXX,3,SetCIDNum(${CID${CALLERIDNUM}}|a)
exten => _91888NXXXXXX,4,Dial(${LOCALTRUNK}/${EXTEN:1})
exten => _91888NXXXXXX,5,Goto(s-tf-${DIALSTATUS}|1)
exten => _91877NXXXXXX,1,SetVar(NUMBER=${EXTEN})
exten => _91877NXXXXXX,2,GotoIf($[x${CID${CALLERIDNUM}} != x]?3:10)
exten => _91877NXXXXXX,3,SetCIDNum(${CID${CALLERIDNUM}}|a)
exten => _91877NXXXXXX,4,Dial(${LOCALTRUNK}/${EXTEN:1})
exten => _91877NXXXXXX,5,Goto(s-tf-${DIALSTATUS}|1)
exten => _91866NXXXXXX,1,SetVar(NUMBER=${EXTEN})
exten => _91866NXXXXXX,2,GotoIf($[x${CID${CALLERIDNUM}} != x]?3:10)
exten => _91866NXXXXXX,3,SetCIDNum(${CID${CALLERIDNUM}}|a)
exten => _91866NXXXXXX,4,Dial(${LOCALTRUNK}/${EXTEN:1})
exten => _91866NXXXXXX,5,Goto(s-tf-${DIALSTATUS}|1)
exten => _91700NXXXXXX,1,SetVar(NUMBER=${EXTEN})
exten => _91700NXXXXXX,2,GotoIf($[x${CID${CALLERIDNUM}} != x]?3:10)
exten => _91700NXXXXXX,3,SetCIDNum(${CID${CALLERIDNUM}}|a)
exten => _91700NXXXXXX,4,Dial(IAX2/iaxtel/${EXTEN:1})
exten => _91700NXXXXXX,5,Goto(s-tf-${DIALSTATUS}|1)
exten => s-tf-BUSY,1,Busy()
exten => s-tf-CHANUNAVAIL,1,Dial(${INTTRUNK}/${NUMBER:1})
exten => s-tf-CHANUNAVAIL,2,Dial(${INTTRUNK}/${NUMBER:1})
exten => s-tf-CHANUNAVAIL,3,Congestion()
exten => s-tf-CHANUNAVAIL,102,Busy()
exten => s-tf-CHANUNAVAIL,103,Busy()
exten => _s-tf-.,1,Goto(s-CHANUNAVAIL|1)
[from_voip]
;
; initial context for calls coming from VoIP clients
; this applies settings which are common for all clients
; such as mapping caller id and specifying absolute timeout
;
exten => _X.,1,SetVar(DIRECTION=OUTGOING)
exten => _X.,2,GotoIf($["x${ABSOLUTETIME}" != "x"]?3:4)
exten => _X.,3,Absolutetimeout(${ABSOLUTETIME})
exten => _X.,4,GotoIf($["x${INT_CID${CALLERIDNUM}}" != "x"]?5:6)
exten => _X.,5,SetCallerId(${INT_CID${CALLERIDNUM}}|a)
exten => _X.,6,GotoIf($["x${FROMEXTEN}" != "x"]?11)
exten => _X.,7,GotoIF($[${LEN(${CALLERIDNUM})}$ = 4]?10)
exten => _X.,8,SetVAR(FROMEXTEN=${CALLERIDNUM:0:6})
exten => _X.,9,Goto(11)
exten => _X.,10,SetVar(FROMEXTEN=${CALLERIDNUM})
exten => _X.,11,GotoIf($[${EXTEN} : 911|9911]?internal|${EXTEN}|1)
exten => _X.,12,GotoIf($[${CHANNEL:0:5} = Local]?international|${EXTEN}|1)
exten => _X.,13,GotoIf($[${LEN(${CALLERIDNUM})} != 4]?international|${EXTEN}|1)
exten => _X.,14,GotoIf($[${LEN(${${CALLERIDNUM}PERM})} != 0]?${${CALLERIDNUM}PERM},${EXTEN},1:internal,${EXTEN},1)
exten => _*XXXXXXXXXX*XXXXXXXXXX*,1,Cut(ANI=EXTEN|*|2)
exten => _*XXXXXXXXXX*XXXXXXXXXX*,2,NoOp(ANI = ${ANI})
exten => _*XXXXXXXXXX*XXXXXXXXXX*,3,Cut(MYDNIS=EXTEN|*|3)
exten => _*XXXXXXXXXX*XXXXXXXXXX*,4,NoOp(DNIS = ${MYDNIS})
exten => _*XXXXXXXXXX*XXXXXXXXXX*,5,SetCallerID(${MYANI}|a)
exten => _*XXXXXXXXXX*XXXXXXXXXX*,6,Goto(${MYDNIS},1)
[from_tdm]
;
; initial context for calls coming from FXS TDM lines/ChannelBank
; this applies settings which are common for all clients
; such as mapping caller id and specifying absolute timeout
;
exten => _7771NXXNXXXXXX,1,Dial(IAX2/mixtest:m1xt35t@67.105.44.195/${EXTEN:3})
exten => _7771NXXNXXXXXX,2,Hangup()
exten => _702XX,1,Answer
exten => _702XX,2,Wait(1)
exten => _702XX,3,Voicemail(u${EXTEN:1})
exten => _702XX,4,Hangup
exten => 611,1,Dial(Zap/G2/611)
exten => _[0-68-9]XXX,1,Setvar(DIRECTION=OUTGOING)
exten => _[0-68-9]XXX,2,Goto(ftdm|${EXTEN}|1)
exten => _91NXXNXXXXXX,1,SetVar(DIRECTION=OUTGOING)
exten => _91NXXNXXXXXX,2,Goto(ftdm|${EXTEN}|1)
exten => _918XXXXXXXXX,1,SetVar(DIRECTION=OUTGOING)
exten => _918XXXXXXXXX,2,Goto(ftdm|${EXTEN}|1)
exten => _9NXXXXXX,1,SetVar(DIRECTION=OUTGOING)
exten => _9NXXXXXX,2,Goto(ftdm|${EXTEN}|1)
exten => _9011.,1,SetVar(DIRECTION=OUTGOING)
exten => _9011.,2,Goto(ftdm|${EXTEN}|1)
exten => 911,1,Goto(ftdm|${EXTEN}|1)
exten => 9911,1,Goto(ftdm|${EXTEN}|1)
exten => _8NXXXXXX,1,Goto(lmtest|${EXTEN}|1)
exten => *54,1,goto(lmtest|*54|1)
[ftdm]
exten => _X.,1,DigitTimeout(5)
exten => _X.,2,GotoIf($["x${ABSOLUTETIME}" != "x"]?3:4)
exten => _X.,3,Absolutetimeout(${ABSOLUTETIME})
exten => _X.,4,GotoIf($["x${INT_CID${CALLERIDNUM}}" != "x"]?5:6)
exten => _X.,5,SetCallerId(${INT_CID${CALLERIDNUM}}|a)
exten => _X.,6,GotoIf($["x${FROMEXTEN}" != "x"]?11)
exten => _X.,7,GotoIf($[${LEN(${CALLERIDNUM})} = 4]?10)
exten => _X.,8,SetVAR(FROMEXTEN=${CALLERIDNUM:0:6})
exten => _X.,9,Goto(11)
exten => _X.,10,SetVar(FROMEXTEN=${CALLERIDNUM})
exten => _X.,11,GotoIf($[${EXTEN} : 911|9911]?internal,${EXTEN},1)
exten => _X.,12,GotoIf($[${CHANNEL:0:5} = Local]?international|${EXTEN}|1)
exten => _X.,13,GotoIf($[${LEN(${CALLERIDNUM})} != 4]?international|${EXTEN}|1)
exten => _X.,14,Goto(${${CALLERIDNUM}PERM},${EXTEN},1)
[internal]
ignorepat => 9
include => extensions
exten => 911,1,SetCallerID(${MAIN_CID})
exten => 911,2,ChanIsAvail(${e911})
exten => 911,3,Dial(${AVAILCHAN}/911)
exten => 911,4,Goto(911-${DIALSTATUS}|1)
exten => 9911,1,Goto(911|1)
exten => 911-BUSY,1,Goto(911,2)
exten => 911-CHANUNAVAIL,1,Goto(911,2)
exten => _911-.,1,Goto(911,1)
;
; Only applicable if using queues.
;
;exten => 890,1,AgentCallBackLogin(${CALLERIDNUM}|${CALLERIDNUM}@q_extensions)
;exten => 890,2,Hangup()
;
;exten => 891,1,Answer()
;exten => 891,2,Dial(Local/logoff@internal,,D(${CALLERIDNUM}##))
;exten => logoff,1,AgentCallBackLogin(${CALLERIDNUM}|'#')
;
;logon/logoff from other then your phone
;
;exten => 892,1,AgentCallBackLogin(|${CALLERIDNUM}@q_extensions)
;exten => 892,2,Hangup()
;exten => 893,1,AgentCallBackLogin()
;exten => 893,2,Hangup()
[international]
;
; Master context for international long distance
;
ignorepat => 9
include => longdistance
include => trunkint
[longdistance]
;
; Master context for long distance
;
ignorepat => 9
include => local
include => trunkld
[local]
;
; Master context for local, toll-free, and iaxtel calls only
;
ignorepat => 9
include => parkedcalls
include => trunklocal
include => trunktollfree
include => internal
[extensions]
;
; Everyone goes here.
;
exten => 8888,1,Playback(auth-thankyou)
exten => 8888,2,NoOp(Adding to Main Queue)
exten => 8888,3,AddQueueMember(mainq)
exten => 8888,4,Playback(agent-loginok)
exten => 8888,5,Hangup()
exten => 8888,20,Playback(vm-goodbye)
exten => 8888,21,Hangup()
exten => 8888,104,RemoveQueueMember(mainq)
exten => 8888,105,Playback(agent-loggedoff)
exten => 8888,106,Playback(vm-goodbye)
exten => 8888,107,Hangup()
exten => 8889,1,Playback(auth-thankyou)
exten => 8889,2,NoOp(Adding to Small Queue)
exten => 8889,3,AddQueueMember(smallqueue)
exten => 8889,4,Playback(agent-loginok)
exten => 8889,5,Hangup()
exten => 8889,20,Playback(vm-goodbye)
exten => 8889,21,Hangup()
exten => 8889,104,RemoveQueueMember(smallqueue)
exten => 8889,105,Playback(agent-loggedoff)
exten => 8889,106,Playback(vm-goodbye)
exten => 8889,107,Hangup()
exten => 2000,9998,MusicOnHold()
exten => 2001,1,Authenticate(1123)
exten => 2001,n,Record(/var/lib/asterisk/sounds/daily.wav)
exten => 2001,n,wait(1)
exten => 2001,n,Playback(/var/lib/asterisk/sounds/daily)
exten => 2002,1,Answer()
exten => 2002,n,Playback(/var/lib/asterisk/sounds/daily)
exten => 2002,n,Hangup()
exten => _XXX,1,GotoIf($[${DIRECTION} = INCOMING]?2:10)
exten => _XXX,2,GotoIf($[x${FROMEXTEN} != x]?4)
exten => _XXX,3,SetVar(FROMEXTEN=${EXTEN})
exten => _XXX,4,DBGet(FWDTO=CFWD/${EXTEN})
exten => _XXX,5,GotoIf($[${LEN(${FWDTO})} != 0]?6:10)
exten => _XXX,6,Goto(international|${FWDTO}|1)
exten => _XXX,10,Macro(stdexten,${EXTEN},${${EXTEN}},${CALLERID},tr)
exten => 200,1,Goto(menu,s,1);
exten => 201,1,Goto(tomsqueue,s,1);
exten => 202,1,Voicemail(101)
exten => 202,2,Hangup
exten => 203,1,Goto(daily_tape,s,1)
exten => i,1,Answer
exten => i,2,GotoIf($[${DIRECTION} = OUTGOING]?4)
exten => i,3,GotoIf($[${FROMEXTEN}]?extensions|${FROMEXTEN}|1)
exten => i,4,Playback(pbx-invalid)
exten => i,5,Hangup
; ONLY APPLICABLE IF USING FAX SETTINGS IN mappings.inc
; fax to extension handler (needs FAX2xxx defined to point to email address)
;
exten => fax,1,Wait(2)
exten => fax,2,SetVar(MAILTO=${FAX_DEFAULT})
exten => fax,3,GotoIf($[${FAX${EXTEN}}]?4:5)
exten => fax,4,SetVar(MAILTO=${FAX${EXTEN}})
exten => fax,5,SetVar(FAXID=/var/spool/fax/incoming/${FAXEXTEN}-${EPOCH})
exten => fax,6,RxFax(${FAXID}.tif)
exten => fax,7,System(/usr/local/sbin/sendfax ${MAILTO} ${FAXID} ${FAXPAGES} "${REMOTESTATIONID}" ${FAXEXTEN})
;
; Give voicemail at extension 8500
;
exten => 8500,1,VoicemailMain(${CALLERIDNUM}${VMCONTEXT})
exten => 8500,2,Hangup()
exten => 8501,1,VoiceMailMain(${VMCONTEXT})
exten => 8501,2,Hangup()
;
; menu related extensions
;
exten => 8600,1,Goto(menu,s,1)
;
; WAMi Compatibility
;
exten => _2XXX,9970,VoiceMail(u${EXTEN})
exten => _2XXX,9971,Goto(incoming|s|1)
exten => _2XXX,9981,Answer()
exten => _2XXX,9982,Wait(1)
exten => _2XXX,9983,VoiceMailMain(s${EXTEN}${VMCONTEXT})
exten => _2XXX,9984,Goto(incoming|s|1)
exten => _2XXX,9996,Macro(stdexten,${EXTEN},${${EXTEN}},${CALLERID},tm)
exten => _2XXX,9998,MusicOnHold()
exten => _2XXX,9999,Congestion()
exten => a,1,Voicemailmain(${VMCONTEXT})
exten => a,2,Goto(incoming|s|1)
exten => _600[1-9],1,Meetme(${EXTEN}|M)
exten => _600[1-9],2,Hangup
;exten => h,1,SoftHangup(${CHANNEL})
[macro-stdexten];
;
; Standard extension macro:
; ${ARG1} - Extension
; ${ARG2} - Device(s) to ring
; ${ARG3} - CallerID
; ${ARG4} - Flags to use
; ${ARG5} - If defined, extension we came from.
; ${ARG6} -
exten => s,1,GotoIf($[x${ARG2} != x]?2:50)
exten => s,2,SetVar(EXTEN=${ARG1})
exten => s,3,Noop(EXTEN=${EXTEN} - CALLERID: ${CALLERID})
exten => s,4,Dial(${ARG2}${ARG6},${TIMEOUT},${ARG4})
exten => s,5,Goto(s-${DIALSTATUS}|1)
exten => s-NOANSWER,1,Voicemail(u${ARG1}) ; If unavailable, send to voicemail w/ unavail announce
exten => s-NOANSWER,2,Goto(incoming|s|1)
exten => s-BUSY,1,Voicemail(b${ARG1}) ; If busy, send to voicemail w/ busy announce
exten => s-BUSY,2,Goto(incoming|s|1) ; If they press #, return to start
exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer
exten => _s-.,102,PlaybacK(ss-noservice)
exten => _s-.,103,GotoIf($[x${FROMEXTEN} != x]?104:105)
exten => _s-.,104,Dial(Local/${FROMEXTEN}@international)
exten => _s-.,105,Hangup()
exten => s,50,Dial(SIP/${ARG1},${TIMEOUT},${ARG4})
exten => s,51,Goto(s-${DIALSTATUS}|1)
exten => a,1,VoicemailMain(${ARG1}${VMCONTEXT}) ; If they press *, send the user into VoicemailMain
exten => a,2,Goto(incoming|s|1)
[incoming]
;
; Fax handling (if applicable)
;
exten => fax,1,GotoIf($[${FAXEXTEN} = 7050280]?${FAXEXTEN}|1:2)
exten => fax,2,SetVar(MAILTO=${FAX${FAXEXTEN}})
exten => fax,3,SetVar(FAXID=/var/spool/fax/${FAXEXTEN}-${EPOCH})
exten => fax,4,RXfax(${FAXID}.tif)
exten => fax,5,System(/usr/local/sbin/sendfax ${MAILTO} ${FAXID} ${FAXPAGES} "${REMOTESTATIONID}" ${FAXEXTEN})
exten => fax,6,Hangup()
exten => fax,103,SetVar(MAILTO=${FAX_CUSTOMER_EMAIL})
exten => fax,104,SetVar(FAXID=/var/spool/fax/incoming/${FAXEXTEN}-${EPOCH})
exten => fax,105,RxFax(${FAXID}.tif)
exten => fax,106,System(/usr/local/sbin/sendfax ${MAILTO} ${FAXID} ${FAXPAGES} "${REMOTESTATIONID}" ${FAXEXTEN})
;
; Match Incoming Numbers based on mappings.inc
;
exten => _X.,1,NoOp(${EXTEN})
exten => _X.,2,Ringing()
exten => _X.,3,SetVar(INDIALEDNUM=${EXTEN:3})
exten => _X.,4,WaitExten(4)
exten => _X.,5,SetVar(DIRECTION=INCOMING)
exten => _X.,6,GotoIf($[x${DID${EXTEN}} != x]?7:10)
exten => _X.,7,SetVar(FROMEXTEN=${DID${EXTEN}})
exten => _X.,8,Goto(extensions|${DID${EXTEN}}|1)
exten => _X.,10,Goto(menu|s|1)
exten => **,1,VMAuthenticate()
exten => **,n,NoOp(success)
exten => **,n(getnum),Read(NEWFWDNUM|ext-cfwd)
exten => **,n,GotoIf($[${LEN(${NEWFWDNUM})} = 0]?disable:checklen)
exten => **,n(checklen),GotoIf($[${LEN(${NEWFWDNUM})} > 4]?lenok:getnum)
exten => **,n(lenok),DBPUT(CFWD/${AUTH_MAILBOX}=${NEWFWDNUM})
exten => **,n,Playback(auth-thankyou)
exten => **,n,Playback(vm-goodbye)
exten => **,n,Hangup()
exten => **,n(disable),DBDel(CFWD/${AUTH_MAILBOX})
exten => **,n,Playback(auth-thankyou)
exten => **,n,Playback(call-forwarding)
exten => **,n,Playback(disabled)
exten => **,n,Playback(vm-goodbye)
exten => **,n,Hangup()
exten => s,1,Goto(menu|s|1)
exten => h,1,GotoIf($["x${FAXID}" != "x"]?14)
exten => h,2,NoOp(---XXX Recording Stuff XXX---)
exten => h,3,GotoIf($["${RECORDING}" = "TRUE"]?4:12)
exten => h,4,SetVar(FIX=/usr/bin/recenc.sh)
exten => h,5,SetVar(EXEC_ARGS=${FIX} ${SOUNDPATH}${CALLFILENAME}.wav)
exten => h,6,SetVar(EXEC_ARGS2=rm -rf ${SOUNDPATH}${CALLFILENAME}.wav)
exten => h,7,SetVar(LINK=/calls/${CALLFILENAME}.mp3)
exten => h,8,SetCDRUserField(Audio)
exten => h,9,Noop(${EXEC_ARGS2})
exten => h,10,System(${EXEC_ARGS})
exten => h,11,System(${EXEC_ARGS2})
exten => h,12,SoftHangup()
exten => h,13,System(/usr/local/sbin/sendfax ${MAILTO} ${FAXID} ${FAXPAGES} "${REMOTESTATIONID}" ${FAXEXTEN} ${CALLERIDNUM})
exten => h,14,SoftHangup()
[menu]
;include => extensions
exten => s,1,Answer()
exten => s,n,Ringing()
exten => s,n,Wait(1)
exten => s,n,SetVar(SOUNDPATH=/var/www/html/calls/)
exten => s,n,SetVar(CALLFILENAME=normal-${CALLERIDNUM}-${TIMESTAMP})
exten => s,n,SetVar(MONITOR_FILENAME=${SOUNDPATH}${CALLFILENAME})
exten => s,n,SetVar(RECORDING=TRUE)
exten => s,n,StartMusicOnHold()
exten => s,n,WaitExten(5)
exten => s,n,StopMusicOnHold
exten => s,n,Queue(mainq)
exten => 1,1,Queue(mainq)
exten => 6,1,GoTo(daily_tape,s,1)
exten => h,1,Goto(hangup|h|1)
[tomsqueue]
exten => s,1,Answer()
exten => s,n,Ringing()
exten => s,n,StartMusicOnHold()
exten => s,n,WaitExten(5)
exten => s,n,StopMusicOnHold
exten => s,n,SetVar(SOUNDPATH=/var/www/html/calls/)
exten => s,n,SetVar(CALLFILENAME=agent-${CALLERIDNUM}-${TIMESTAMP}-dialed-tomsqueue)
exten => s,n,SetVar(MONITOR_FILENAME=${SOUNDPATH}${CALLFILENAME})
exten => s,n,SetVar(RECORDING=TRUE)
exten => s,n,Queue(smallqueue)
exten => h,1,Goto(hangup|h|1)
[hangup]
exten => h,1,NoOp(Hangup)
exten => h,2,NoOp(---XXX Recording Stuff XXX---)
exten => h,3,GotoIf($["${RECORDING}" = "TRUE"]?4:12)
exten => h,4,SetVar(FIX=/usr/bin/recenc.sh)
exten => h,5,SetVar(EXEC_ARGS=${FIX} ${SOUNDPATH}${CALLFILENAME}.wav)
exten => h,6,SetVar(EXEC_ARGS2=rm -rf ${SOUNDPATH}${CALLFILENAME}.wav)
exten => h,7,SetVar(LINK=/calls/${CALLFILENAME}.mp3)
exten => h,8,SetCDRUserField(Audio)
exten => h,9,Noop(${EXEC_ARGS2})
exten => h,10,System(${EXEC_ARGS})
exten => h,11,System(${EXEC_ARGS2})
exten => h,12,SoftHangup()
;[internalfax]
;exten => 7050280,1,Dial(Zap/27)
;exten => _X.,2,Congestion
[daily_tape]
exten => s,1,Playback(/var/lib/asterisk/sounds/daily)
exten => s,n,Queue(mainq)
[mainqout]
exten => 6,1,Goto(daily_tape)
exten => i,1,Queue(mailq)