ViciDial is an enterprise-class, open-source contact center suite used by thousands of organizations globally for inbound, outbound, and blended call handling. It features a robust predictive dialer, ACD capabilities, and support for email and website chat integration.
Hardware Recommendations and System Dimensioning
The success of a ViciDial installation is heavily dependent on the underlying hardware. Telephony applications are highly sensitive to timing and disk I/O.
Minimum Hardware Specifications
- CPU: Quad-Core 2.0+ GHz.
- RAM: 4+ GB.
- Hard Drive: 160+ GB RAID-1 setup.
Capacity Guidelines
A single "Express" server can typically handle: Outbound up to 15–25 agents at a 4:1 dialing ratio with recordings; Inbound up to 25–50 agents.
Phase 1: OS Preparation and Optimization
Begin with a minimal Debian installation (netinstall).
1. Initial Updates
apt-get update && apt-get dist-upgrade
2. Kernel Optimization
Install a 1000 Hz Realtime Kernel:
apt-get install -y linux-image-rt-amd64 linux-headers-rt-amd64 then update-grub and
reboot.
3. Security and Firewall (Xtables GeoIP)
Restrict traffic to specific countries. Essential ports: 80 (HTTP), 443 (HTTPS), 5060 (SIP).
Phase 2: Installing Dependencies and CPAN Modules
1. Apt-Get Dependencies
apt-get install apache2 build-essential libmysqlclient-dev libncurses5-dev libsox-fmt-all mpg123 mysql-server php5 php5-mysql screen sox subversion
2. The Perl CPAN Marathon
Install nearly 50 Perl modules including DBI, DBD::mysql, Net::Telnet, Spreadsheet::WriteExcel. This takes about 30 minutes.
3. Asterisk-Perl (The 0.08 Rule)
Critical Warning: Must use Asterisk-Perl version 0.08. Version 0.09+ is incompatible.
cd /usr/src
wget http://asterisk.gnuinter.net/files/asterisk-perl-0.08.tar.gz
tar -zxf asterisk-perl-0.08.tar.gz
cd asterisk-perl-0.08
perl Makefile.PL && make all && make install
Phase 4: Telephony Subsystem (DAHDI and Asterisk)
1. DAHDI (Timing)
ViciDial requires a timing source. Compile DAHDI and LibPRI from source.
2. Compiling Patched Asterisk
cd /usr/src/asterisk/asterisk-1.8.23.0-vici
./configure && make clean && make && make install && make samples
3. Audio Files
Download English sounds in GSM, uLaw, Wav into /var/lib/asterisk/sounds. Use Sox to adjust MOH volume.
Phase 5: Database Setup and Application Installation
1. Database Configuration
CREATE DATABASE `asterisk` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'cron'@'localhost' IDENTIFIED BY '1234';
GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES on asterisk.* TO cron@'%' IDENTIFIED BY '1234';
flush privileges;
Optimization: Edit /etc/mysql/my.cnf set connect_timeout=60 and comment out bind-address.
2. ViciDial (astguiclient) SVN Checkout
mkdir /usr/src/astguiclient
cd /usr/src/astguiclient
svn checkout svn://svn.eflo.net:3690/agc_2-X/trunk
cd trunk
perl install.pl
During installation, define your server IP and webroot path (usually /var/www/html).
Phase 6: Post-Installation and Automation
1. IP and Area Codes
/usr/share/astguiclient/ADMIN_area_code_populate.pl
/usr/share/astguiclient/ADMIN_update_server_ip.pl --old-server_ip=10.10.10.15
2. Crontab: The Heartbeat of ViciDial
Add entries for audio mixing, keepalive, hopper update, log cleaning.
3. RC.Local Automation
Update /etc/rc.local to launch MySQL, Apache, DAHDI, and Asterisk on reboot.
Security and Administration

1. Administrative Access
Navigate to http://yourserverip/vicidial/welcome.php. Default Username: 6666, Password:
1234.
2. Password Security
Change the root password and database passwords to prevent toll fraud.
Frequently Asked Questions (FAQ)
Can I host ViciDial on a Cloud VPS like AWS or DigitalOcean?
Yes, but for large call volumes a dedicated server is preferred to avoid "noisy neighbor" issues. ViciDial on AWS EC2 setup
Do I need a fixed IP address?
A static IP is strongly recommended to maintain stable SIP registrations.
When should I move to a Cluster setup?
Move to a cluster (separate DB, Web, Telephony) when exceeding 20 outbound agents or 30 inbound agents.
What happens if I use the wrong version of Asterisk-Perl?
Version 0.09+ causes critical scripts to fail, leading to a non-functional dialer.
Final Summary and Analogy
Building a ViciDial server from scratch on Debian is like building a performance race car from individual parts. While ViciBox is the "pre-built car," scratch installation ensures you understand every component—invaluable for scaling to hundreds of agents.
DialerGiants