Vicidial Installation Guide

Complete step-by-step installation on CentOS / Rocky Linux / AlmaLinux

Supported Operating Systems

Rocky Linux 8/9
Recommended
AlmaLinux 8/9
Recommended
CentOS 7
Legacy (EOL)
ViciBox (openSUSE)
Official ISO
ViciBox Option: For the easiest installation, download the official ViciBox ISO from vicibox.com. It is a pre-configured openSUSE-based image with Asterisk and Vicidial pre-installed. Boot from the ISO and follow the setup wizard.

Hardware Requirements

ComponentSmall (1-10 agents)Medium (10-50)Large (50-500+)
CPU2 cores / 2 GHz4 cores / 3 GHz8–16 cores / 3.5 GHz+
RAM4 GB8 GB32 GB+
Storage50 GB HDD200 GB SSD1 TB+ SSD RAID
Network100 Mbps1 Gbps1 Gbps dedicated
Agents1–1010–5050–500+
Concurrent Calls5–2020–100100–500+

Manual Installation Steps

1

Install Base OS

  • Download Rocky Linux 8/9 or AlmaLinux 9 minimal ISO.
  • Install with minimal/server package set. No GUI needed.
  • Set a static IP address during installation.
  • Create a root password and optionally a non-root admin user.
  • Disable SELinux: edit /etc/selinux/config, set SELINUX=disabled, then reboot.
# Disable SELinux (required for Vicidial)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
reboot
 
# Verify after reboot
getenforce
# Should output: Disabled
2

Install Dependencies

  • Install required packages: Apache, PHP, MariaDB, Perl, development tools.
  • Vicidial requires many Perl modules from CPAN.
# Enable EPEL and PowerTools repositories
yum install epel-release
yum config-manager --set-enabled powertools # Rocky 8
# yum config-manager --set-enabled crb # Rocky 9
 
# Install base packages
yum install -y httpd mariadb-server mariadb php php-mysqlnd php-gd php-cli \
php-process php-xml php-json php-mbstring php-ldap \
perl perl-CPAN perl-DBI perl-DBD-MySQL perl-GD perl-LWP-Protocol-https \
perl-XML-Parser perl-Time-HiRes perl-Net-SSLeay perl-IO-Socket-SSL \
gcc gcc-c++ make wget curl git kernel-devel newt-devel \
libxml2-devel sqlite-devel openssl-devel ncurses-devel libuuid-devel \
jansson-devel sox lame
3

Install Asterisk

  • Download and compile Asterisk from source (version 18 or 20 LTS recommended).
  • Enable required modules: chan_sip, res_pjsip, app_meetme, etc.
# Download Asterisk 20 LTS
cd /usr/src
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
tar xzf asterisk-20-current.tar.gz
cd asterisk-20.*/
 
# Install prerequisites
contrib/scripts/install_prereq install
 
# Configure and compile
./configure --libdir=/usr/lib64 --with-pjproject-bundled --with-jansson-bundled
make menuselect # Enable required modules
make -j$(nproc)
make install
make samples
make config
ldconfig
4

Install Vicidial from SVN

  • Check out the Vicidial source code from the official SVN repository.
  • Copy files to the appropriate directories.
# Install SVN
yum install subversion
 
# Checkout Vicidial trunk (or stable release)
cd /usr/src
svn checkout svn://svn.eflo.net/agc_2-X/trunk agc_2-X
 
# Copy web files
mkdir -p /var/www/html/vicidial
cp -rp /usr/src/agc_2-X/www/vicidial/* /var/www/html/vicidial/
 
# Copy AGI scripts
cp -rp /usr/src/agc_2-X/extras/agi-bin/* /var/lib/asterisk/agi-bin/
chmod +x /var/lib/asterisk/agi-bin/*.agi
chmod +x /var/lib/asterisk/agi-bin/*.pl
 
# Copy Asterisk configuration
cp -rp /usr/src/agc_2-X/extras/asterisk-conf/* /etc/asterisk/
5

Configure MySQL/MariaDB Database

  • Start MariaDB, secure it, create the Vicidial databases, and import the schema.
# Start and enable MariaDB
systemctl start mariadb
systemctl enable mariadb
 
# Secure installation
mysql_secure_installation
 
# Create databases and user
mysql -u root -p << 'EOF'
CREATE DATABASE asterisk DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'cron'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON asterisk.* TO 'cron'@'localhost';
FLUSH PRIVILEGES;
EOF
 
# Import Vicidial schema
mysql -u root -p asterisk < /usr/src/agc_2-X/extras/MySQL/vicidial-sql.sql
6

Configure Network & Firewall

  • Set up the static IP, open required ports, and configure the firewall.
# Open required ports
firewall-cmd --permanent --add-port=80/tcp # HTTP
firewall-cmd --permanent --add-port=443/tcp # HTTPS
firewall-cmd --permanent --add-port=5060/udp # SIP
firewall-cmd --permanent --add-port=5061/tcp # SIP TLS
firewall-cmd --permanent --add-port=8088/tcp # WebSocket HTTP
firewall-cmd --permanent --add-port=8089/tcp # WebSocket HTTPS
firewall-cmd --permanent --add-port=10000-20000/udp # RTP
firewall-cmd --reload
7

Post-Install Configuration

  • Start all services, set up Vicidial cron jobs, and configure the initial admin user.
# Start services
systemctl start httpd asterisk mariadb
systemctl enable httpd asterisk mariadb
 
# Install Vicidial cron jobs
# Add to /etc/crontab or crontab -e:
 
### Vicidial Cron Jobs ###
* * * * * /usr/share/astguiclient/AST_update.pl
* * * * * /usr/share/astguiclient/AST_send_listen.pl
* * * * * /usr/share/astguiclient/AST_VDauto_dial.pl
* * * * * /usr/share/astguiclient/AST_VDremote_agents.pl
* * * * * /usr/share/astguiclient/AST_VDadapt.pl
* * * * * /usr/share/astguiclient/AST_VDauto_dial_FILL.pl
 
# Initial admin login
# Open http://your-server-ip/vicidial/admin.php
# Default: admin / admin (CHANGE IMMEDIATELY)

Post-Install Checklist

1Access admin panel: http://your-ip/vicidial/admin.php
2Change default admin password
3Add your server in Admin → Servers
4Configure System Settings (timezone, recordings path, etc.)
5Create at least one Phone entry
6Create a test User/Agent
7Create a test Campaign
8Create and upload a test List
9Configure at least one Carrier (SIP trunk)
10Test an outbound call through the agent interface
11Verify recordings are being saved
12Check cron jobs are running (ps aux | grep AST_)

Security Hardening Checklist

Change the default admin password immediately after first login
Set strong MySQL/MariaDB root and cron user passwords
Restrict SSH access (key-based auth, disable password login, change port)
Enable firewall and only open required ports (see Step 6)
Use fail2ban to block brute-force SIP and web login attempts
Restrict admin panel access by IP using Apache .htaccess or firewall rules
Enable SSL/TLS for the web interface (HTTPS)
Set up regular database backups (mysqldump cron job)
Keep Asterisk and Vicidial updated (SVN updates)
Monitor logs: /var/log/asterisk/full, /var/log/httpd/error_log
Disable unused Asterisk modules to reduce attack surface
Use SIP TLS and SRTP for encrypted voice traffic
Critical: A Vicidial server exposed to the internet without proper security hardening WILL be compromised. SIP scanners constantly probe for open PBX systems. Always implement firewall rules and fail2ban at minimum.
Back to Vicidial Guide Create Users Carrier Setup WebRTC Setup