Skip to content

Instantly share code, notes, and snippets.

@wheezydial
Created May 6, 2016 22:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save wheezydial/606c662d21c0e2b8b94dbbab4fdcfd72 to your computer and use it in GitHub Desktop.
Save wheezydial/606c662d21c0e2b8b94dbbab4fdcfd72 to your computer and use it in GitHub Desktop.
How To Install Goautodial From Scratch CentOS 64bit (CentOS 7)
1. Install minimal version of CentOS 7 64bit
2. Install the Goautodial yum repository
cd /etc/yum.repos.d/
wget http://downloads2.goautodial.org/centos/7/goautodial.repo
3. Update system
yum install -y epel-release
yum update -y
4. Install All needed Goautodial and Systems programs
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
systemctl enable httpd.service; systemctl enable mariadb.service
yum install -y 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
yum -y groupinstall "Development Tools"
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
yum -y install lame screen sox ntp iftop subversion asterisk asterisk-configs dahdi-tools dahdi-linux-devel php-xcache
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
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
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
5. 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
6. Reboot
reboot
7. Vicidial default URLs
Admin: http://$ip_address/vicidial/admin.php
Agent: http://$ip_address/agc/vicidial.php
8. 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
Modify httpd.conf:
sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf
9. Restart HTTPD:
systemctl restart httpd
10. 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
11. 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
@isottina
Copy link

isottina commented Oct 5, 2016

Hello. I did all the steps, but when I connect replies MySQL connect ERROR:
Where am I wrong?

@fasilkk
Copy link

fasilkk commented Nov 4, 2016

MySql connection problem.

@nadejeT
Copy link

nadejeT commented Nov 13, 2016

Same problem. MySQL connect ERROR.
Could anyone help to resolve it?

@RMFL
Copy link

RMFL commented Feb 5, 2017

These instructions are not perfect. Expect errors and late night code wandering. Welcome to open source.

Try...
yum install MariaDb-Server MariaDb

Then proceed to setup MariaDb per the post install instructions.

@RMFL
Copy link

RMFL commented Feb 5, 2017

Notably...these instructions leave out the fact that rc.Local is replaced by systemd/system. Seems some perl modules do not fire properly for me. While I managed to resolve most issues...I am stuck getting GoAutoDial perl scripts.. Or Vicidial perl scripts to fire properly. Net::Telnet isn't working for some reason...though it shows installed and latest version. The GoAutoDial install has identical issues on CentOs 7 as Vicidial... And it likely has to do with startup/runlevel changes in CentOs7..vs 6.5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment