How to Install Vicidial on Server: Complete Guide
Introduction
Installing a call centre dialer requires careful planning. In this guide you will learn how to install vicidial on server using both the ViciBox ISO and a scratch install. The steps below suit system administrators and VoIP engineers preparing production or test deployments. We cover requirements, Asterisk setup, cloud options, security, and troubleshooting.
Table of Contents
ToggleDisclaimer: This article is technical guidance only. It is not legal, financial, or medical advice. Always test in a lab before production and consult professionals where needed.
Why choose ViciDial?
ViciDial is an open-source call centre suite built around Asterisk. It supports predictive, preview, and manual dialing. Key reasons to choose ViciDial:
- Mature community and long history.
- Built for scale — single server to clusters.
- Feature rich: blending, call recording, real-time monitoring.
- Flexible: runs on commodity hardware or cloud VMs.
- Extensible: API and custom scripts.
Before you begin — prerequisites
Prepare before installing. Missed prerequisites cause downtime and failed installs.
Hardware recommendations
Minimums for a small production single server (up to 50 agents):
- CPU: 4 vCPU (modern Intel/AMD)
- RAM: 8–16 GB
- Disk: 250+ GB SSD (separate partitions recommended)
- NIC: 1 Gbps
For medium to large deployments (100+ agents):
- CPU: 8–16 vCPU
- RAM: 32–64 GB
- Disk: 500+ GB NVMe (I/O matters)
- NIC: 10 Gbps or multiple 1 Gbps with bonding
Software and network requirements
- OS: CentOS 7/8 (traditional), AlmaLinux, or Debian/Ubuntu (scratch installs possible).
- Asterisk: supported branch for your ViciDial release.
- MySQL/MariaDB: dedicated instance preferred.
- Static IP and properly configured DNS (A and PTR).
- Ports: SIP (UDP 5060), RTP (10000–20000), HTTP/HTTPS (80/443), MySQL if remote (3306), SSH (22) — lock with firewall rules.
- Time sync: NTP or chrony.
- Backups: offsite backups for DB and recordings.
Two installation approaches: ViciBox vs Scratch
Use ViciBox for quickest path. Choose scratch for custom environments and cloud images.
Option A — ViciBox ISO
ViciBox is a prebuilt ISO with ViciDial and Asterisk configured. It’s ideal for fast deployments and testing.
Steps overview:
- Download latest ViciBox ISO from official repo or trusted mirror.
- Boot the target server/VM from ISO.
- Follow installer prompts: partitioning, network, root password.
- Let the installer complete package setup (this can take 20–60 minutes).
- Reboot and log in to the web UI
- Run post-install checks: services, Asterisk console, DB connection.
Notes: ViciBox reduces manual configuration but may lag in supporting the newest OS versions. Keep ISO integrity checks (SHA256) and scan images for security.
Option B — Scratch install (CentOS/AlmaLinux/Ubuntu)
A scratch install gives maximum flexibility. Use this for cloud, HA clusters, or strict compliance environments.
High-level steps:
- Install minimal OS and security baseline.
- Update packages and install EPEL (if CentOS).
- Install and configure MySQL/MariaDB. Secure the DB (remove test DBs, set strong root password).
- Install Apache/Nginx and PHP (match ViciDial PHP requirements).
- Install Asterisk and required DAHDI or timing modules if using PSTN hardware.
- Download ViciDial code and import initial SQL schema.
- Configure /etc/asterisk, sip.conf, extensions.conf, and relevant ViciDial configuration files.
- Start services and run web-based setup.
Commands (example for CentOS-based scratch):
yum update -y
yum groupinstall -y "Development Tools"
yum install -y httpd mariadb-server mariadb php php-mysqlnd php-xml php-mbstring wget git
systemctl enable --now httpd mariadb
# Secure MariaDB (interactive; then run mysql_secure_installation)
mysql_secure_installation
# Install Asterisk (simplified - check versions)
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
tar xzf asterisk-16-current.tar.gz
cd asterisk-16*/
contrib/scripts/install_prereq install
./configure
make menuselect.makeopts
make
make install
make samples
make config
systemctl enable asterisk
systemctl start asterisk
Adjust package names for AlmaLinux or Ubuntu (apt vs yum/dnf). Always consult the ViciDial installation README for version compatibility.
How to install Vicidial on server — Step-by-step
Below is a practical, stepwise workflow covering both ViciBox and scratch installations, plus cloud and cluster notes.
Step 1 — Plan the deployment
- Define scale: agents, concurrent calls, recordings retention.
- Choose deployment model: single-server, multi-server (web/DB/telephony split), or cluster.
- Decide on on-prem vs cloud (AWS, Azure, GCP). Cloud gives elasticity and snapshots; on-prem can reduce costs for heavy call I/O.
Step 2 — Prepare DNS, IPs, and SSL
- Reserve static IPs. Use proper reverse DNS.
- Get a domain name and create A record for the server.
- Use Let’s Encrypt for HTTPS or your company CA. Use HTTP->HTTPS redirect.
Step 3 — Install base OS and secure it
- Minimal install to reduce attack surface.
- Create admin user, disable root SSH login, and configure SSH keys.
- Install and configure firewalld/ufw. Allow only required ports.
- Configure fail2ban and limit login attempts.
- Ensure NTP/chrony is running and timezone is set.
Step 4 — Deploy ViciBox or run scratch install
Follow the earlier section. For cloud, create an instance with sufficient disk IOPS and attach storage for recordings. Use dedicated volumes for MySQL and recordings to avoid I/O contention.
Step 5 — Configure Asterisk and SIP trunks
- Add trunk details into sip.conf/pjsip.conf depending on Asterisk version.
- Set codecs (ulaw/alaw, g729 if licensed).
- Configure NAT settings if using public IPs (externip/localnet for chan_sip; endpoint configs for pjsip).
- Create inbound and outbound contexts in extensions.conf.
- Test SIP registration and make test inbound/outbound calls.
Step 6 — ViciDial web UI and admin settings
- Access the ViciDial Admin web panel.
- Create admin user, set up campaigns, dialer settings, and agent extensions.
- Configure recording storage path and retention policies.
- Set up inbound routing, inbound groups, and IVR if needed.
Step 7 — Monitoring, backups & log rotation
- Implement monitoring: Prometheus, Nagios, Zabbix, or cloud native tools.
- Rotate logs and recordings. Use logrotate and cron for DB dumps.
- Schedule regular DB backups and offsite replication (e.g., async replication to warm standby).
Cloud deployment tips
- Choose instances with strong single-thread performance for Asterisk.
- Use local NVMe for recordings when possible; move older recordings to object storage.
- Use placement groups/availability zones for high availability.
- Consider managed DB services for reliability but ensure network latency is low.
- Snapshot AMIs/images after a golden build for rapid scaling.
Security hardening
Security is crucial for telephony platforms. Harden your server to prevent toll fraud and data leakage.
- Use strong passwords and SSH keys.
- Restrict SIP access by IP or VPN. Do not expose SIP to the internet unless required.
- Use RTP and SIP ACLs and rate limits.
- Patch frequently and track CVEs for Asterisk and PHP.
- Encrypt recordings at rest and control access.
- Audit logs for suspicious activity.
- Consider using fail2ban for SIP brute force protection and iptables for rate limiting.
Performance tuning and capacity planning
- Monitor CPU, memory, disk I/O, and network. Asterisk is CPU sensitive.
- Use multi-server architecture when scaling: separate DB, web, and telephony nodes.
- For predictive dialing, ensure the server can sustain the outbound call pacing.
- Factor in codecs and transcoding overhead (g.729 requires licenced DSP or CPU).
Common issues & troubleshooting
Asterisk not starting
- Check systemctl status asterisk and /var/log/asterisk/messages.
- Verify ownership and permissions for /var/lib/asterisk and configuration files.
- Missing modules: recompile Asterisk with required modules or install dependencies.
SIP registrations failing
- Verify NAT settings, external IPs, and RTP ports.
- Check firewall rules and ensure SIP/UDP and RTP ranges are open.
- Confirm SIP trunk credentials and codecs match with provider.
Database connection errors
- Ensure MySQL is running and accepting connections.
- Check bind-address and user privileges for remote DB access.
- Inspect slow queries and optimize tables or add indexes.
Testing and quality assurance
- Run end-to-end tests: inbound IVR, outbound campaigns, agent login, and recording playback.
- Load test in a staging environment using SIP traffic generators (sipp).
- Validate failover procedures and backups restore process.
Maintenance checklist
- Weekly: update OS packages, check disk space, review logs.
- Monthly: apply security patches, review backups, test restores.
- Quarterly: review capacity and licensing, verify retention policies.
Compliance & legal considerations
- Call recording laws vary by country/region. Implement consent prompts and retention policies accordingly.
- Store Personally Identifiable Information (PII) securely and follow data protection regulations (GDPR, CCPA where applicable).
Legal Disclaimer: This article does not constitute legal advice. Consult a qualified legal professional for compliance questions related to call recording, data retention, or privacy law.
Appendix: Useful commands & config snippets
Check Asterisk console:
asterisk -rvv
core show channels
Restart ViciDial services (example):
systemctl restart asterisk httpd mysqld
Simple SIP trunk example (sip.conf chan_sip):
[trunk-provider]
type=peer
host=sip.provider.example
username=1001
secret=YourSecret
disallow=all
allow=ulaw
context=from-trunk
insecure=port,invite
Final thoughts
Installing ViciDial is a mixture of telephony knowledge and systems engineering. Use ViciBox for speed or run a scratch install for control. Plan capacity and security early. Test thoroughly before entering production. Document your configuration and keep regular backups.
FAQs
1. What is the easiest way to install ViciDial on a server?
The simplest method is to use the ViciBox ISO, which includes a pre-configured ViciDial, Asterisk, and database setup. It automates most configurations and is ideal for beginners or small to medium deployments. For custom or cloud environments, a manual (scratch) install is recommended.
2. Can I install ViciDial on Ubuntu or only CentOS?
Yes, ViciDial can be installed on Ubuntu, Debian, or AlmaLinux, although CentOS was traditionally the most supported platform. Ubuntu-based installations are more common in cloud environments and can be done manually by following the scratch install method.
3. How much hardware do I need for ViciDial?
For small call centers (up to 50 agents), you’ll need at least 4 vCPU, 8 GB RAM, and 250 GB storage. Larger centers (100+ agents) should plan for 8–16 vCPU, 32–64 GB RAM, and fast SSD/NVMe drives. ViciDial performance depends on CPU, I/O, and network throughput.
4. Is ViciDial secure for production use?
Yes — provided you apply proper security hardening, such as firewall rules, SIP access control, encrypted recordings, and regular OS patching. Never expose SIP or web admin ports to the public internet without restrictions, and always monitor for unusual traffic.
5. How do I update or upgrade an existing ViciDial installation?
Back up your database, configuration files, and recordings first. Then follow the official upgrade instructions from ViciDial forums or GitHub. Typically, this includes updating the database schema, web files, and Asterisk modules. Always test upgrades in a staging environment before applying them to production.
Conclusion
Setting up ViciDial on a server can seem complex, but with the right preparation, it’s entirely manageable. Whether you use ViciBox ISO for convenience or a scratch install for customization, success depends on clear planning, system tuning, and ongoing maintenance.
By understanding server requirements, configuring Asterisk correctly, and following best practices for security and performance, you can deploy a robust, scalable, and cost-effective call center platform.
Always remember to document your setup, automate backups, and monitor resources regularly — these steps ensure your ViciDial installation remains stable and secure in the long run.