How to Install VICIdial on Ubuntu (Step-by-Step 2026 Guide)

S
Shiwansh
27 April 2026
•
5 min read
37 views

It assumes you’re installing on a fresh Ubuntu Server (22.04 LTS or 24.04 LTS), have root/sudo access, and a static IP. Adjust for your environment (cloud provider, firewall rules, SIP trunk provider, etc.).

How to Install VICIdial on Ubuntu (Step-by-Step 2026 Guide)

If you’re building a call center platform in 2026, VICIdial remains one of the most powerful open-source solutions—especially when paired with Asterisk and a solid Linux foundation. But VICIdial installation can feel intimidating because it touches multiple moving parts: the operating system, telephony stack, database, web server, and security hardening.

This guide walks you through a complete, production-oriented VICIdial installation on Ubuntu. By the end, you’ll have a working VICIdial server with Asterisk, MariaDB, Apache, and the VICIdial web interface accessible securely.

āš ļø Important: VICIdial is powerful and can handle real-time calling. Make sure you comply with local telecom regulations (caller ID rules, consent requirements, DNC lists, call recording laws, etc.) and use proper SIP trunks/carrier services.

🧩 What You’ll Need (Prerequisites)
A dedicated server or VM (recommended: 4 vCPU, 8–16 GB RAM, 100+ GB SSD)
Ubuntu Server 22.04 LTS or Ubuntu 24.04 LTS (fresh install)
Static IP address and proper DNS (optional but recommended)
Root/sudo privileges
Basic Linux command-line knowledge
A SIP trunk/provider (for outbound/inbound calling) or a softphone for testing
🧭 Overview of the Installation Flow (2026)
Update the OS and configure basic server settings
Install required dependencies (build tools, libraries, Perl modules)
Install and configure MariaDB/MySQL
Install Apache + PHP + required extensions
Install Asterisk (and DAHDI if using analog hardware)
Download and install VICIdial components
Configure database, cron jobs, and permissions
Configure firewall and security hardening
Access VICIdial admin and verify core functionality
āœ… Step-by-Step Installation (Ubuntu + VICIdial)
1) 🧼 Update Ubuntu and Set Basic Server Config
Bash

sudo apt update && sudo apt -y upgrade
sudo apt -y install software-properties-common curl wget git unzip htop net-tools \
build-essential subversion ntp ntpdate
sudo timedatectl set-timezone America/New_York # change to your timezone
Set a hostname that makes sense (e.g., dialer01.yourdomain.com):

Bash

sudo hostnamectl set-hostname dialer01.yourdomain.com
echo "127.0.0.1 dialer01.yourdomain.com dialer01" | sudo tee -a /etc/hosts
2) 🧪 Install MariaDB (Database)
VICIdial requires a properly configured MySQL/MariaDB server.

Bash

sudo apt -y install mariadb-server mariadb-client
sudo systemctl enable mariadb
sudo systemctl start mariadb
Run the secure installation script:

Bash

sudo mysql_secure_installation
Recommended answers: set a strong root password, remove anonymous users, disallow remote root login, remove test DB, reload privileges.

Then create the VICIdial database user and DB (adjust credentials for production):

Bash

sudo mysql -u root -p
Inside MySQL:

SQL

CREATE DATABASE asterisk DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'cron'@'localhost' IDENTIFIED BY 'CHANGE_ME_STRONG_PASSWORD';
CREATE USER 'custom'@'localhost' IDENTIFIED BY 'CHANGE_ME_STRONG_PASSWORD';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,DROP,INDEX ON asterisk.* TO 'cron'@'localhost';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,DROP,INDEX ON asterisk.* TO 'custom'@'localhost';
FLUSH PRIVILEGES;
EXIT;
3) 🌐 Install Apache, PHP, and Required Modules
Bash

sudo apt -y install apache2 php php-mysql php-cli php-curl php-gd php-mbstring \
php-xml php-zip libapache2-mod-php
sudo systemctl enable apache2
sudo systemctl start apache2
Verify PHP is working:

