; extensions.conf ; ; main dialplan file ; ; By: Douglas Lane ; ; Revision: 1.01 - 2007-03-08 [general] static=yes writeprotect=no autofallthrough=no clearglobalvars=yes priorityjumping=yes ;usercontext=default [globals] CONSOLE=Console/dsp TRUNK=Zap/g1 LOOP=0 LOOPCOUNT=3 AGENT_LOOP=3 IVR_LOOP=3 DNIS= QUEUE_NAME= #include extensions_debug.conf #include extensions_agents.conf #include extensions_hints.conf #include extensions_callcenter.conf #include extensions_backoffice.conf #include extensions_routing.conf [from-pstn] exten => 0323,1,Dial(Zap/138) exten => 0373,1,Dial(Zap/140) exten => 0335,1,Dial(Zap/137) exten => 0328,1,Dial(Zap/134) exten => 0316,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0315,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0353,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0344,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0302,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0346,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0355,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0375,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0349,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0350,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0331,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0325,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0324,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0303,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0327,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0310,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0317,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0374,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0343,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0304,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0348,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0301,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0359,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0334,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0326,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0389,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0363,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0322,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0336,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0395,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0396,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0397,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0314,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0332,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0347,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0318,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => 0392,1,Macro(dialout|${EXTEN:1}|25|tTr) exten => _X.,1,Set(DNIS=${EXTEN}) exten => _X.,2,Goto(saw-ivr,s,1) ; IVR context for SAW [saw-ivr] exten => 0,1,Goto(reception,s,1) exten => 1,1,Goto(cti-policy-collection,1,1) exten => 2,1,Goto(cti-policy-collection,2,1) exten => 3,1,Goto(cti-policy-collection,3,1) exten => s,1,NoOp(-- Welcome to SAW IVR --) exten => s,n,Answer() exten => s,n,Wait(1) exten => s,n,GotoIfTime(7:30-7:59|mon-fri|*|*?queue-claims,s,1) exten => s,n,GotoIfTime(08:00-18:00|mon-fri|*|*?s-open,1:) exten => s,n,GotoIfTime(08:00-14:00|sat|*|*?s-open,1:) exten => s,n,Goto(afterhours,1) exten => s-open,1,NoOp(-- Open --) exten => s-open,n,Wait(1) exten => s-open,n,Set(LOOPED=1) exten => s-open,n,Set(TIMEOUT(digit)=3) exten => s-open,n,Set(TIMEOUT(response)=7) exten => s-open,n,NoOp(-- DNIS: ${DNIS} --) exten => s-open,n,GotoIf(${DB_EXISTS(VIRTUAL/${DNIS}/NAME)}?:default) exten => s-open,n,Set(AA=${DB(VIRTUAL/${DNIS}/AA)}) exten => s-open,n(ivr),Background(saw/${AA}) exten => s-open,50(default),Set(AA=welcome) exten => s-open,n,Goto(ivr) exten => afterhours,1,NoOp(-- After hours --) exten => afterhours,n,GotoIf($[x${IN_OVERIDE} = xYES]?s-open,1) exten => afterhours,n,Background(saw/afterhours) ;exten => afterhours,n,Wait(1) ;exten => afterhours,n,Hangup exten => 9,1,Playback(pls-wait-connect-call) exten => 9,2,Dial(Zap/g1/0824562523) exten => 9,3,Dial(Zap/g1/0825525742) exten => t,1,Playback(saw/saw-Switchboard) exten => t,2,Goto(reception,s,1) exten => i,1,Playback(saw/saw-Switchboard) exten => i,2,Goto(reception,s,1) ; SAW CTI Collection Procedure [cti-policy-collection] exten => 1,1,Set(queue=claims) exten => 1,2,Goto(s,1) exten => 2,1,Set(queue=payments) exten => 2,2,Goto(s,1) exten => 3,1,Set(queue=telesales) exten => 3,2,Goto(s,1) exten => s,1,NoOp(-- CTI Policy Collection --) exten => s,n,NoOp(-- DNIS: ${DNIS} --) exten => s,n,GotoIf(${DB_EXISTS(VIRTUAL/${DNIS}/POLICY)}?:default) exten => s,n,Set(POL_LEN=${DB(VIRTUAL/${DNIS}/POLICY)}) exten => s,n(ivr),Read(POLICY,saw/saw-${POL_LEN},${POL_LEN}) exten => s,n,Playback(saw/saw-${queue}) exten => s,n,Goto(queue-${queue},s,1) ;exten => s,50(default),Set(POL_LEN=6) exten => s,50(default),Playback(saw/saw-${queue}) exten => s,n,Goto(queue-${queue},s,1) ;exten => s,n,Goto(ivr) exten => t,1,Playback(saw/saw-${queue}) exten => t,2,Goto(queue-${queue},s,1) ; SAW Claims Queue [queue-claims] exten => s,1,NoOp(-- Welcome to SAW Claims Queue --) exten => s,n,NoOp(CALLDATA|Channel=${CHANNEL}|URL=http://laurel/WARRANTY/Bounce.asp?Type=${queue}&policy=${POLICY}&clid=${CALLERID(num)}&dnis=${DNIS}) exten => s,n,Set(QUEUE_NAME=claims-301) exten => s,n,Queue(claims-301|tT) ; SAW Payments Queue [queue-payments] exten => s,1,NoOp(-- Welcome to SAW Payments Queue --) exten => s,n,NoOp(CALLDATA|Channel=${CHANNEL}|URL=http://laurel/WARRANTY/Bounce.asp?Type=${queue}&policy=${POLICY}&clid=${CALLERID(num)}&dnis=${DNIS}) exten => s,n,Set(QUEUE_NAME=payments-302) exten => s,n,Queue(payments-302|tT) ; SAW Telesales Queue [queue-telesales] exten => s,1,NoOp(-- Welcome to SAW Telesales Queue --) exten => s,n,NoOp(CALLDATA|Channel=${CHANNEL}|URL=http://laurel/WARRANTY/Bounce.asp?Type=${queue}&policy=${POLICY}&clid=${CALLERID(num)}&dnis=${DNIS}) exten => s,n,Set(QUEUE_NAME=telesales-303) exten => s,n,Queue(telesales-303|tT) ; SAW Reception [reception] exten => s,1,NoOp(-- Welcome to SAW Reception --) exten => s,n,Queue(reception-300|tTr) exten => s,n,Hangup ;exten => s,n,Dial(SIP/300|300|tTr) ;exten => s,n,Goto(s-${DIALSTATUS},1) ;exten => t,1,Wait(1) ;exten => t,n,Goto(s,2) ;exten => _s-.,1,NoOp(-- Goto Status: ${EXTEN:2} --) ;exten => _s-.,2,Goto(s,2) ;; Global functions [from_sip] include => dev_hints exten => _*300XXXX,1,Goto(from-pstn,${EXTEN:4},1) exten => *301,1,Goto(queue-claims,s,1) exten => *302,1,Goto(queue-payments,s,1) exten => *303,1,Goto(queue-telesales,s,1) exten => 1,1,Goto(queue-claims,s,1) exten => 2,1,Goto(queue-payments,s,1) exten => 3,1,Goto(queue-telesales,s,1) exten => *999,1,Macro(overide) exten => _lX.,1,Macro(agent-login|${CALLERID(num)}) ;exten => _bX.,1,Macro(agent-break|${CALLERID(num)}) exten => _X.,1,Macro(dialout|${EXTEN}|30|tTr) ;; BackOffice only functions - include global functions [from_backoffice] include => from_sip exten => *98,1,Macro(voicemail|${CALLERID(num)}) exten => _X.,1,Macro(dialout|${EXTEN}|30|tTr) ;; Agent only functions - Include global functions [from_agents] include => from_sip ; Backward Compatible ;exten => _[123]*,1,Macro(agent-login|${CALLERID(num)}) ;exten => _[123]**,1,Macro(agent-login|${CALLERID(num)}) ; catch all ;exten => _X.,1,Macro(check-auth|${CALLERID(num)}|${EXTEN}) exten => _X.,1,Macro(dialout|${EXTEN}|30|tT) ;; Supervisor only functions - Include global functions [from_supervisors] include => from_sip exten => *256,1,Macro(callcenter-open) exten => **256,1,Macro(callcenter-close) exten => *259,1,Macro(callcenter-recordmsg) exten => *007,1,Macro(spy-agent) ; Backward Compatible ;exten => _[123]*,1,Macro(agent-login|${CALLERID(num)}) ;exten => _[123]**,1,Macro(agent-login|${CALLERID(num)}) ;; Receptionist [from_reception] include => dev_hints include => from_sip [custom-fax-line] exten => _X.,1,NoOp(-- Starting Fax on EXTEN: ${EXTEN} --) exten => _X.,n,Set(bob=${CUT(CHANNEL,/,2)}) exten => _X.,n,Set(bob=${CUT(bob,-,1)}) exten => _X.,n,Set(CALLERID(num)=${DB(CALLERIDBYCHANNEL/${bob})}) exten => _X.,n,Dial(Zap/g1/${EXTEN}|240) exten => _X.,n,Congestion