VICIdial Scratch Install CentOS 7 & Asterisk 13 Google Cloud

This is a complete guide for vicidial scratch installation on CentOS 7 and Asterisk 13.
It is assumed that you have freshly installed CentOS.

Update OS & Reboot

yum -y update 
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

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 browser(from another Machine/Same Machine) and make sure Apache is showing Testing 123…Webpage. If this webpage is not showing then make sure Apache is properly install, the ports are added into Firewall. You can disable the firewall completely to make sure if it FW problem or something else.

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 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 install
make samples
make config
chkconfig asterisk on

Create Database

CREATE USER 'cron'@'localhost' IDENTIFIED BY '1234';
GRANT RELOAD ON *.* TO cron@'%';
GRANT RELOAD ON *.* TO cron@localhost;
flush privileges;

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

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

Extra settings on Terminal

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:

# 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

### clear the server-related records from the database

### load dahdi drivers
modprobe dahdi
/usr/sbin/dahdi_cfg -vvvvvvvvvvvvv

### sleep for 20 seconds before launching Asterisk
sleep 20

### start up asterisk

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


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:

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:
use asterisk
\. /usr/src/astguiclient/trunk/extras/upgrade_2.8.sql

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:

We did present fully guide CentOS 7 Asterisk 13 Google Cloud so you may take benefit from this. We are digital marketers we do grow your business to reach your client at your door step.

/usr/share/astguiclient/ADMIN_area_code_populate.pl --purge-table –debug