rendered paste body; extensions.conf;; main dialplan file;; By: Douglas Lane <douglasl@digitalconnect.co.za>;; Revision: 1.01 - 2007-03-08[general]static=yeswriteprotect=noautofallthrough=noclearglobalvars=yespriorityjumping=yes;usercontext=default[globals]CONSOLE=Console/dspTRUNK=Zap/g1LOOP=0LOOPCOUNT=3AGENT_LOOP=3IVR_LOOP=3DNIS=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,Hangupexten => 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_hintsexten => _*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_sipexten => *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_sipexten => *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_hintsinclude => 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