Bash

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Visit http://YOUR_SERVER_IP/info.php and confirm PHP loads, then remove the file:

Bash

sudo rm /var/www/html/info.php
4) šŸ“ž Install Asterisk (Core Telephony Engine)
Asterisk is the heart of VICIdial’s call handling.

Bash

sudo apt -y install asterisk asterisk-core-sounds-en-wav asterisk-modules \
asterisk-mysql dahdi dahdi-dkms dahdi-tools
sudo systemctl enable asterisk
sudo systemctl start asterisk
Check Asterisk status:

Bash

sudo asterisk -rvvv
core show version
core show uptime
If you’re using analog cards (rare in 2026), configure DAHDI properly. For SIP trunks, you’ll configure sip.conf/pjsip.conf and extensions.conf later via VICIdial’s admin interface.

5) šŸ“¦ Install VICIdial (Source + Dependencies)
VICIdial has several moving parts (web app + Perl scripts + cron jobs + Asterisk integration). A common approach in 2026 is to use a maintained installation script or a clean manual install from official/community sources. Many teams use the VICIbox-style or community installer; here’s a reliable manual install path.

Install Perl modules VICIdial needs:

Bash

sudo apt -y install perl libnet-telnet-perl libwww-perl libdatetime-perl \
libdbi-perl libdbd-mysql-perl libio-socket-ssl-perl libnet-ssleay-perl \
libhtml-template-perl libxml-simple-perl sox lame mpg123
Create directories and download VICIdial:

Bash

sudo mkdir -p /usr/src/astguiclient
cd /usr/src/astguiclient
sudo git clone https://github.com/astguiclient/astguiclient.git . # official repo (verify source/version)
Copy web files to Apache:

Bash

