How to -Vicidial Installation on Centos 8 Asterisk 13

No Comments

How to -Vicidial Installation on Centos 8 Asterisk 13

How to – Scratch install Vicidial on CentOS 8
This article will go over how to do a scratch install for Vicidial on CentOS 8. The majority of this was mapped out

UPDATE: 6/13/21 -:- Special thanks to arx001 from the Vicidial Group Forums for helping me debug these instructions.

Vicidial Installation on Centos 8
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config

Set Default Editor to nano:
yum -y install nano

nano /etc/bashrc

Then add this line at the bottom:
export EDITOR=”nano”

timedatectl set-timezone America/New_York

rc.local not work:

chmod +x /etc/rc.d/rc.local
systemctl enable rc-local
systemctl start rc-local
systemctl status rc-local

yum check-update
yum -y install epel-release

yum update -y

yum groupinstall “Development Tools” -y


yum -y install
yum -y install
yum -y install yum-utils
dnf module enable php:remi-7.4

sudo dnf install -y mariadb-server

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager –set-enabled powertools

yum install -y php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo php-opcache wget unzip make patch gcc gcc-c++ subversion php php-devel php-gd gd-devel readline-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 kernel* mutt glibc.i686 certbot python3-certbot-apache mod_ssl openssl-devel newt-devel libxml2-devel kernel-devel sqlite-devel libuuid-devel sox sendmail lame-devel htop iftop perl-File-Which php-opcache libss7 mariadb-devel libss7* libopen*

systemctl start mariadb
systemctl enable mariadb

systemctl stop mariadb
cp /etc/my.cnf /etc/my.cnf.original
echo “” > /etc/my.cnf

nano /etc/my.cnf ; copy the below config to this file.

Related Posts:

Scratch install instructions for Vicidial on OpenSuSE

Create an IVR for inbound calls in Vicidial


user = mysql

basedir = /var/lib

port = 3306
socket = /var/lib/mysql/mysql.sock

datadir = /var/lib/mysql

tmpdir = /home/mysql_tmp

socket = /var/lib/mysql/mysql.sock
user = mysql
old_passwords = 0
ft_min_word_len = 3
max_connections = 800
max_allowed_packet = 32M

log-error = /var/log/mysqld/mysqld.log

query-cache-type = 1
query-cache-size = 32M

long_query_time = 1

slow_query_log = 1

slow_query_log_file = /var/log/mysqld/slow-queries.log

tmp_table_size = 128M
table_cache = 1024

join_buffer_size = 1M
key_buffer = 512M
sort_buffer_size = 6M
read_buffer_size = 4M
read_rnd_buffer_size = 16M
myisam_sort_buffer_size = 64M

max_tmp_tables = 64

thread_cache_size = 8
thread_concurrency = 8

If using replication, uncomment log-bin below

log-bin = mysql-bin

max_allowed_packet = 16M


key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M



log-error = /var/log/mysqld/mysqld.log

pid-file = /var/run/mysqld/


mkdir /var/log/mysqld
touch /var/log/mysqld/slow-queries.log
chown -R mysql:mysql /var/log/mysqld
systemctl restart mariadb


Vicidial Installation on Centos 8 Asterisk 13

Install the Perl Modules
yum install -y perl-CPAN perl-YAML perl-libwww-perl perl-DBI perl-DBD-MySQL perl-GD perl-Env perl-Term-ReadLine-Gnu perl-SelfLoader perl-open.noarch

cpan -i Tk String::CRC Tk::TableMatrix Net::Address::IP::Local Term::ReadLine::Gnu Spreadsheet::Read Net::Address::IPv4::Local RPM::Specfile Spreadsheet::XLSX Spreadsheet::ReadSXC MD5 Digest::MD5 Digest::SHA1 Bundle::CPAN Pod::Usage Getopt::Long DBI DBD::mysql Net::Telnet Time::HiRes Net::Server Mail::Sendmail Unicode::Map Jcode Spreadsheet::WriteExcel OLE::Storage_Lite Proc::ProcessTable IO::Scalar Scalar::Util Spreadsheet::ParseExcel Archive::Zip Compress::Raw::Zlib Spreadsheet::XLSX Test::Tester Spreadsheet::ReadSXC Text::CSV Test::NoWarnings Text::CSV_PP File::Temp Text::CSV_XS Spreadsheet::Read LWP::UserAgent HTML::Entities HTML::Strip HTML::FormatText HTML::TreeBuilder Switch Time::Local Mail::POP3Client Mail::IMAPClient Mail::Message IO::Socket::SSL readline

