How to Install VICIdial on openSUSE — Complete Guide
how to install vicidial on opensuse — prerequisites
Introduction
Installing VICIdial on openSUSE is a practical choice for call-center engineers who need an open-source inbound/outbound dialer. This guide, “how to install vicidial on opensuse”, walks through prerequisites, repository setup, DAHDI/libpri/Asterisk steps, database and web components, and post-install testing. It targets IT admins, VoIP engineers, and Linux server administrators.
Table of Contents
ToggleQuick checklist (before you start)
- openSUSE Leap 15.1–15.6 or compatible (server edition)
- Root or sudo access
- At least 4GB RAM (8GB+ recommended for production)
- 2 CPU cores minimum; faster CPU for high concurrency
- 100GB disk for recording/storage (adjust by scale)
- Static IP, open ports (80, 443, 5038, 3306, RTP range)
Why openSUSE for VICIdial?
openSUSE is the base for official VICIbox images and has community packages (home:vicidial) for DAHDI and libpri. It’s stable for long-running telephony services and aligns closely with VICIdial ecosystem resources.
how to install vicidial on opensuse — step-by-step
Step 1 — Prepare the server
- Install openSUSE server edition (Leap recommended). Choose minimal server and ensure network is configured.
Update system:
sudo zypper refresh
sudo zypper update -y
Set hostname and /etc/hosts entries.
Step 2 — Add VICIdial repositories (home:vicidial)
VICIdial community maintains packages for openSUSE. Add the repo for your Leap version (example for Leap 15.3). Replace openSUSE_Leap_15.3 with your version as required.
sudo zypper addrepo https://download.opensuse.org/repositories/home:vicidial/openSUSE_Leap_15.3/home:vicidial.repo
sudo zypper refresh
Verify repo:
zypper lr -u
Step 3 — Install DAHDI and libpri if needed
If you have PRI cards or plan to use hardware, install DAHDI and libpri from the repo.
sudo zypper install dahdi-linux libpri
sudo systemctl enable dahdi
sudo systemctl start dahdi
If you don’t use hardware PRI, DAHDI can often be omitted, but some callers recommend installing kernels/modules to satisfy dependencies.
Step 4 — Install Asterisk and dependencies
VICIdial commonly uses Asterisk 16/18. Use available packages or compile if a specific version required.
sudo zypper install asterisk asterisk-core
sudo systemctl enable asterisk
sudo systemctl start asterisk
If compiling:
- Install build tools: zypper install make gcc gcc-c++ ncurses-devel libxml2-devel
- Download Asterisk sources (choose version), compile, and install.
Step 5 — MySQL/MariaDB setup
VICIdial uses MySQL/MariaDB for its database.
sudo zypper install mariadb mariadb-client
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation
Create database and user for VICIdial per official schema during VICIdial install.
Step 6 — Web server and PHP
VICIdial web interface runs on Apache + PHP.
sudo zypper install apache2 php php-mysql php-gd php-mbstring
sudo systemctl enable apache2
sudo systemctl start apache2
Adjust PHP settings (memory_limit, max_execution_time, upload_max_filesize) in php.ini.
Step 7 — Download and install VICIdial (scratch install)
You can follow a “scratch install” to build VICIdial from source similar to ViciBox scripts.
- Clone VICIdial SVN/Git repo or download tarball.
- Run installer scripts (follow project-specific README). Example pattern:
cd /usr/src
sudo git clone https://github.com/VICIdial/vicidial.git
cd vicidial
sudo ./install.pl
Note: Many community guides provide step-by-step scripts tailored for openSUSE; review forum threads and the VICIbox scripts for exact steps for your Leap version.
Step 8 — Configure Asterisk and VICIdial files
- Copy dialplan and SIP/IAX configs from VICIdial to /etc/asterisk/.
- Configure manager.conf to allow AMI connections (port 5038).
- Set up vicidial.conf and server.conf per network and PSTN requirements.
Step 9 — Import database schema and admin user
Import the VICIdial SQL schema into MariaDB.
mysql -u root -p
CREATE DATABASE `asterisk` CHARACTER SET utf8mb4;
SOURCE /usr/src/vicidial/vicidial.sql;
- Create admin user and set passwords following the installer prompts.
Step 10 — Start services and enable on boot
sudo systemctl restart asterisk apache2 mariadb dahdi
sudo systemctl enable asterisk apache2 mariadb
Check status:
sudo systemctl status asterisk
tail -f /var/log/asterisk/full
Step 11 — Post-install testing
- Login to VICIdial web UI (http://your-server/astguiclient)
- Test outbound calls with SIP trunks.
- Confirm agent login, call recording, and reports.
Detailed prerequisites (expanded)
Before installing VICIdial on openSUSE, verify:
- Kernel headers: sudo zypper install kernel-devel kernel-default-devel
- Build tools: sudo zypper install make gcc gcc-c++ automake autoconf libtool
- Network utilities: sudo zypper install net-tools bind-tools
- Time sync: sudo zypper install chrony and enable chronyd to keep logs/timestamps consistent.
Recommended openSUSE versions
- Leap 15.1–15.6 have community support for VICIdial packages. Newer Tumbleweed may work but can introduce package volatility.
Installing from VICIbox scripts vs scratch install
- VICIbox ISO: Easiest path; it’s an openSUSE-based image preconfigured for VICIdial. Burn ISO or deploy as virtual machine.
- Scratch install: More flexible and preferred for cloud servers (EC2, DigitalOcean). Scratch install requires manual package installation and configuration.
Example: Add repo and install core packages (commands)
Replace 15.3 with your Leap version:
udo zypper addrepo https://download.opensuse.org/repositories/home:vicidial/openSUSE_Leap_15.3/home:vicidial.repo
sudo zypper refresh
sudo zypper install vicidial asterisk mariadb-server httpd php php-mysqli dahdi-linux libpri
If vicidial meta package not available, install components individually:
sudo zypper install asterisk mariadb-server php apache2 perl sox sox-devel lame
Compiling Asterisk from source (example)
If you need Asterisk 18:
cd /usr/src
sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
sudo tar xvf asterisk-18-current.tar.gz
cd asterisk-18.*/
sudo contrib/scripts/get_mp3_source.sh # optional
sudo ./configure
sudo make menuselect
sudo make
sudo make install
sudo make samples
sudo make config
sudo ldconfig
After compile, enable and start:
sudo systemctl enable asterisk
sudo systemctl start asterisk
SIP trunks and NAT
- Configure sip.conf or pjsip.conf depending on Asterisk version.
- If server is behind NAT, set externip or externaddr, localnet in sip.conf.
- Ensure NAT mapping on router and port forwarding for SIP and RTP.
SSL for VICIdial GUI
Use Let’s Encrypt:
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=5038/tcp
sudo firewall-cmd --permanent --add-port=3306/tcp --zone=internal
sudo firewall-cmd --permanent --add-port=10000-20000/udp
sudo firewall-cmd --reload
PHP tuning for VICIdial
Edit /etc/php7/apache2/php.ini:
- memory_limit = 512M
- max_execution_time = 300
- post_max_size = 50M
- upload_max_filesize = 50M
Restart Apache: sudo systemctl restart apache2
Firewall and ports
Open required ports:
- HTTP: 80, HTTPS: 443
- Asterisk AMI: 5038 (restrict to internal IPs)
- MySQL: 3306 (DB server only; restrict access)
RTP range: 10000–20000/UDP (configure in rtp.conf)
Example using firewalld:
sudo zypper install certbot python3-certbot-apache
sudo certbot --apache -d yourdomain.com
Force HTTPS in Apache virtualhost and update astguiclient.conf if needed.
Logs and monitoring
- Asterisk logs: /var/log/asterisk/full
- Apache logs: /var/log/apache2/error_log
- MariaDB: /var/log/mysql/mariadb.log
Use htop, iostat, and vnstat for resource monitoring.
Upgrading VICIbox / VICIdial on openSUSE
- Backup DB and configs.
- Review changelogs for Asterisk and VICIdial.
- If upgrading Leap versions, test in staging. Rebuild DAHDI modules for new kernels:
sudo zypper install kernel-default-devel
sudo dkms autoinstall
Migrating from VICIbox ISO to cloud/scratch install
- Export backups via ViciDial backup script.
- Restore DB on new server and copy /etc/asterisk/ and /var/spool/asterisk/monitor/ recordings.
- Reconfigure network and trunks.
Performance tuning for large deployments
- Separate DB server (MariaDB) from Asterisk/web servers.
- Use Load Balancer or DNS round-robin for web GUI.
- Use VICIdial clustering guides for high availability.
- Tune MariaDB (innodb_buffer_pool_size ~ 50–70% RAM) and use SSDs for recordings.
Example config snippets
/etc/asterisk/manager.conf (AMI for VICIdial)
admin]
secret = STRONGPASSWORD
permit=127.0.0.1/255.255.255.0
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config
/etc/asterisk/rtp.conf
rtpstart=10000
rtpend=20000
Troubleshooting checklist
- Dependency errors: ensure home:vicidial repo enabled and packages updated.
- DAHDI module errors: check kernel headers and rebuild modules for your kernel.
- Asterisk SIP issues: verify NAT, RTP ports, and firewall rules.
- Database charset errors: ensure UTF8 and proper user grants.
FAQ
Q: Can I run VICIdial on openSUSE Tumbleweed?
A: Possible but not recommended for production due to rolling releases causing package changes.Q: Do I need DAHDI if using SIP trunks?
A: No. DAHDI is only required for PSTN hardware such as PRI cards; SIP trunks work without it.Q: Where can I get support?
A: VICIdial forums, ViciBox website, and professional VICIdial service providers.Example full scratch install sequence (condensed script)
Below is a condensed sequence that many engineers run (adapt to your Leap version and environment). Run carefully — review each command and understand it before executing on production.
- Dependency errors: ensure home:vicidial repo enabled and packages updated.
# update and install basics
sudo zypper refresh && sudo zypper update -y
sudo zypper install -y git wget curl make gcc gcc-c++ kernel-devel kernel-default-devel
# add vicidial repo (replace 15.3)
sudo zypper addrepo https://download.opensuse.org/repositories/home:vicidial/openSUSE_Leap_15.3/home:vicidial.repo
sudo zypper refresh
# install database, web, asterisk, dahdi
sudo zypper install -y mariadb mariadb-client apache2 php php-mysqli asterisk dahdi-linux libpri sox lame
# start services
sudo systemctl enable --now mariadb apache2 asterisk
# secure DB and create DB
sudo mysql_secure_installation
mysql -u root -p -e "CREATE DATABASE asterisk CHARACTER SET utf8mb4;"
mysql -u root -p asterisk < /usr/src/vicidial/sql/vicidial.sql
# clone vicidial and run installer script
cd /usr/src
sudo git clone https://github.com/VICIdial/vicidial.git
cd vicidial
sudo ./install.pl # if provided by repo/script
# restart services
sudo systemctl restart asterisk apache2 mariadb
Backup cron example (daily DB dump)
Create /usr/local/bin/vicidial_backup.sh:
#!/bin/bash
DATE=$(date +%F)
mysqldump -u root -p'YOUR_DB_PASSWORD' asterisk > /var/backups/vicidial_db_$DATE.sql
tar -czf /var/backups/vicidial_conf_$DATE.tgz /etc/asterisk /usr/src/vicidial
# rotate older than 14 days
find /var/backups -type f -mtime +14 -delete
Make executable and add to crontab:
sudo chmod +x /usr/local/bin/vicidial_backup.sh
sudo crontab -e
# add line:
0 2 * * * /usr/local/bin/vicidial_backup.sh
AppArmor (openSUSE) considerations
openSUSE ships AppArmor. If VICIdial components require special permissions, create an AppArmor profile or set the service to complain mode:
sudo aa-complain /usr/sbin/asterisk
Prefer creating minimal, secure profiles rather than disabling AppArmor.
Tools for troubleshooting and monitoring
- sngrep — SIP call flow visualization.
- tcpdump — packet capture for RTP/SIP troubleshooting.
- htop, iotop — resource usage.
- munin, prometheus + grafana — monitoring dashboards.
Sample sngrep usage
- sngrep — SIP call flow visualization.
sudo zypper install sngrep
sudo sngrep port 5060
This helps to visualize SIP INVITE flows and diagnose registration/NAT problems.
Example performance baseline (rough)
- Small setup (10–50 agents): 4 CPU cores, 8GB RAM, SSD storage.
- Medium (50–200 agents): multiple Asterisk nodes, DB on 16–32GB RAM server, SSDs.
- High concurrency requires load testing and capacity planning.
Additional reading & community
- VICIdial official forum: vicidial.org
- ViciBox project and ISO: vicibox.org / vicibox.com
- openSUSE package repo: software.opensuse.org (home:vicidial)
Legal & compliance note
If you plan to record calls or handle payment card data (PCI), ensure compliance with local laws and PCI-DSS standards. Consult a legal/compliance professional.
FAQs
1. Can I install VICIdial on openSUSE Leap 15.5 or 15.6?
Yes. openSUSE Leap 15.5 and 15.6 are both compatible with VICIdial installation. Just make sure to use the correct home:vicidial repository version matching your Leap release. Always update the system before installation.
2. What’s the difference between VICIbox and a scratch install on openSUSE?
VICIbox is a prebuilt ISO based on openSUSE that comes with VICIdial and Asterisk preconfigured — ideal for on-premise or virtual machines.
Scratch install means installing everything manually (openSUSE + Asterisk + VICIdial). It’s best for cloud servers or advanced setups where you want custom configurations.3. Do I need DAHDI or libpri if I’m only using SIP trunks?
No, DAHDI and libpri are required only if you use physical PRI cards or analog interfaces. For SIP-only systems (cloud or VoIP providers), you can safely skip those packages to simplify maintenance.
4. How can I secure my VICIdial on openSUSE server?
- Enable firewalld and open only necessary ports (80, 443, 5038, 3306, 10000–20000/UDP).
- Use SSL (Let’s Encrypt) for the VICIdial web interface.
- Restrict MySQL and AMI access to internal IPs.
- Regularly update openSUSE and change default passwords.
- Use fail2ban or IP whitelisting for added protection.
5. What should I do if Asterisk or VICIdial fails to start?
Check logs first:
- Asterisk logs → /var/log/asterisk/full
- Apache logs → /var/log/apache2/error_log
- Database logs → /var/log/mysql/mariadb.log
Common fixes include verifying permissions, restarting services, or re-running the VICIdial installer script. Ensure dependencies like PHP modules and database users are configured correctly.
Conclusion
Installing VICIdial on openSUSE gives you a powerful, scalable, and stable dialer platform suited for call centers and VoIP operations. With the right configuration, openSUSE provides excellent performance and security for long-running services.
By following the steps in this guide — from repository setup to Asterisk, database, and GUI configuration — you can deploy a production-ready VICIdial system optimized for your environment. Always keep your installation updated, monitor system performance, and follow best practices for backups and firewall configurations.
If you need more convenience, you can start with the VICIbox ISO (which automates much of this setup). For advanced customization and cloud-based deployments, the scratch install method described here offers maximum flexibility.
- Small setup (10–50 agents): 4 CPU cores, 8GB RAM, SSD storage.