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