[general] static=yes writeprotect=no [globals] CONSOLE=Console/dsp ; Console interface for demo ;TRUNK=DAHDI/r1 ; Trunk interface ;TRUNKX=DAHDI/r2 ; 2nd trunk interface ;TRUNKIAX=IAX2/ASTtest1:test@10.10.10.16:4569 ; IAX trunk interface ;TRUNKIAX1=IAX2/ASTtest1:test@10.10.10.16:4569 ; IAX trunk interface ;TRUNKBINFONE=IAX2/1112223333:PASSWORD@iax.binfone.com ; IAX trunk interface ;SIPtrunk=SIP/1234:PASSWORD@sip.provider.net ; SIP trunk #include extensions-vicidial.conf #include extensions-goautodial.conf [trunkinbound] ; DID call routing process ; exten => _XXXXXXXXXX,1,AGI(agi-DID_route.agi) ; use this one instead of the one below if you are having delay issues, and match to number of received digits exten => _X.,1,AGI(agi-DID_route.agi) exten => _X.,n,Hangup() ; If you have DIDs that arrive with a plus sign at the beginning then uncomment ;exten => _+X.,1,AGI(agi-DID_route.agi) ;exten => _+X.,n,Hangup() ; If you have DIDs that arrive with a plus and 1 at the beginning that you want to filter out, then uncomment ;exten => _+1X.,1,Goto(trunkinbound,${EXTEN:2},1) ; FastAGI for VICIDIAL/astGUIclient call logging exten => h,1,AGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}-----${HANGUPCAUSE(${HANGUPCAUSE_KEYS()},tech)})) [loopback-no-log] ; This context is to accept calls that have already been logged in another context in Vicidial ; and has been sent through one of the loopbacks. This is why this context is missing the h extension. ; Do not put any extensions in this context unless you specifically understand what this means. exten => _91NXXNXXXXXX,1,Dial(${TRUNKX}/${EXTEN:1},,To) exten => _91NXXNXXXXXX,n,Hangup() ; special Canadian PRI callerIDname settings FOR USE IN LOOPBACK CONTEXT ONLY ;exten => _91NXXNXXXXXX,1,Set(CALLERID(name)="ACME Widgets") ;exten => _91NXXNXXXXXX,n,AGI(agi-CANADA_PRI_CIDname.agi) ;exten => _91NXXNXXXXXX,n,Dial(${TRUNKX}/${EXTEN:1},,To) ;exten => _91NXXNXXXXXX,n,Hangup() exten => _999XX11112,1,Wait(2) exten => _999XX11112,n,Answer() exten => _999XX11112,n,Playback(ss-noservice) exten => _999XX11112,n,Playback(vm-goodbye) exten => _999XX11112,n,Hangup() [default] include => vicidial-auto include => goautodial-auto ; Local agent alert extensions exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi) exten => _8600XXX*.,n,Hangup() exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi) exten => _78600XXX*.,n,Hangup() ; Local blind monitoring exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To) exten => _08600XXX,n,Hangup() ; playback of recorded prompts exten => _851XXXXX,1,Answer() exten => _851XXXXX,n,Playback(${EXTEN}) exten => _851XXXXX,n,Hangup() ; this is used for playing a message to an answering machine forwarded from AMD in VICIDIAL exten => _6851XXXXX,1,Answer() exten => _6851XXXXX,n,WaitForSilence(2000,1,90) exten => _6851XXXXX,n,Playback(sip-silence) exten => _6851XXXXX,n,Playback(${EXTEN:1}) exten => _6851XXXXX,n,Hangup() exten => _7851XXXXX,1,WaitForSilence(2000,2) ; AMD got machine. leave message after recording exten => _7851XXXXX,n,Playback(${EXTEN:1}) exten => _7851XXXXX,n,AGI(VD_amd_post.agi,${EXTEN:1}) exten => _7851XXXXX,n,Hangup() ; FastAGI for VICIDIAL/astGUIclient call logging exten => h,1,AGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}-----${HANGUPCAUSE(${HANGUPCAUSE_KEYS()},tech)})) ; Example phone extensions ; 100-350 phone extensions now auto-generated, so no need to uncommend them ; extensions for other SIP and IAX call center phones ; cc100-cc150 SIP Phones ;exten => _1[0-5]X,1,Dial(sip/cc${EXTEN},20,to) ;exten => _1[0-5]X,n,Hangup() ; cc300-cc350 IAX Phones ;exten => _3[0-5]X,1,Dial(IAX2/cc${EXTEN},20,to) ;exten => _3[0-5]X,n,Hangup() ; extensions if using a T1 channelbank ;exten => _19XX,1,Dial(Zap/${EXTEN:2},30,o) ;exten => _19XX,n,Hangup() ; Extension 4001 rings Zap phone (this example for FXS on Zap port 1) ;exten => 4001,1,Dial(Zap/1,30,o) ; ring Zap device 1 ;exten => 4001,n,Voicemail(u4001) ; Send to voicemail... ;exten => 4001,n,Hangup() ; # timeout invalid rules exten => #,1,Playback(invalid) ; "Thanks for trying the demo" exten => #,2,Hangup() ; Hang them up. exten => t,1,Goto(#,1) ; If they take too long, give up exten => t,n,Hangup() exten => i,1,Playback(invalid) ; "That's not valid, try again" exten => i,n,Hangup() ; Extensions for performance testing ;exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => _91999NXXXXXX,n,Dial(${TRUNKloop}/${EXTEN:2},,tTo) ;exten => _91999NXXXXXX,n,Hangup() ;exten => 999999999999,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => 999999999999,n,Dial(${TRUNKloop}/${EXTEN:1},,tTo) ;exten => 999999999999,n,Hangup() ; This is a loopback dialaround to allow for hearing of ringing for 3way calls exten => _881NXXNXXXXXX,1,Answer() exten => _881NXXNXXXXXX,n,Dial(${TRUNKloop}/9${EXTEN:2},,To) exten => _881NXXNXXXXXX,n,Hangup() ; Vtiger fax and email log extensions exten => _9118XXXXXXXX,1,Dial(${TRUNKblind}/9998818112,55,to) exten => _9118XXXXXXXX,n,Hangup() exten => _9119XXXXXXXX,1,Dial(${TRUNKblind}/9998819112,55,to) exten => _9119XXXXXXXX,n,Hangup() ; CARRIER DIALING EXTENSIONS, USE THE ADMIN INTERFACE TO PROGRAM THESE ; dial an 800 outbound number ;exten => _91800NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => _91800NXXXXXX,n,Dial(${TRUNK}/${EXTEN:1},,To) ;exten => _91800NXXXXXX,n,Hangup() ;exten => _91888NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => _91888NXXXXXX,n,Dial(${TRUNK}/${EXTEN:1},,To) ;exten => _91888NXXXXXX,n,Hangup() ;exten => _91877NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => _91877NXXXXXX,n,Dial(${TRUNK}/${EXTEN:1},,To) ;exten => _91877NXXXXXX,n,Hangup() ;exten => _91866NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => _91866NXXXXXX,n,Dial(${TRUNK}/${EXTEN:1},,To) ;exten => _91866NXXXXXX,n,Hangup() ;exten => _91855NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => _91855NXXXXXX,n,Dial(${TRUNK}/${EXTEN:1},,To) ;exten => _91855NXXXXXX,n,Hangup() ; dial a long distance outbound number ; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls ;exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => _91NXXNXXXXXX,n,Dial(${TRUNKX}/${EXTEN:1},,To) ;exten => _91NXXNXXXXXX,n,Hangup() ; dial a local outbound number (modified because of only LD T1) ;exten => _9NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => _9NXXXXXX,n,Dial(${TRUNK}/1727${EXTEN:1},,To) ;exten => _9NXXXXXX,n,Hangup() ; dial a local 727 outbound number with area code ;exten => _9727NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => _9727NXXXXXX,n,Dial(${TRUNK}/1${EXTEN:1},,To) ;exten => _9727NXXXXXX,n,Hangup() ; dial a long distance outbound number to the UK ; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls, ;exten => _901144XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => _901144XXXXXXXXXX,n,Dial(${TRUNKX}/${EXTEN:1},55,To) ;exten => _901144XXXXXXXXXX,n,Hangup() ; dial a long distance outbound number to Australia ; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls, ;exten => _901161XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => _901161XXXXXXXXX,n,Dial(${TRUNKX}/${EXTEN:1},,To) ;exten => _901161XXXXXXXXX,n,Hangup() ; dial a long distance outbound number through BINFONE ; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91NXXNXXXXXX,n,Dial(${TRUNKIAX}/${EXTEN:1},55,To) ; exten => _91NXXNXXXXXX,n,Hangup() ; dial a long distance outbound number through a SIP provider ; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91NXXNXXXXXX,n,Dial(sip/${EXTEN:1}@SIPtrunk,55,o) ; exten => _91NXXNXXXXXX,n,Hangup() ; special extensions for North America to catch invalid phone numbers ; exten => _91XXX[0-1]XXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91XXX[0-1]XXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to) ; exten => _91XXX[0-1]XXXXXX,n,Hangup() ; exten => _91[0-1]XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91[0-1]XXXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to) ; exten => _91[0-1]XXXXXXXXX,n,Hangup() ; exten => _91XXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91XXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to) ; exten => _91XXXXXX,n,Hangup() ; exten => _91XXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91XXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to) ; exten => _91XXXXXXX,n,Hangup() ; exten => _91XXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91XXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to) ; exten => _91XXXXXXXX,n,Hangup() ; exten => _91XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91XXXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to) ; exten => _91XXXXXXXXX,n,Hangup() ; exten => _91XXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91XXXXXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to) ; exten => _91XXXXXXXXXXX,n,Hangup() ; exten => _91XXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91XXXXXXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to) ; exten => _91XXXXXXXXXXXX,n,Hangup() ; exten => _91XXXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91XXXXXXXXXXXXX,n,Dial(${TRUNKloop}/8889990011112,,to) ; exten => _91XXXXXXXXXXXXX,n,Hangup() ; block calls to 555 numbers ; exten => _91NXX555NXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91NXX555NXXX,n,Dial(${TRUNKloop}/8889990011112,,to) ; exten => _91NXX555NXXX,n,Hangup() ; dial a USA long distance outbound number through the loopback-no-log context ; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => _91NXXNXXXXXX,n,Dial(${TRUNKloop}/888${EXTEN:2},55,o) ; exten => _91NXXNXXXXXX,n,Hangup() ;exten => _888NXXNXXXXXX,1,Goto(loopback-no-log,91${EXTEN:3},1) ;exten => _888NXXNXXXXXX,n,Hangup() exten => 8889990011112,1,Goto(loopback-no-log,9990011112,1) exten => 8889990011112,n,Hangup() ; Inbound call from BINFONE ; exten => 1112223333,1,AGI(agi://127.0.0.1:4577/call_log) ; exten => 1112223333,n,Dial(sip/gs102,55,o) ; exten => 1112223333,n,Hangup() ; Extension 7275551212 - Inbound local number from PRI with 10 digit delivery ;exten => 7275551212,1,Ringing() ;exten => 7275551212,n,Wait(1) ;exten => 7275551212,n,AGI(agi://127.0.0.1:4577/call_log--fullCID--${EXTEN}-----${CALLERID(all)}-----${CALLERID(num)}-----${CALLERID(name)}) ;exten => 7275551212,n,Answer() ;exten => 7275551212,n,Dial(sip/spa2000&sip/spa2001,30,To) ;exten => 7275551212,n,Voicemail(u2000) ;exten => 7275551212,n,Hangup() ; parameters for call_inbound.agi (7 fields separated by five dashes "-----"): ; 1. the extension of the phone to ring as defined in the asterisk.phones table ; 2. the phone number that was called, for the live_inbound/_log entry ; 3. a text description of the number that was called in ; 4-7. optional fields, they are also passed as fields in the GUI to web browser ; This is not part of VICIDIAL, it is for astGUIclient agent use only ; Extension 3429 - Inbound 800 number (1-800-555-3429) example of RBS T1 ; with 10 digit ANI and 4 digit DNIS star separated ;exten => _**3429,1,Ringing ;exten => _**3429,n,AGI(agi://127.0.0.1:4577/call_log) ;exten => _**3429,n,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w) ;exten => _**3429,n,Answer() ;exten => _**3429,n,Dial(sip/spa2000&sip/spa2001,30,to) ;exten => _**3429,n,Voicemail(u2000) ;exten => _**3429,n,Hangup() ; Extension 3429 - with ANI [callerID] ;exten => _*NXXNXXXXXX*3429,1,Ringing ;exten => _*NXXNXXXXXX*3429,n,AGI(agi://127.0.0.1:4577/call_log) ;exten => _*NXXNXXXXXX*3429,n,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w) ;exten => _*NXXNXXXXXX*3429,n,Answer() ;exten => _*NXXNXXXXXX*3429,n,Dial(sip/spa2000&sip/spa2001,30,to) ;exten => _*NXXNXXXXXX*3429,n,Voicemail(u2000) ;exten => _*NXXNXXXXXX*3429,n,Hangup() ; parameters for agi-VDAD_ALL_inbound.agi (upto 12 fields separated by five dashes "-----"): ; Below are the parameters needed for the script to be run properly ; 1. the method of call handling for the script: ; - CID - CID received, add record with phone number ; - CIDLOOKUP - Lookup CID to find record in whole system ; - CIDLOOKUPRL - Restrict lookup to one list ; - CIDLOOKUPRC - Restrict lookup to one campaign's lists ; - CLOSER - Closer calls from VICIDIAL fronters ; - ANI - ANI received, add record with phone number (based on RBS T1s) ; - ANILOOKUP - Lookup ANI to find record in whole system ; - ANILOOKUPRL - Restrict lookup to one list ; - ANILOOKUPRC - Restrict lookup to one campaign's lists ; - VID - Add record with Vendor Lead Code received as argument 12 ; - VIDLOOKUP - Lookup Vendor Lead Code received as argument 12 to find record in whole system ; - VIDLOOKUPRL - Restrict lookup to one list (argument 12) ; - VIDLOOKUPRC - Restrict lookup to one campaign's lists (argument 12) ; - VIDPROMPT - Prompt Vendor Lead Code to User with IVR to add record with Vendor Lead Code ; - VIDPROMPTLOOKUP - Prompt Vendor Lead Code to User with IVR to find record in whole system ; - VIDPROMPTLOOKUPRL - Restrict lookup to one list ; - VIDPROMPTLOOKUPRC - Restrict lookup to one campaign's lists ; - 3DIGITID - Enter 3 digit code to go to agent ; - 4DIGITID - Enter 4 digit code to go to agent ; - XDIGITID - Enter X digit code to go to agent(variable, i.e. 9DIGITID, 12DIGITID, etc...) ; 2. the method of searching for an available agent: ; - LO - Load Balance Overflow only (priority to home server) ; - LB - Load Balance total system ; - SO - Home server only ; 3. the full name of the IN GROUP to be used in vicidial for the inbound call ; 4. the phone number that was called, for the log entry ; 5. the callerID or lead_id of the person that called(usually overridden) ; 6. the park extension audio file name if used ; 7. the status of the call initially(usually not used) ; 8. the list_id to insert the new lead under if it is new (and CID/ANI available) ; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available) ; 10. the campaign_id to search within lists if CIDLOOKUPRC ; 11. the user to queue the call to for AGENTDIRECT in-group calls ; 12. vendor_lead_code if external mechanism like custom IVR is used to prompt user for ID ; ; inbound VICIDIAL call with CID delivery through T1 PRI ;exten => 1234,1,Answer() ; Answer the line ;exten => 1234,n,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----CL_GALLERIA-----7274515134-----Closer-----park----------999-----1) ;exten => 1234,n,Hangup() ; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel] exten => _90009.,1,Answer() ; Answer the line exten => _90009.,n,Dial(${TRUNKloop}/9${EXTEN},,to) exten => _90009.,n,Hangup() exten => _990009.,1,Answer() ; Answer the line, Sometimes needs to be removed exten => _990009.,n,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1) exten => _990009.,n,Hangup() ; DID forwarded calls exten => _99909*.,1,Answer() exten => _99909*.,n,AGI(agi-VDAD_ALL_inbound.agi) exten => _99909*.,n,Hangup() ; barge monitoring extension exten => 8159,1,ZapBarge() exten => 8159,n,Hangup() ; ZapBarge direct channel extensions exten => _86120XX,1,ZapBarge(${EXTEN:5}) exten => _86120XX,n,Hangup() ; MeetMe Adjustment Extensions ;exten => _X48600XXX,1,MeetMeAdmin(${EXTEN:2},T,${EXTEN:0:1}) ;exten => _X48600XXX,2,Hangup() ;exten => _X38600XXX,1,MeetMeAdmin(${EXTEN:2},t,${EXTEN:0:1}) ;exten => _X38600XXX,2,Hangup() ;exten => _X28600XXX,1,MeetMeAdmin(${EXTEN:2},m,${EXTEN:0:1}) ;exten => _X28600XXX,2,Hangup() ;exten => _X18600XXX,1,MeetMeAdmin(${EXTEN:2},M,${EXTEN:0:1}) ;exten => _X18600XXX,2,Hangup() ;exten => _55558600XXX,1,MeetMeAdmin(${EXTEN:4},K) ;exten => _55558600XXX,2,Hangup() ; immediate hangup extension ;exten => 8300,1,Hangup() ; astGUIclient conferences ;exten => _86000[0-4]X,1,Meetme(${EXTEN},q) ;exten => _86000[0-4]X,n,Hangup() ; VICIDIAL conferences ;exten => _86000[5-9]X,1,Meetme(${EXTEN},F) ;exten => _86000[5-9]X,n,Hangup() ;exten => _8600[1-2]XX,1,Meetme(${EXTEN},F) ;exten => _8600[1-2]XX,n,Hangup() ; quiet entry and leaving conferences for VICIDIAL (inbound announce, SendDTMF and ring-agent) ;exten => _78600XXX,1,Meetme(${EXTEN:1},Fq) ;exten => _78600XXX,n,Hangup() ; quiet monitor-only extensions for meetme rooms (for room managers) ;exten => _68600XXX,1,Meetme(${EXTEN:1},Fmq) ;exten => _68600XXX,n,Hangup() ; Asterisk 1.8 workaround ;exten => _58600XXX,1,Meetme(${EXTEN:1},Fmq) ;exten => _58600XXX,n,Hangup() ; quiet monitor-only entry and leaving conferences for VICIDIAL (recording) ;exten => _558600XXX,1,Meetme(${EXTEN:2},Fmq) ;exten => _558600XXX,n,Hangup() ; voicelab exten ;exten => _86009XX,1,Meetme(${EXTEN},Fmq) ; voicelab exten moderator ;exten => _986009XX,1,Meetme(${EXTEN:1}) ; park channel for client GUI parking, hangup after 30 minutes ; create a GSM formatted audio file named "park.gsm" that is 30 minutes long ; and put it in /var/lib/asterisk/sounds exten => 8301,1,Answer() ;exten => 8301,n,AGI(park_CID.agi) exten => 8301,n,Playback(park) exten => 8301,n,Hangup() exten => 8303,1,Answer() ;exten => 8303,n,AGI(park_CID.agi) exten => 8303,n,Playback(conf) exten => 8303,n,Hangup() ; park channel for client GUI conferencing, hangup after 30 minutes ; create a GSM formatted audio file named "conf.gsm" that is 30 minutes long ; and put it in /var/lib/asterisk/sounds exten => 8302,1,Answer() exten => 8302,n,Playback(conf) exten => 8302,n,Hangup() exten => 8304,1,Answer() exten => 8304,n,Playback(ding) exten => 8304,n,Hangup() ; default audio for safe harbor 2-second-after-hello message then hangup ; create a GSM formatted audio file complies with safe harbor rules ; and put it in /var/lib/asterisk/sounds then change filename below exten => 8307,1,Answer() exten => 8307,n,Playback(vm-goodbye) exten => 8307,n,Hangup() ; this is used for playing a message to an answering machine forwarded from AMD in VICIDIAL exten => 8320,1,AGI(VD_amd.agi,${EXTEN}-----YES) exten => 8320,n,Hangup() exten => _8320*.,1,AGI(VD_amd.agi,${EXTEN}-----YES) exten => _8320*.,n,Hangup() ; these are used for the ring_all function in VICIDIAL exten => _8331*.,1,Playback(sip-silence) exten => _8331*.,n,AGI(agi-VDAD_RINGALL.agi,${EXTEN}) exten => _8331*.,n,AGI(agi-VDAD_RINGALL.agi,${EXTEN}) exten => _8331*.,n,AGI(agi-VDAD_RINGALL.agi,${EXTEN}) exten => _8331*.,n,Hangup() ; use for selective CallerID hangup by area code(hard-coded) exten => 8352,1,AGI(agi-VDADselective_CID_hangup.agi,${EXTEN}) exten => 8352,n,Playback(safe_harbor) exten => 8352,n,Hangup() ; this is used for sending DTMF signals within conference calls, the client app ; sends the digits to be played in the callerID field ; sound files must be placed in /var/lib/asterisk/sounds exten => 8500998,1,Answer() exten => 8500998,n,Playback(silence) exten => 8500998,n,AGI(agi-dtmf.agi) exten => 8500998,n,Hangup() ; multi-remote-monitor entry extensions exten => 8162,1,Dial(${TRUNKblind}/34567890123456789,55,to) exten => 8162,n,Hangup() exten => 34567890123456789,1,Answer() exten => 34567890123456789,n,Goto(monitor,s,1) exten => 34567890123456789,n,Hangup() ;#### VDAD STANDARD TRANSFER ENTRIES #### ; Below are the parameters needed for the agi-VDAD_ALL_outbound.agi script to be run properly ; 1. the method of call handling for the script: ; - NORMAL - Standard outbound routing to agent ; - TEST - For performance testing only ; - BROADCAST - For no-agent broadcast dialing ; - SURVEY - For survery question then on to agent ; - REMINDER - Reminder campaign ; - REMINDX - Reminder with transfer to agent ; 2. the method of searching for an available agent: ; - LB - Load Balance total system ; - LO - Load Balance Overflow only (priority to home server) ; - SO - Home server only ; 3. the sound file to play when doing a SURVEY, REMINDER, REMINDX campaign ; 4. the acceptible dtmf digits for a SURVEY ; 5. the out-opt digit for a SURVEY (must be in the digit map) ; 6. the sound file to play for a SURVEY when transfering to an agent ; 7. the sound file to play for a SURVEY when DNCing the call ; 8. OPTIN or OPTOUT: if OPTIN call is only sent to agent with button press ; if OPTOUT call is sent to agent if no button press at all ; 9. the status that is use for a SURVEY when someone opts out ; if the status is DNC it will also add them to the internal dnc table ; Local channel resolution fix for Asterisk 13 exten => _1383XX,1,AGI(agi-VDAD_local_optimize.agi,${CONNECTEDLINE(name)}) exten => _1383XX,n,Wait(2) exten => _1383XX,n,Hangup() exten => _138331*.,1,AGI(agi-VDAD_local_optimize.agi,${CONNECTEDLINE(name)}) exten => _138331*.,n,Wait(2) exten => _138331*.,n,Hangup() ; VICIDIAL_auto_dialer transfer script for no-agent campaigns: exten => 8364,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8364,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) exten => 8364,n,Hangup() ; VICIDIAL_auto_dialer transfer script: exten => 8365,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8365,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO) exten => 8365,n,Hangup() ; VICIDIAL_auto_dialer transfer script SURVEY at beginning: exten => 8366,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8366,n,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) exten => 8366,n,Hangup() ; VICIDIAL_auto_dialer transfer script Load Balance Overflow: exten => 8367,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8367,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO) exten => 8367,n,Hangup() ; VICIDIAL_auto_dialer transfer script Load Balanced: exten => 8368,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8368,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) exten => 8368,n,Hangup() ; VICIDIAL_auto_dialer transfer script AMD with Load Balanced: exten => 8369,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8369,n,AMD(2000,2000,1000,5000,120,50,4,256) exten => 8369,n,AGI(VD_amd.agi,${EXTEN}) exten => 8369,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) exten => 8369,n,Hangup() ; VICIDIAL auto-dial reminder script exten => 8372,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8372,n,AGI(agi-VDADautoREMINDER.agi,${EXTEN}) exten => 8372,n,Hangup() ; VICIDIAL SURVEY transfer script AMD with Load Balanced: exten => 8373,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8373,n,AMD(2000,2000,1000,5000,120,50,4,256) exten => 8373,n,AGI(VD_amd.agi,${EXTEN}) exten => 8373,n,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) exten => 8373,n,Hangup() ; VICIDIAL SURVEY transfer script with Cepstral names: exten => 8374,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8374,n,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB) exten => 8374,n,Hangup() ; VICIDIAL SURVEY transfer script AMD with Cepstral variables: exten => 8375,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8375,n,AMD(2000,2000,1000,5000,120,50,4,256) exten => 8375,n,AGI(VD_amd.agi,${EXTEN}) exten => 8375,n,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB) exten => 8375,n,Hangup() ; BETA VICIDIAL_auto_dialer transfer script Load Balanced: exten => 8377,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8377,n,Set(LRct=1) exten => 8377,n,While($[${LRct} < 100]) exten => 8377,n,AGI(agi-VDAD_ALL_outboundBETA.agi,NORMAL-----LB) exten => 8377,n,Set(LRct=$[${LRct} + 1]) exten => 8377,n,EndWhile() exten => 8377,n,AGI(agi-VDAD_ALL_outboundBETA.agi,NORMAL-----LB) exten => 8377,n,Hangup() ; PERFORMANCE TESTING exten => _999XXXXXX1,1,Answer() exten => _999XXXXXX1,n,Wait(2) exten => _999XXXXXX1,n,Playback(vicidial-welcome) exten => _999XXXXXX1,n,Hangup() exten => _999XX11112,1,Wait(2) exten => _999XX11112,n,Answer() exten => _999XX11112,n,Playback(ss-noservice) exten => _999XX11112,n,Playback(vm-goodbye) exten => _999XX11112,n,Hangup() exten => _999XX18112,1,Wait(2) exten => _999XX18112,n,Answer() exten => _999XX18112,n,Playback(vtiger-fax) exten => _999XX18112,n,Playback(vtiger-fax) exten => _999XX18112,n,Hangup() exten => _999XX19112,1,Wait(2) exten => _999XX19112,n,Answer() exten => _999XX19112,n,Playback(vtiger-email) exten => _999XX19112,n,Playback(vtiger-email) exten => _999XX19112,n,Hangup() exten => _999XXXX112,1,Wait(5) exten => _999XXXX112,n,Answer() exten => _999XXXX112,n,Playback(demo-instruct) exten => _999XXXX112,n,Playback(demo-instruct) exten => _999XXXX112,n,Hangup() exten => _999XXXXXX2,1,Wait(8) exten => _999XXXXXX2,n,Answer() exten => _999XXXXXX2,n,Playback(demo-instruct) exten => _999XXXXXX2,n,Hangup() exten => _999XXXXXX3,1,Set(PRI_CAUSE=1) exten => _999XXXXXX3,n,Hangup() exten => _999XXXXXX4,1,Set(PRI_CAUSE=27) exten => _999XXXXXX4,n,Hangup() exten => _999XXXXXX5,1,Ringing exten => _999XXXXXX5,n,Wait(120) exten => _999XXXXXX5,n,Hangup() exten => _999XXXXXX6,1,Wait(10) exten => _999XXXXXX6,n,Answer() exten => _999XXXXXX6,n,Playback(demo-instruct) exten => _999XXXXXX6,n,Hangup() exten => _999XXXXXX7,1,Wait(12) exten => _999XXXXXX7,n,Answer() exten => _999XXXXXX7,n,Playback(demo-enterkeywords) exten => _999XXXXXX7,n,Hangup() exten => _999XXXXXX8,1,Set(PRI_CAUSE=17) exten => _999XXXXXX8,n,Hangup() exten => _999XXXXXX9,1,Wait(6) exten => _999XXXXXX9,n,Answer() exten => _999XXXXXX9,n,Playback(demo-abouttotry) exten => _999XXXXXX9,n,Hangup() exten => _999XXXXXX0,1,Wait(5) exten => _999XXXXXX0,n,Answer() exten => _999XXXXXX0,n,Playback(vm-goodbye) exten => _999XXXXXX0,n,Hangup() ;exten => 99999999999,1,Answer() ;exten => 99999999999,n,Playback(conf) ;exten => 99999999999,n,Playback(conf) ;exten => 99999999999,n,Playback(conf) ;exten => 99999999999,n,Playback(conf) ;exten => 99999999999,n,Playback(conf) ;exten => 99999999999,n,Playback(conf) ;exten => 99999999999,n,Playback(conf) ;exten => 99999999999,n,Playback(conf) ;exten => 99999999999,n,Playback(conf) ;exten => 99999999999,n,Playback(conf) ;exten => 99999999999,n,Playback(conf) ;exten => 99999999999,n,Playback(conf) ;exten => 99999999999,n,Hangup() [monitor] exten => h,1,AGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}-----${HANGUPCAUSE(${HANGUPCAUSE_KEYS()},tech)})) exten => s,1,Set(TIMEOUT(digit)=10) exten => s,n,Set(TIMEOUT(response)=10) exten => s,n,Set(MEETME_EXIT_CONTEXT=monitor_exit) exten => s,n,Background(vm-extension) ; need audio prompt. exten => s,n,WaitExten(10) exten => s,n,Hangup() exten => i,1,Goto(monitor_exit,s,1) exten => i,n,Hangup() exten => #,1,Goto(monitor_exit,s,1) exten => #,n,Hangup() exten => t,1,Goto(monitor_exit,s,1) exten => t,n,Hangup() exten => _8[0-2]XX,1,Meetme(8600${EXTEN:1},mqX) ; Listen exten => _8[0-2]XX,n,Hangup() exten => _99[0-2]XX,1,Meetme(8600${EXTEN:2},X) ; Barge exten => _99[0-2]XX,n,Hangup() [monitor_exit] exten => h,1,AGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}-----${HANGUPCAUSE(${HANGUPCAUSE_KEYS()},tech)})) exten => _X,1,Goto(monitor,s,1) exten => _X,n,Hangup() exten => i,1,Goto(monitor,s,1) exten => i,n,Hangup() exten => #,1,Goto(monitor,s,1) exten => #,n,Hangup() exten => t,1,Goto(monitor,s,1) exten => t,n,Hangup()