ViciDial
VICIDIAL is a software suite that design to interact with the Asterisk Open-Source PBX Phone system to act as a complete inbound/outbound contact center with inbound email support as well. The agent interface is combination of interactive web pages which work through a web browser to provide real-time information and functionality with just using a web browser on the client’s computer.
The web-based administrative interface is also available which provides the facility to view different real-time and summary reports as well as several full functionality based agent and campaign options and settings. VICIDIAL will operate as an ACD for inbound calls or for Closer calls which come from VICIDIAL outbound frontiers and even permits for remote agents signing in from remote locations as well as remote agents that may just have a telephone.
There are presently more than 4,000 installations of VICIDIAL in production in more than 100 nations around the globe, several with more than 300 agent seats and numerous with different areas. The software suite is available with a from-scratch software installation file, complete English functional versions of the web-clients and admin pages, and design to work with an Asterisk system that has VOIP (SIP or IAX) or Zap/DAHDI(E1/T1/PSTN) telco lines trunks and a wide range of soft and hard phones. This bunch of applications design to run on top of any versions of Asterisk thus no messing around with the Asterisk source code is important. For more info views the system requirements at the bottom of the page.
Key Features:
- Inbound, Outbound and Blended call handling and Inbound Email handling
- Outbound agent-controlled, broadcast and predictive dialing
- Full USA, Canada and UK reegulatory compliance capability
- Web-based agent and administrative interfaces
- Ability to have agents operate remotely
- Integrated call recording
- Three-Way calling within the agent application
- Scheduled Callbacks: Agent-Only and Anyone
- Web-configurable IVRs and Voicemail boxes
- Scalable to hundreds of seats
- Ability to use standard Telco lines and VOIP trunks
- Open-Source AGPLv2 licensed, with no software licensing cost
Steps of Vicidial Installation :
Step 1 : Centos 6.X installation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Disable Firewall and Selinux before starting the Installations Stopping the Firewall iptables -F service iptables save Disabling the Selinux vi /etc/selinux/config This file controls the state of SELinux on the system. SELINUX= can take one of these three values: enforcing - SELinux security policy is enforced. permissive - SELinux prints warnings instead of enforcing. disabled - SELinux is fully disabled. SELINUX=disabled SELINUXTYPE= type of policy in use. Possible values are: targeted - Only targeted network daemons are protected. strict - Full SELinux protection. SELINUXTYPE=targeted # SETLOCALDEFS= Check local definition changes SETLOCALDEFS=0 |
Step 2 : Dependencies , supporting software and Perl Modules installation
First Update the OS for the lastest Kernel and other softwares and reboot
1 2 | yum –y update reboot |
Dependencies Installation :
1 | yum install make patch gcc gcc-c++ subversion php php-devel php-gd gd-devel php-mbstring php-mcrypt php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel httpd libpcap libpcap-devel libnet ncurses ncurses-devel screen mysql-server mysql-devel ntp kernel* mutt glibc.i686 |
Setup Mysql :
1 2 3 4 5 6 7 8 9 10 | /etc/init.d/mysqld start chkconfig mysqld on service mysqld stop cp /etc/my.cnf /etc/my.cnf.original vi /etc/my.cnf mkdir /var/log/mysqld mv /var/log/mysqld.log /var/log/mysqld/mysqld.log touch /var/log/mysqld/slow-queries.log chown -R mysql:mysql /var/log/mysqld service mysqld restart |
Update the Timezone :
1 2 3 | rm /etc/localtime ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime rdate -s nist1-ny.ustiming.org |
Setup CPAN and install libraries :
1 2 3 | yum install perl-CPAN yum install perl-YAML perl -MCPAN -e shell |
1 2 3 4 5 6 7 8 9 10 | You will then go through CPAN setup, just hit ENTER for most prompts except for the mirrors list, you will want to select at least 4 mirrors yes for manual configuration enter for the next 18 prompts for the "make install" option, it's a good idea to add UNINST=1 enter for the next 4 prompts select your continent and country select a few cpan mirrors enter for the next 2 prompts Once you see the cpan> prompt you can begin installing modules. |
Install Modules :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | install CPAN reload cpan install YAML install MD5 install Digest::MD5 install Digest::SHA1 install readline install Bundle::CPAN reload cpan install DBI force install DBD::mysql install Net::Telnet install Time::HiRes install Net::Server install Switch install Mail::Sendmail install Unicode::Map install Jcode install Spreadsheet::WriteExcel install OLE::Storage_Lite install Proc::ProcessTable install IO::Scalar install Spreadsheet::ParseExcel install Curses install Getopt::Long install Net::Domain install Term::ReadKey install Term::ANSIColor install Spreadsheet::XLSX install Spreadsheet::Read install LWP::UserAgent install HTML::Entities install HTML::Strip install HTML::FormatText install HTML::TreeBuilder install Time::Local install MIME::Decoder install Mail::POP3Client install Mail::IMAPClient install Mail::Message install IO::Socket::SSL install MIME::Base64 install MIME::QuotedPrint install Crypt::Eksblowfish::Bcrypt quit |
Step 3: Asterisk , Dahdi & Libpri installation
1 2 | mkdir /usr/src/asterisk cd /usr/src/asterisk |
Dahdi & Libpri
Download file libpri-1.4-current.tar.gz then
untar and installation
1 2 3 | tar -xvzf asterisk-1.8.21.0-vici-beta tar -xvzf dahdi-linux-complete-current tar -xvzf libpri-1.4-current.tar.gz |
LibPri installation
1 2 3 4 5 | cd /usr/src/asterisk cd cd libpri-1.4.14 make clean make make install |
Dahdi Installation
1 2 3 4 5 | cd /usr/src/asterisk/ cd dahdi-linux-complete-2.6.2+2.6.2/ --> as of apr2013 my current dahdi version is 2.6.2 make all make install make config |
Asterisk Installation
1 2 3 4 5 6 | cd /usr/src/asterisk-1.8.21.0-vici-beta ./configure make clean make make install make samples |
Step 4: Installing astGUIclient (ViciDial)
1 | mysql -u root –p |
Creating Vicidial Database
1 2 3 4 5 6 7 8 | CREATE DATABASE `asterisk` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; CREATE USER 'cron'@'localhost' IDENTIFIED BY '1234'; GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@'%' IDENTIFIED BY '1234'; GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@localhost IDENTIFIED BY '1234'; GRANT RELOAD ON *.* TO cron@'%'; GRANT RELOAD ON *.* TO cron@localhost; flush privileges; quit |
Install the latest SVN trunk
1 2 3 4 5 | mkdir /usr/src/astguiclient cd /usr/src/astguiclient svn checkout svn://svn.eflo.net:3690/agc_2-X/trunk cd trunk perl install.pl |
Import sample data
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Login to mysql to run some commands mysql -u root -p Enter these MySQL commands: mysql>SET GLOBAL connect_timeout=60; mysql>use asterisk; mysql>\. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql mysql>\. /usr/src/astguiclient/trunk/extras/first_server_install.sql mysql>\. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql mysql>quit In the Linux terminal, enter these commands /usr/share/astguiclient /ADMIN_area_code_populate.pl |
Final Adjustments
Make several entries in the rc.local of your system.
1 | vi /etc/rc.d/rc.local |
On a new system I just overwrite the file with the following:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local # OPTIONAL enable ip_relay(for same-machine trunking and blind monitoring) /usr/share/astguiclient/ip_relay/relay_control start 2>/dev/null 1>&2 # Disable console blanking and powersaving /usr/bin/setterm -blank /usr/bin/setterm -powersave off /usr/bin/setterm -powerdown ### start up the MySQL server /etc/init.d/mysqld start ### start up the apache web server /etc/init.d/httpd start ### roll the Asterisk logs upon reboot /usr/share/astguiclient/ADMIN_restart_roll_logs.pl ### clear the server-related records from the database /usr/share/astguiclient/AST_reset_mysql_vars.pl ### load dahdi drivers modprobe dahdi /usr/sbin/dahdi_cfg -vvvvvvvvvvvvv ### sleep for 20 seconds before launching Asterisk sleep 20 ### start up asterisk /usr/share/astguiclient/start_asterisk_boot.pl |
Make several entries in the crontab of your system:
1 | crontab –e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | ### recording mixing/compressing/ftping scripts #0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl --MIX 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl 1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl –-MP3 #2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM ### keepalive script for astguiclient processes * * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl --cu3way ### kill Hangup script for Asterisk updaters * * * * * /usr/share/astguiclient/AST_manager_kill_hung_congested.pl ### updater for voicemail * * * * * /usr/share/astguiclient/AST_vm_update.pl ### updater for conference validator * * * * * /usr/share/astguiclient/AST_conf_update.pl ### flush queue DB table every hour for entries older than 1 hour 11 * * * * /usr/share/astguiclient/AST_flush_DBqueue.pl -q ### fix the vicidial_agent_log once every hour and the full day run at night 33 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl 50 0 * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl --last-24hours ## uncomment below if using QueueMetrics #*/5 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl --only-qm-live-call-check ## uncomment below if using Vtiger #1 1 * * * /usr/share/astguiclient/Vtiger_optimize_all_tables.pl --quiet ### updater for VICIDIAL hopper * * * * * /usr/share/astguiclient/AST_VDhopper.pl -q ### adjust the GMT offset for the leads in the vicidial_list table 1 1,7 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --debug ### reset several temporary-info tables in the database 2 1 * * * /usr/share/astguiclient/AST_reset_mysql_vars.pl ### optimize the database tables within the asterisk database 3 1 * * * /usr/share/astguiclient/AST_DB_optimize.pl ## adjust time on the server with ntp 30 * * * * /usr/sbin/ntpdate -u pool.ntp.org 2>/dev/null 1>&2 ### VICIDIAL agent time log weekly and daily summary report generation 2 0 * * 0 /usr/share/astguiclient/AST_agent_week.pl 22 0 * * * /usr/share/astguiclient/AST_agent_day.pl ### VICIDIAL campaign export scripts (OPTIONAL) #32 0 * * * /usr/share/astguiclient/AST_VDsales_export.pl #42 0 * * * /usr/share/astguiclient/AST_sourceID_summary_export.pl ### remove old recordings more than 7 days old #24 0 * * * /usr/bin/find /var/spool/asterisk/monitorDONE -maxdepth 2 -type f -mtime +7 -print | xargs rm -f ### roll logs monthly on high-volume dialing systems #30 1 1 * * /usr/share/astguiclient/ADMIN_archive_log_tables.pl ### remove old vicidial logs and asterisk logs more than 2 days old 28 0 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +2 -print | xargs rm -f 29 0 * * * /usr/bin/find /var/log/asterisk -maxdepth 3 -type f -mtime +2 -print | xargs rm -f 30 0 * * * /usr/bin/find / -maxdepth 1 -name "screenlog.0*" -mtime +4 -print | xargs rm -f ### cleanup of the scheduled callback records 25 0 * * * /usr/share/astguiclient/AST_DB_dead_cb_purge.pl --purge-non-cb -q ### GMT adjust script - uncomment to enable #45 0 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --list-settings ### Dialer Inventory Report 1 7 * * * /usr/share/astguiclient/AST_dialer_inventory_snapshot.pl -q --override-24hours ### inbound email parser * * * * * /usr/share/astguiclient/AST_inbound_email_parser.pl |
Run this perl script to update the server_ip fields in the asterisk tables
/usr/share/astguiclient/ADMIN_update_server_ip.pl –old-server_ip=10.10.10.15
Update music on hold configuration
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | vi /etc/asterisk/musiconhold.conf ; remove the word old ; ; Music on Hold -- Sample Configuration ; [default] mode=files directory=/var/lib/asterisk/mohmp3 [quiet] mode=files directory=/var/lib/asterisk/quiet-mp3 #include musiconhold-vicidial.conf |
Lastly, reboot the machine
1 | reboot |