Vicidial Installation & Setup,Vicidial Install

How to Install ViciDial on CentOS 7: A Comprehensive Expert Guide

June 20, 2025
Install ViciDial on CentOS 7

Introduction

ViciDial stands as one of the most powerful and widely adopted open-source call center solutions globally. It offers a comprehensive suite of features, including a predictive dialer, inbound and outbound call handling, automatic call distribution (ACD), and support for blended communication channels. Installing ViciDial on CentOS 7, a stable and enterprise-grade Linux distribution, is a popular deployment choice among system administrators and call center managers. This article will guide you through the entire process of how to install ViciDial on CentOS 7 using the scratch installation method, offering greater control and customization.

Prerequisites and System Preparation

Before diving into the installation process, it is crucial to ensure your system meets the necessary hardware and software prerequisites.

Hardware and Software Requirements

Minimum Hardware Recommendations: Quad-core CPU, 8 GB RAM, 160 GB SSD storage, 10/100/1000 Mbps Ethernet. Recommended for Medium to Large Deployments: Octa-core (8 cores) or higher, 16 GB RAM or more, 500 GB or larger SSDs with RAID-1 or RAID-10 configurations.

Updating CentOS 7 and Installing Development Tools

sudo yum update -y
sudo yum groupinstall "Development Tools" -y
sudo yum install wget vim net-tools epel-release -y
sudo yum install gcc-c++ gcc make perl perl-devel perl-CPAN mariadb mariadb-server mariadb-devel httpd php php-mysql php-mbstring php-pear php-devel php-process php-gd php-xml php-mcrypt php-soap php-cli -y
sudo systemctl enable mariadb
sudo systemctl enable httpd

Disabling SELinux and Configuring Firewall (firewalld)

sudo setenforce 0
sudo vi /etc/selinux/config   # Change SELINUX=enforcing to SELINUX=disabled
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=5060-5061/udp
sudo firewall-cmd --permanent --add-port=10000-20000/udp
sudo firewall-cmd --permanent --add-service=mysql
sudo firewall-cmd --reload

Installing Required Dependencies

Apache Web Server: sudo yum install httpd -y
MariaDB: sudo yum install mariadb mariadb-server mariadb-devel -y
PHP and Required Modules: sudo yum install php php-mysql php-mbstring php-pear php-devel php-process php-gd php-xml php-mcrypt php-soap php-cli -y
Perl and Perl Modules: sudo yum install perl perl-devel perl-CPAN -y
Git and Utilities: sudo yum install git wget net-tools epel-release -y

Step-by-Step Overview
Step-by-Step Overview: Setting Up VICIdial

Installing Asterisk for ViciDial

Asterisk 13, 16, and 18 Differences: Asterisk 13 is stable and compatible; Asterisk 16 offers improved performance; Asterisk 18 includes latest features.

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
tar -xzvf asterisk-16-current.tar.gz
cd asterisk-16*/
sudo contrib/scripts/install_prereq install
./configure
make menuselect
make
sudo make install
sudo make samples
sudo make config
sudo systemctl enable asterisk
sudo systemctl start asterisk
sudo asterisk -rvvv

ViciDial Scratch Installation on CentOS 7

cd /usr/src
git clone https://github.com/jaganthoutam/vicidial-install-scripts.git
cd vicidial-install-scripts
chmod +x vicidial-install-centos7.sh
./vicidial-install-centos7.sh

The script automates dependency installation, MariaDB configuration, Asterisk setup, and ViciDial source deployment. You'll be prompted to select an Asterisk version, set database credentials, and choose between single-server or cluster installation.

Post-Installation Configuration and Initial Settings

Access the ViciDial admin interface at http://your-server-ip/vicidial/admin.php (Username: 6666, Password: 1234). Immediately change the admin password, configure time zones, voicemail zones, and enable necessary permissions for admin users under Admin → System Settings.

Security Hardening and Best Practices

  • Restrict MariaDB to localhost: bind-address=127.0.0.1 in /etc/my.cnf
  • Set up SSL certificates using Let's Encrypt or self-signed
  • Configure Fail2Ban for intrusion prevention: sudo yum install fail2ban -y
  • Enforce strong password policies and audit user permissions

Backup, Recovery, and Maintenance

Automated backup script:

#!/bin/bash
BACKUP_DIR="/var/www/html/backup"
DATE=$(date '+%Y-%m-%d')
mysqldump -uroot -p'yourpassword' asterisk > $BACKUP_DIR/vicidial-db_$DATE.sql
gzip $BACKUP_DIR/vicidial-db_$DATE.sql

Schedule via cron: 0 2 * * 0 /root/dbbackup.sh. Restore with: gunzip < backup.sql.gz | mysql -uroot -p'password' asterisk.

Performance Optimization Tips

  • Activate latency-performance profile: sudo tuned-adm profile latency-performance
  • Optimize MariaDB: Set innodb_buffer_pool_size=4G (50-70% of RAM)
  • Use SSDs with deadline I/O scheduler: echo deadline > /sys/block/sdX/queue/scheduler

Troubleshooting Common Installation Issues

  • SELinux and Firewall Conflicts: Check with sestatus and firewall-cmd --list-all
  • Asterisk Compilation Errors: Install kernel headers: yum install kernel-devel-$(uname -r) -y
  • Database Connection Issues: Verify MariaDB is running and credentials are correct
  • Web Interface Access Problems: Check Apache status and firewall ports

Advanced Topics: Cluster Setup and Integrations

A ViciDial cluster consists of Database Server, Web Server, and Telephony Server(s). Run install.pl script to link servers. Integrate with SIP trunks via Admin → Carriers, and CRM systems via API or middleware.

Frequently Asked Questions (FAQs)

1. What are the system requirements for installing ViciDial on CentOS 7?

Minimum: quad-core CPU, 8 GB RAM, 160 GB SSD. Larger deployments: 8+ cores, 16-32 GB RAM, RAID storage.

2. Can I install ViciDial on CentOS 7 without disabling SELinux?

While possible by configuring custom SELinux policies, disabling SELinux is the most straightforward approach during installation.

3. Which Asterisk version should I use with ViciDial?

Asterisk 16 is generally recommended for its balance of stability and features. Versions 13 and 18 are also supported.

4. How do I secure the ViciDial web interface?

Implement SSL/TLS certificates, enforce strong passwords, restrict firewall access, and use Fail2Ban.

5. What backup strategy is best for ViciDial?

Automate regular MariaDB backups using scripts or ViciDial's built-in utilities, and store backups offsite.

Conclusion

Installing ViciDial on CentOS 7 is a multifaceted process that results in a powerful and flexible call center platform. This guide has walked you through system preparation, dependency installation, Asterisk setup, scratch installation scripts, post-installation configuration, security hardening, backup strategies, performance tuning, and troubleshooting. For further learning, visit the official ViciDial documentation at vicidial.org and community forums for support.

Talk to us