Added option for Auto-inactive of expired lists

Fixed issue with using CALLID at beginning of recording filename
Added partial experimantal Asterisk 13 compatibility

git-svn-id: svn://192.168.202.10@2817 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2017-09-21 12:28:02 +00:00
parent 8f940f6dc6
commit 7c00875818
29 changed files with 4545 additions and 267 deletions
+4 -1
View File
@@ -1,4 +1,4 @@
AGENT MONITOR DOC Started: 2013-07-16 Updated: 2013-07-16
AGENT MONITOR DOC Started: 2013-07-16 Updated: 2017-09-15
Requirements:
@@ -40,6 +40,9 @@ and the dialplan entries below should replace the older dialplan entries used.
### ADD THE LINES BELOW TO THE SYSTEM SETTINGS CUSTOM DIALPLAN
#########################################################################
NOTE: For Asteirsk 13 only, you should use the following 'h' line instead of the ones included in the below example:
exten => h,1,AGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}-----${HANGUPCAUSE(${HANGUPCAUSE_KEYS()},tech)}))
; quiet entry, listen-only, exit-on-dtmf conferences for VICIDIAL (listen)
+115
View File
@@ -0,0 +1,115 @@
ASTERISK 13 COMPATIBILITY START: 2017-09-16 UPDATE: 2017-09-16
Adding support for Asterisk 13 was much more involved and complex than adding support for previous versions, mostly because several core asterisk functions were removed or made unstable since Asterisk 11. This caused us to have to find other ways of performing the same tasks, which lead to some new processes having to be written. Although, there were also some new features that helped VICIdial to run more efficiently, so hopefully all of the changes taken together will yield the same or better overall running efficiency.
VERY IMPORTANT: Make sure you set the "Asterisk Version" properly in the Modify Server page, then force a rebuild of the conf files on that server if you have upgraded from a previous version.
These changes in Asterisk have necessitated some changes in the default Asterisk configurations for VICIdial:
NOTE: These are installed by the install.pl script if you select Asterisk version 13 and choose to copy sample conf files
In extensions.conf (from extensions.conf.sample-13):
The 'h' extension now needs to looks like this(changed in several places):
exten => h,1,AGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}-----${HANGUPCAUSE(${HANGUPCAUSE_KEYS()},tech)}))
The following is needed in the default context:
; 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()
In manager.conf (from manager.conf.sample-13):
The updatecron user needs new permissions added:
[updatecron]
secret = 1234
read = command,call,system
write = command,call,system
For Asterisk 13 support, a stock asterisk build with meetme enabled should work with VICIdial, but we do recommend using the vicidial enter/leave sounds for a more optimized call handling process. See the example compilation instructions below.
#### Compiling Asterisk 13 (pre-patched and tested VICIdial build)
# NOTE: The below instructions assume that you already have all prerequisite compilation tools and libraries installed on your system
wget http://download.vicidial.com/beta-apps/dahdi-linux-complete-2.11.1.tar.gz
tar xvfz dahdi-linux-complete-2.11.1.tar.gz
cd dahdi-linux-complete-2.11.1+2.11.1/
make
make install
cd tools
./configure
make
make install
cd ../../
wget http://download.vicidial.com/beta-apps/asterisk-13.17.1-vici.tar.gz
tar xvfz asterisk-13.17.1-vici.tar.gz
cd asterisk-13.17.1-vici/
./configure --with-dahdi=/usr/src/asterisk/dahdi-linux-complete-2.11.1+2.11.1/ --with-gsm=internal --with-ogg=/usr/lib64/
make menuselect <MAKE SURE APP_MEETME IS SELECTED IN APPLICATIONS!!!!!!!!!!!!!!!!!!!!!!!!!!>
make
make install
asterisk -vvvvvvvvvvvvvvvvvvgc
### Stock Asterisk from Digium example install
#### Asterisk 13
# NOTE: The below instructions assume that you already have all prerequisite compilation tools and libraries installed on your system
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
tar xvfz dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-2.11.1+2.11.1/
make
make install
cd tools
./configure
make
make install
cd ../../
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
tar xvfz asterisk-13-current.tar.gz
cd asterisk-13.17.1/
wget http://download.vicidial.com/asterisk-patches/leave.h
wget http://download.vicidial.com/asterisk-patches/enter.h
mv -f enter.h apps/enter.h
mv -f leave.h apps/leave.h
./configure --with-dahdi=/usr/src/asterisk/dahdi-linux-complete-2.11.1+2.11.1/ --with-gsm=internal --with-ogg=/usr/lib64/
make menuselect <MAKE SURE APP_MEETME IS SELECTED IN APPLICATIONS!!!!!!!!!!!!!!!!!!!!!!!!!!>
make
make install
asterisk -vvvvvvvvvvvvvvvvvvgc
+36
View File
@@ -625,6 +625,42 @@ asterisk -vvvvvvvvvvvvvvvvvvgc
#### Asterisk 13
# NOTE: The below instructions assume that you already have all prerequisite compilation tools and libraries installed on your system
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
tar xvfz dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-2.11.1+2.11.1/
make
make install
cd tools
./configure
make
make install
cd ../../
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
tar xvfz asterisk-13-current.tar.gz
cd asterisk-13.17.1/
wget http://download.vicidial.com/asterisk-patches/leave.h
wget http://download.vicidial.com/asterisk-patches/enter.h
mv -f enter.h apps/enter.h
mv -f leave.h apps/leave.h
./configure --with-dahdi=/usr/src/asterisk/dahdi-linux-complete-2.11.1+2.11.1/ --with-gsm=internal --with-ogg=/usr/lib64/
make menuselect <MAKE SURE APP_MEETME IS SELECTED IN APPLICATIONS!!!!!!!!!!!!!!!!!!!!!!!!!!>
make
make install
asterisk -vvvvvvvvvvvvvvvvvvgc
#### pureftpd FTP server installation instructions ####
@@ -0,0 +1,684 @@
[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
[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
; 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,Hanguo()
exten => 8889990011112,1,Goto(loopback-no-log,9990011112,1)
exten => 8889990011112,n,Hanguo()
; 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 - <default> 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 - <default> 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 - <default> 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,Playback(sip-silence)
exten => 8364,n,AGI(agi://127.0.0.1:4577/call_log)
exten => 8364,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8364,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8364,n,Hangup()
; VICIDIAL_auto_dialer transfer script:
exten => 8365,1,Playback(sip-silence)
exten => 8365,n,AGI(agi://127.0.0.1:4577/call_log)
exten => 8365,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
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,Playback(sip-silence)
exten => 8366,n,AGI(agi://127.0.0.1:4577/call_log)
exten => 8366,n,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
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,Playback(sip-silence)
exten => 8367,n,AGI(agi://127.0.0.1:4577/call_log)
exten => 8367,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
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,Playback(sip-silence)
exten => 8368,n,AGI(agi://127.0.0.1:4577/call_log)
exten => 8368,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
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,Playback(sip-silence)
exten => 8369,n,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,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8369,n,Hangup()
; VICIDIAL auto-dial reminder script
exten => 8372,1,Playback(sip-silence)
exten => 8372,n,AGI(agi://127.0.0.1:4577/call_log)
exten => 8372,n,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,n,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,n,Hangup()
; VICIDIAL SURVEY transfer script AMD with Load Balanced:
exten => 8373,1,Playback(sip-silence)
exten => 8373,n,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,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
exten => 8373,n,Hangup()
; VICIDIAL SURVEY transfer script with Cepstral names:
exten => 8374,1,Playback(sip-silence)
exten => 8374,n,AGI(agi://127.0.0.1:4577/call_log)
exten => 8374,n,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB)
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,Playback(sip-silence)
exten => 8375,n,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,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB)
exten => 8375,n,Hangup()
; BETA VICIDIAL_auto_dialer transfer script Load Balanced:
exten => 8377,1,Playback(sip-silence)
exten => 8377,n,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()
+38
View File
@@ -0,0 +1,38 @@
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
[cron]
secret = 1234
read = system,call,log,verbose,command,agent,user,originate
write = system,call,log,verbose,command,agent,user,originate
[updatecron]
secret = 1234
read = command,reporting
write = command,reporting
eventfilter=Event: CoreShowChannel
[listencron]
secret = 1234
read = system,call,log,verbose,command,agent,user,dtmf
write = command
eventfilter=Event: Shutdown
eventfilter=Event: DTMFBegin
eventfilter=Event: DTMFEnd
eventfilter=Event: CPD-Result
eventfilter=Event: SIP-Hangup-Cause
eventfilter=Event: NewCallerid
eventfilter=Event: Newstate
eventfilter=Event: Hangup
eventfilter=!Event: HangupRequest
[sendcron]
secret = 1234
read = command
write = system,call,log,verbose,command,agent,user,originate