64bit-demian

How To Install Goautodial From Scratch CentOS 64bit (CentOS 7)

Install minimal version of CentOS 7 64bit

Install the Goautodial yum repository

cd /etc/yum.repos.d/
wget http://downloads2.goautodial.org/centos/7/goautodial.repo

Update system

yum install -y epel-release
yum update -y 

Install required packages:

yum -y groupinstall "Development Tools" 
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 asterisk \
asterisk-configs dahdi-tools dahdi-linux-devel php-xcache 

Enable HTTPD and MariaDB services:

systemctl enable httpd.service; systemctl enable mariadb.service; systemctl start httpd.service; systemctl start mariadb.service

Install additional 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 /root
wget http://asterisk.gnuinter.net/files/asterisk-perl-0.08.tar.gz
cd /usr/src/
tar zxvf /root/asterisk-perl-0.08.tar.gz
cd asterisk-perl-0.08
perl Makefile.PL && make all && make install
cd /root

Download and manually install Vicidial and GOautodial RPMS:

wget http://downloads2.goautodial.org/centos/7/current/x86_64/RPMS/vicidial-2.9.441a-140612.1628.2.go.noarch.rpm
wget http://downloads2.goautodial.org/centos/7/current/x86_64/RPMS/goautodial-ce-3.3-1406088000.noarch.rpm
wget http://downloads2.goautodial.org/centos/7/current/x86_64/RPMS/goautodial-ce-config-3.3-1.noarch.rpm

Install the RPMS:

rpm -ivh --nodeps vicidial-2.9.441a-140612.1628.2.go.noarch.rpm
rpm -ivh --nodeps goautodial-ce-3.3-1406088000.noarch.rpm
rpm -ivh --nodeps goautodial-ce-config-3.3-1.noarch.rpm

Edit MYSQL configurations:

cp /etc/my.cnf /etc/my.cnf-gad-orig
cat /etc/my.cnf.old > /etc/my.cnf
nano /etc/my.cnf

Add the following lines below under [mysqld]

old_passwords=1
skip-name-resolve
skip-host-cache
max_connections=500

Reboot

reboot

Vicidial default URLs

Admin: http://$ip_address/vicidial/admin.php
Agent: http://$ip_address/agc/vicidial.php

Edit PHP and HTTPD configuration file:

nano /etc/php.ini

Make sure the entries below have the same value:

memory_limit = 128M
short_open_tag = On
max_execution_time = 360
max_input_time = 360
post_max_size = 64M
upload_max_filesize = 64M
default_socket_timeout = 360
sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf

Restart HTTPD:

systemctl restart httpd

Edit startup file

nano /etc/rc.local

Paste the following entries:

# 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 time server
/usr/sbin/ntpdate -u pool.ntp.org

### roll the Asterisk logs upon reboot
/usr/share/astguiclient/ADMIN_restart_roll_logs.pl 2>/dev/null 1>&2

### clear the server-related records from the database
/usr/share/astguiclient/AST_reset_mysql_vars.pl 2>/dev/null 1>&2

### start up asterisk
/usr/share/astguiclient/start_asterisk_boot.pl 2>/dev/null 1>&2

### set message of the day
/usr/local/bin/motd.sh > /etc/motd

### update server IP address in Vicidial tables on first boot (reboot on upgrade)
if [ -e /.firstboot ]; then
   /usr/share/astguiclient/ADMIN_update_server_ip.pl --auto --old-server_ip="" 2>/dev/null 1>&2
   rm /.firstboot
fi

### make sure SELINUX is turned off
echo 0 > /selinux/enforce

touch /var/lock/subsys/local

Edit root crontab

crontab -e
### 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                                                                                                                                                                              

### 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 * * * /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 ORIG recordings more than 2 days old
24 0 * * * /usr/bin/find /var/spool/asterisk/monitorDONE/ORIG/ -maxdepth 2 -type f -mtime +2 -print | xargs rm -f

### remove all recordings more than 6 months old
30 0 * * * /usr/bin/find /var/spool/asterisk/monitorDONE/ -maxdepth 2 -type f -mtime +180 -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

### daily backup database and web folder and upload to FTP server
1 2 * * * /usr/share/astguiclient/ADMIN_backup.pl --db-without-logs --without-conf --ftp-transfer 2>/dev/null 1>&2

### keepalive script for GoAutoDial processes
* * * * * /usr/share/goautodial/keepalive_goautodial.pl

### logs cleanup for GoAutoDial
8 1 * * * /usr/share/goautodial/go_clean.pl

### asterisk logs access for GoAutoDial
* * * * * /usr/share/goautodial/go_astlogs.pl

12. Reboot

# reboot

That's it folks!