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