sudo mkdir -p /var/www/html/vicidial
sudo cp -r /usr/src/astguiclient/agc/* /var/www/html/vicidial/
sudo chown -R www-data:www-data /var/www/html/vicidial
Copy Asterisk configuration components (as needed):

Bash

sudo cp /usr/src/astguiclient/extras/conf_examples/*.conf /etc/asterisk/
sudo chown -R asterisk:asterisk /etc/asterisk
sudo systemctl restart asterisk
6) 🧬 Load VICIdial Database Schema
Import the VICIdial database structure and default data:

Bash

cd /usr/src/astguiclient/extras
sudo mysql -u root -p asterisk < MySQL_AST_CREATE_tables.sql
sudo mysql -u root -p asterisk < MySQL_AST_CREATE_indexes.sql
sudo mysql -u root -p --default-character-set=utf8mb4 asterisk < install.sql
If you see version-specific SQL files, use the ones that match your VICIdial release.

7) āš™ļø Configure astguiclient.conf and Permissions
Create the main configuration file:

Bash

sudo mkdir -p /etc/astguiclient
sudo cp /usr/src/astguiclient/conf/astguiclient.conf.sample /etc/astguiclient/astguiclient.conf
sudo nano /etc/astguiclient/astguiclient.conf
Set the critical values (example):

ini

VARDB_server = localhost
VARDB_database = asterisk
VARDB_user = cron
VARDB_pass = CHANGE_ME_STRONG_PASSWORD
VARDB_custom_user = custom
VARDB_custom_pass = CHANGE_ME_STRONG_PASSWORD

PATHhome = /usr/share/astguiclient
PATHlogs = /var/log/astguiclient
PATHagi = /var/lib/asterisk/agi-bin
PATHweb = /var/www/html/vicidial
PATHsounds = /var/lib/asterisk/sounds
Set permissions:

Bash

sudo mkdir -p /var/log/astguiclient /var/lib/asterisk/agi-bin
sudo cp -r /usr/src/astguiclient/agi/* /var/lib/asterisk/agi-bin/
sudo chown -R asterisk:asterisk /var/lib/asterisk/agi-bin /var/log/astguiclient
sudo chmod -R 755 /var/lib/asterisk/agi-bin
8) ā±ļø Set Up Cron Jobs (Critical for VICIdial)
VICIdial relies heavily on cron jobs for dialing, stats, cleanup, and maintenance.

Bash

sudo crontab -e
Add (adjust paths if different):

cron

### VICIdial cron jobs
* * * * * /usr/share/astguiclient/bin/vicidial.pl --quiet
* * * * * /usr/share/astguiclient/bin/AST_manager_listen.pl --quiet
* * * * * /usr/share/astguiclient/bin/AST_CRON_audio_1_move_mix.pl --quiet
* * * * * /usr/share/astguiclient/bin/AST_CRON_audio_2_compress.pl --quiet
* * * * * /usr/share/astguiclient/bin/AST_CRON_audio_3_ftp.pl --quiet
* * * * * /usr/share/astguiclient/bin/AST_VDauto_dial.pl --quiet
* * * * * /usr/share/astguiclient/bin/AST_agent_week.pl --quiet
0,30 * * * * /usr/share/astguiclient/bin/AST_cleanup_agent_log.pl --quiet
0 * * * * /usr/share/astguiclient/bin/AST_cleanup_callback_log.pl --quiet
0 0 * * * /usr/share/astguiclient/bin/AST_DB_optimize.pl --quiet
Cron is non-negotiable. If it’s misconfigured, dialing, recordings, and reports won’t work.

9) šŸ”’ Firewall, Security, and Final Hardening
Open only what you need (example using ufw):

Bash

sudo apt -y install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS (recommended)
sudo ufw allow 5060/udp # SIP
sudo ufw allow 10000:20000/udp # RTP range (adjust per Asterisk config)
sudo ufw enable
Recommended production hardening:

Put VICIdial behind HTTPS (Let’s Encrypt with Apache reverse proxy or direct cert)
Use strong admin passwords and change default credentials immediately
Restrict SSH access (key-based auth, disable root login)
Regular backups of /etc/asterisk, /etc/astguiclient, /var/www/html/vicidial, and the MySQL asterisk database
Monitor server resources (CPU, RAM, disk I/O) because call centers are resource-intensive
10) šŸš€ First Login and Post-Install Verification
Visit: http://YOUR_SERVER_IP/vicidial/admin.php
Default admin login (often): username 6666, password 1234 (change immediately)
Go through the VICIdial admin setup wizard: servers, carriers, phones, campaigns, users, inbound groups
Verify Asterisk integration: asterisk -rvvv and check for VICIdial manager events
Place a test call using a configured SIP phone/softphone and a test campaign
🧭 Common Issues (and Fixes)
Web page blank / 500 error: Check Apache error logs (/var/log/apache2/error.log) and PHP permissions
No calls going out: Confirm Asterisk is running, SIP trunk registration, firewall RTP ports, and carrier config
Database connection errors: Validate astguiclient.conf DB credentials and MariaDB grants
Cron not working: Confirm cron is running, scripts are executable, and logs in /var/log/astguiclient
Audio/recordings missing: Check sox/lame/mpg123 installed and recording paths/permissions
🧩 Final Thoughts
Installing VICIdial on Ubuntu in 2026 is very doable—but it’s not ā€œone command and done.ā€ The key to a stable deployment is treating it like a real telephony platform: solid OS setup, correct database permissions, proper Asterisk configuration, cron jobs, security hardening, and ongoing monitoring.

Once you have the base system running, you can scale it with load balancing, redundant servers, SIP trunk failover, call recording storage, and centralized monitoring—turning VICIdial into a dependable call center backbone.

want complete call center solution with AI agents visit easyian.com

Share this article
Need Help?

Get Free Digital Consultation

Our experts can help you implement these strategies for your business.

Talk to Expert

Ready to grow your business?

Chat with us