VICIdial is an enterprise-class, open-source contact centre solution with predictive dialer capabilities. It can handle inbound, outbound, and blended phone calls and inbound email and customer website chat, all within the same agent screen. The agent screen is available in 16 various languages, with options to easily create your custom translations.
TO install VICIdial, kindly follow as mentioned below:
Update OS & Reboot
yum -y update reboot
Install Dependencies & Reboot
yum -y install epel-release yum install -y kernel* yum install -y kernel-devel yum install -y httpd php-common php-pdo php php-pear php-mbstring php-cli php-gd php-imap php-devel phpsysinfo php-mysql phpmyadmin mod_ssl mariadb mariadb-server mariadb-devel perl-DBI perl-DBD-MySQL perl-Digest-HMAC perl-YAML perl-ExtUtils-ParseXS perl-NetAddr-IP perl-Crypt-SSLeay perl-Curses perl-DBD-Pg perl-Module-ScanDeps perl-Text-CSV perl-HTML-Template perl-IO-Compress perl-Text-Glob perl-Jcode perl-Test-Script perl-Archive-Tar perl-Test-Base perl-OLE-Storage_Lite perl-Archive-Zip perl-Net-Server perl-Convert-ASN1 perl perl-Compress-Raw-Zlib perl-Digest-SHA1 perl-Data-Dumper perl-Error perl-ExtUtils-CBuilder perl-Test-Tester perl-Parse-RecDescent perl-Spiffy perl-IO-Zlib perl-Module-Build perl-HTML-Parser perl-Net-SSLeay perl-Proc-ProcessTable perl-TermReadKey perl-Term-ReadLine-Gnu perl-Digest-SHA perl-Tk perl-Net-SNMP perl-Test-NoWarnings perl-XML-Writer perl-Proc-PID-File perl-Compress-Raw-Bzip2 perl-libwww-perl perl-XML-Parser perl-File-Remove perl-Parse-CPAN-Meta perl-Set-Scalar perl-Probe-Perl perl-File-Which perl-Package-Constants perl-Module-Install perl-File-HomeDir perl-Spreadsheet-ParseExcel perl-Mail-Sendmail perl-Spreadsheet-XLSX asterisk-perl perl-version perl-Crypt-DES perl-URI perl-Net-Daemon perl-IO-stringy perl-YAML-Tiny perl-HTML-Tagset perl-Socket6 perl-BSD-Resource perl-PlRPC perl-IPC-Run3 perl-Text-CSV_XS perl-Unicode-Map perl-Module-CoreList perl-Net-Telnet perl-PAR-Dist perl-Date-Manip perl-JSON perl-Proc-Daemon perl-Spreadsheet-WriteExcel perl-rrdtool install lame screen sox ntp iftop subversion dahdi-linux-devel php-xcache wget nano vim readline-devel yum install -y make patch gcc gcc-c++ yum -y install ncurses-devel yum -y install libxml2-devel yum -y install sqlite-devel reboot
Enable & Start http,mariadb and Add Ports into Firewall
systemctl enable httpd.service; systemctl enable mariadb.service; systemctl start httpd.service; systemctl start mariadb.service firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload
Enter Server-IP address into the browser and make sure Apache is showing Testing 123…Webpage. If this webpage is not showing, then make sure Apache is properly installed, the ports are added to Firewall. You can disable the Firewall ultimately to make sure if it FW problem or something else.
Install CPAN Modules
cpan -i String::CRC Tk::TableMatrix Net::Address::IP::Local Term::ReadLine::Gnu Spreadsheet::Read Net::Address::IPv4::Local RPM::Specfile Spreadsheet::XLSX Spreadsheet::ReadSXC
Install Asterisk Perl Module
cd /usr/src/ wget http://download.vicidial.com/required-apps/asterisk-perl-0.08.tar.gz tar -zxf asterisk-perl-0.08.tar.gz cd asterisk-perl-0.08 perl Makefile.PL make all make install
Asterisk 13.17 Download & Installation
Download & Unzip Asterisk, Dahdi & Libpri
mkdir /usr/src/asterisk cd /usr/src/asterisk wget http://download.vicidial.com/beta-apps/asterisk-13.17.2-vici.tar.gz wget http://download.vicidial.com/beta-apps/dahdi-linux-complete-2.11.1.tar.gz wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz tar xzf asterisk-13.17.2-vici.tar.gz tar xzf dahdi-linux-complete-2.11.1.tar.gz tar xzf libpri-current.tar.gz
Install DAHDI
cd dahdi-linux-complete-2.11.1+2.11.1 make all make install modprobe dahdi modprobe dahdi_dummy make config
Install Libpri
cd /usr/src/asterisk/libpri-1.6.0 make clean make make install
Install Asterisk Prerequisites
bash /usr/src/asterisk/asterisk-13.17.2-vici/contrib/scripts/install_prereq install
Install Asterisk *64bit
cd /usr/src/asterisk/asterisk-13.17.2-vici ./configure --libdir=/usr/lib64 make menuselect #Select Application>MeetMe App make make install make samples make config chkconfig asterisk on
Create Database
mysql 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 Vicidial
mkdir /usr/src/astguiclient cd /usr/src/astguiclient svn checkout svn://svn.eflo.net:3690/agc_2-X/trunk cd trunk perl install.pl
Enter13.17 when it asks for Asterisk Version + Copy Asterisk Settings=Yes + Server webroot path=/var/www/html
Import DB Server Install Settings
mysql SET GLOBAL connect_timeout=60; use asterisk; \. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql \. /usr/src/astguiclient/trunk/extras/first_server_install.sql \. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql quit
Extra settings on Terminal
/usr/share/astguiclient/ADMIN_area_code_populate.pl chmod -R 755 /usr/src/astguiclient/trunk/bin/VICIDIAL_IN_new_leads_file.pl cp /usr/src/astguiclient/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ /usr/src/astguiclient/trunk/bin/VICIDIAL_IN_new_leads_file.pl --forcelistid=107 --forcephonecode=1
Start-Up Script
nano /etc/rc.d/rc.local
Enter Following in the opened file, remove everything from there and copy paste below in it:
#!/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
Setting up crontab
crontab -e Copy the below and paste it into open window and then save it with “:wq” ### keepalive script for astguiclient processes * * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl ### Compress astguiclient log files and remove old ones 25 2 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +1 -print | grep -v \.xz | xargs xz -9 >/dev/null 2>&1 28 0 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +30 -print | xargs rm -f ### 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 ### 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 --list-settings ### optimize the database tables within the asterisk database 3 1 * * * /usr/share/astguiclient/AST_DB_optimize.pl ### 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 ### inventory report optional #1 7 * * * /usr/share/astguiclient/AST_dialer_inventory_snapshot.pl -q --override-24hours ### roll logs monthly on high-volume dialing systems #30 1 1 * * /usr/share/astguiclient/ADMIN_archive_log_tables.pl --months=6 ### roll call_log and vicidial_log_extended daily on very high-volume dialing systems #20 1 * * * /usr/share/astguiclient/ADMIN_archive_log_tables.pl --daily ## uncomment below if using Vtiger #1 1 * * * /usr/share/astguiclient/Vtiger_optimize_all_tables.pl --quiet # cleanup of the scheduled callback records 25 0 * * * /usr/share/astguiclient/AST_DB_dead_cb_purge.pl --purge-non-cb --quiet ### inbound email parser should only be active on a single server * * * * * /usr/share/astguiclient/AST_inbound_email_parser.pl ### flush queue DB table every hour for entries older than 1 hour 11 * * * * /usr/share/astguiclient/AST_flush_DBqueue.pl -q ### remove and rotate old asterisk logs 29 0 * * * /usr/bin/find /var/log/asterisk -maxdepth 3 -type f -mtime +30 -print | xargs rm -f 30 0 * * * /usr/bin/find / -maxdepth 1 -name "screenlog.0*" -mtime +7 -print | xargs rm -f 31 0 * * * /usr/bin/find /tmp -maxdepth 1 -type f -mtime +7 -print | xargs rm -f 32 0 * * * /usr/bin/find /var/log/asterisk -maxdepth 1 -type f -mtime +1 -print | grep -v \.xz | xargs xz >/dev/null 2>&1 ### 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 --MP3 --run-check #0 1 * * * /usr/share/astguiclient/AST_CRON_audio_4_ftp2.pl --ftp-server=server.ip --ftp-login=user --ftp-pass=pass --ftp-directory=/ --ftp-persistent --ftp-validate --transfer-limit=100000 --list-limit=100000 ### remove old recordings more than 7 days old, and delete originals after 1 day #24 0 * * * /usr/bin/find /var/spool/asterisk/monitorDONE -maxdepth 2 -type f -mtime +7 -print | xargs rm -f 24 1 * * * /usr/bin/find /var/spool/asterisk/monitorDONE/ORIG -maxdepth 2 -type f -mtime +1 -print | xargs rm -f ### 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 ### reset several temporary-info tables in the database 2 1 * * * /usr/share/astguiclient/AST_reset_mysql_vars.pl ### Reboot nightly to manage asterisk issues and memory leaks - uncomment if issues arise 30 6 * * * /sbin/reboot ### remove text to speech file more than 4 days old #20 0 * * * /usr/bin/find /var/lib/asterisk/sounds/tts/ -maxdepth 2 -type f -mtime +4 -print | xargs rm -f ### Update agent records with the IP of the phone they are logging in on #*/5 * * * * /usr/share/astguiclient/AST_phone_update.pl --agent-lookup ### Delete voicemail that is older then 60 days #0 2 * * * /usr/local/bin/vmspool_manager.pl --active --age=60 ### ViciBox integrated firewall, by default just load the VoIP Black list and reload it every 4 hours ### You can lock everyone out of your server if you set this wrong, so understand what you are doing!!! @reboot /usr/local/bin/VB-firewall.pl --voipbl --noblack --quiet 0 */6 * * * /usr/local/bin/VB-firewall.pl --voipbl --noblack --flush --quiet
Finally Reboot
reboot
Verify Installation
screen -ls
Installing G729 Codec
cd /usr/lib64/asterisk/modules wget http://asterisk.hosting.lv/bin/codec_g729-ast130-gcc4-glibc-x86_64-core2.so mv codec_g729-ast130-gcc4-glibc-x86_64-core2.so codec_g729.so asterisk -r module load codec_g729.so /etc/init.d/asterisk restart
Login Vicidial Admin/Agent Interface
Admin Interface: yourserverip/vicidial/admin.php (username:6666, password:1234)
Agent Interface: yourserverip/agc/vicidial.php (enter agent username and password which you have created through admin interface)
Verify Codec Installation
asterisk -r core show translations
Backup/Test/Restore Existing Vicidial System
Run this for a 1-server system or server with database on it: (this may take hours on large system)
/usr/share/astguiclient/ADMIN_backup.pl --debugX
Run this on dialer/Asterisk-only servers: (do not run this if you only have one server):
/usr/share/astguiclient/ADMIN_backup.pl --debugX --without-db --without-web
Test backup:
Please create a new (any name) database on any mysql server, apply the backup data to it, and verify a new lead from Today is actually in there.
On ALL servers: (Database, web, telephony)
cd /usr/src/astguiclient
Download Vicidial trunk on ALL servers
svn checkout svn://svn.eflo.net:3690/agc_2-X/trunk
On ONLY database server:
Going into mysql and executing the upgrade sql file:
mysql use asterisk \. /usr/src/astguiclient/trunk/extras/upgrade_2.8.sql quit
On ALL servers: (Database, web, telephony)
cd /usr/src/astguiclient/trunk
perl ./install.pl
NOTES: If you have customized any scripts in the bin or agi folders,
then make sure you back them up before running the install.pl script.
This script will replace existing files in the astguiclient installation.
On one server only, update your phone codes data:
/usr/share/astguiclient/ADMIN_area_code_populate.pl --purge-table –debug