cd /usr/bin/
curl -LOk
chmod +x cpanm

cpanm -f File::HomeDir
cpanm -f File::Which
cpanm CPAN::Meta::Requirements
cpanm -f CPAN
cpanm YAML
cpanm MD5
cpanm Digest::MD5
cpanm Digest::SHA1
cpanm readline

cpanm Bundle::CPAN
cpanm DBI
cpanm -f DBD::mysql
cpanm Net::Telnet
cpanm Time::HiRes
cpanm Net::Server
cpanm Switch
cpanm Mail::Sendmail
cpanm Unicode::Map
cpanm Jcode
cpanm Spreadsheet::WriteExcel
cpanm OLE::Storage_Lite
cpanm Proc::ProcessTable
cpanm IO::Scalar
cpanm Spreadsheet::ParseExcel
cpanm Curses
cpanm Getopt::Long
cpanm Net::Domain
cpanm Term::ReadKey
cpanm Term::ANSIColor
cpanm Spreadsheet::XLSX
cpanm Spreadsheet::Read
cpanm LWP::UserAgent
cpanm HTML::Entities
cpanm HTML::Strip
cpanm HTML::FormatText
cpanm HTML::TreeBuilder
cpanm Time::Local
cpanm MIME::Decoder
cpanm Mail::POP3Client
cpanm Mail::IMAPClient
cpanm Mail::Message
cpanm IO::Socket::SSL
cpanm MIME::Base64
cpanm MIME::QuotedPrint
cpanm Crypt::Eksblowfish::Bcrypt
cpanm Crypt::RC4
cpanm Text::CSV
cpanm Text::CSV_XS


cd /usr/src
tar xzf asterisk-perl-0.08.tar.gz
cd asterisk-perl-0.08
perl Makefile.PL
make all
make install

dnf –enablerepo=powertools install libsrtp-devel -y
yum install -y elfutils-libelf-devel libedit-devel

cd /usr/src
tar -zxf lame-3.99.5.tar.gz
cd lame-3.99.5
make install

cd /usr/src/
tar xvzf jansson*
cd jansson-2.13
make clean
make install

UPDATE: 6/22/21 – Ty @Ankit for catching the wrong directiory below

cd /usr/src/
tar xzf dahdi*
cd /usr/src/dahdi-linux-complete-3.1.0+3.1.0/
nano /usr/src/dahdi-linux-complete-3.1.0+3.1.0/linux/include/dahdi/kernel.h
remove #include:
make install
make install-config
(if you get an error here about 4.18.0-305.7.1.el8_4.x86_64 missing then do “yum install *4.18.0-305.7.1.el8_4.x86_64”)

yum install dahdi-tools-libs

cd tools
make clean
make install
make install-config

if it gives an error /usr/sbin/dahdi_cfg -vvvvvvvvvvvvv
edit the file “system.conf.sample” in “system.conf”

cd /usr/src/
tar xzf libpri-1.6.0.tar.gz
cd /usr/src/libpri-1.6.0
make clean
make install

nano /etc/php.ini
error_reporting = E_ALL & ~E_NOTICE
memory_limit = 128M
short_open_tag = On
max_execution_time = 330
max_input_time = 360
post_max_size = 100M
upload_max_filesize = 42M
default_socket_timeout = 360
date.timezone = Europe/Rome

cd /usr/src/
tar xzf asterisk-13.29.2-vici.tar.gz
cd /usr/src/asterisk-13.29.2/
./configure –libdir=/usr/lib64 –with-pjproject-bundled -with-jansson-bundled
make clean
make menuselect ; ####### select chan_meetme
make install
make samples
make config

mkdir /usr/src/astguiclient
cd /usr/src/astguiclient
svn checkout svn://

SET GLOBAL connect_timeout=60;
CREATE USER ‘cron’@’localhost’ IDENTIFIED BY ‘1234’;
CREATE USER ‘custom’@’localhost’ IDENTIFIED BY ‘custom1234’;
GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO custom@localhost IDENTIFIED BY ‘custom1234’;
GRANT RELOAD ON . TO cron@’%’;
GRANT RELOAD ON . TO cron@localhost;
GRANT RELOAD ON . TO custom@’%’;
GRANT RELOAD ON . TO custom@localhost;
flush privileges;
use asterisk;
. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql
. /usr/src/astguiclient/trunk/extras/first_server_install.sql
ALTER TABLE phones ALTER template_id SET DEFAULT ”;
. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql

cd /usr/src/astguiclient/trunk
mkdir /usr/share/astguiclient
mkdir /var/log/astguiclient
mkdir /var/spool/asterisk/monitorDONE

Copy Asterisk Settings=Yes + Server webroot path=/var/www/html


/usr/share/astguiclient/ –old-server_ip=


nano /etc/rc.local

paste this below:



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

systemctl restart mariadb.service

start up the apache web server

systemctl restart apache2

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


#VicidialInstallationon#Centos8 #Asterisk 13

Vicidial Installation on Centos 8 Asterisk 13

crontab -e

paste below:

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/

0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/ –MIX
0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/
1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/ –GSM

2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/ –GSM

keepalive script for astguiclient processes

  • * * * * /usr/share/astguiclient/ –cu3way

kill Hangup script for Asterisk updaters

  • * * * * /usr/share/astguiclient/

updater for voicemail

  • * * * * /usr/share/astguiclient/

updater for conference validator

  • * * * * /usr/share/astguiclient/

flush queue DB table every hour for entries older than 1 hour

11 * * * * /usr/share/astguiclient/ -q

fix the vicidial_agent_log once every hour and the full day run at night

33 * * * * /usr/share/astguiclient/
50 0 * * * /usr/share/astguiclient/ –last-24hours

uncomment below if using QueueMetrics

*/5 * * * * /usr/share/astguiclient/ –only-qm-live-call-check

uncomment below if using Vtiger

1 1 * * * /usr/share/astguiclient/ –quiet

updater for VICIDIAL hopper

  • * * * * /usr/share/astguiclient/ -q

adjust the GMT offset for the leads in the vicidial_list table

1 1,7 * * * /usr/share/astguiclient/ –debug

reset several temporary-info tables in the database

2 1 * * * /usr/share/astguiclient/

optimize the database tables within the asterisk database

3 1 * * * /usr/share/astguiclient/

adjust time on the server with ntp

30 * * * * /usr/sbin/ntpdate -u 2>/dev/null 1>&2

VICIDIAL agent time log weekly and daily summary report generation

2 0 * * 0 /usr/share/astguiclient/
22 0 * * * /usr/share/astguiclient/

VICIDIAL campaign export scripts (OPTIONAL)

32 0 * * * /usr/share/astguiclient/

42 0 * * * /usr/share/astguiclient/

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/

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/ –purge-non-cb -q

GMT adjust script – uncomment to enable

45 0 * * * /usr/share/astguiclient/ –list-settings

Dialer Inventory Report

1 7 * * * /usr/share/astguiclient/ -q –override-24hours

inbound email parser

  • * * * * /usr/share/astguiclient/

########## END PASTE HERE

nano /etc/httpd/conf/httpd.conf

To disable logging, change:

CustomLog logs/access_log combined
to this:
CustomLog /dev/null common


nano /etc/httpd/conf.d/record.conf

Alias /RECORDINGS/ “/var/spool/asterisk/monitorDONE/”

Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all Require all granted Forcetype application/forcedownload


for synchronization problems:

go to Admin-> Servers-> update Asterisk Version: 13.29.2-vici

About Me: I'm the digital marketing specialist, competent in SEO (Google, Yahoo & Bing), Google Adwords (Search, Display, Google Shopping etc.), Facebook & Instagram Advertising etc. I can work in all platforms of digital marketing & advertise the legitimate products/services in a specific country, city or all over the world. I am very confident, dynamic, energetic, enthusiastic & dedicated freelancer as I want to build my career as a full time professional freelancer for long time. I prefer quality work rather than quantity & hard working is my way to become successful. If you hire me, then I will provide you my best quality services for your project until you achieve your goal with complete satisfaction. Expertise I do have: ✓ Managed AdWords and PPC for diversity of companies with a budget up to $500,000 per annum. All campaigns with a positive ROI. ✓ Successfully increased organic (SEO) traffic for websites with 1,000,000+ unique visits every month. ✓ In-depth Google Analytics analysis (and other tools) to make appropriate suggestions and drive positive change. ✓ Easy to understand reports and full transparency on everything I do and everything your budget is spent on. Let's get started! Contact me to discuss your plans.

About us and this blog

We are a digital marketing company with a focus on helping our customers achieve great results across several key areas.

Request a free quote

We offer professional SEO services that help websites increase their organic search score drastically in order to compete for the highest rankings even when it comes to highly competitive keywords.

Subscribe to our newsletter!

More from our blog

See all posts

Leave a Comment