How to Install VICIdial on Rocky Linux 9 (Scratch Install Guide, 2026)
A full VICIdial scratch install on Rocky Linux 9 — every stage explained, what breaks on Rocky Linux 9, and the one-command route that does it in about four minutes.
Installing VICIdial from scratch on Rocky Linux 9 means building the whole stack yourself — Asterisk, the database, the web server, PHP, VICIdial's Perl daemons and its schema — instead of booting the ViciBox ISO. You get the Rocky Linux 9 release you want on the hardware you want, and a stack you understand because you built it. The cost is that you do every step by hand, and a first attempt usually runs long because of small version and repository mismatches you only find when something refuses to dial.
This guide walks the whole thing on Rocky Linux 9: what you are actually installing, the requirements, each stage in order, the parts that are particular to Rocky Linux 9, and what usually breaks. It is current for 2026 — VICIdial r4035 on PHP 8.3, on Asterisk 22. If you would rather not do it by hand, there is a one-command route at the top and bottom that does exactly this and takes about four minutes.
What a VICIdial scratch install actually installs
VICIdial is not one program. It is a stack that has to line up, and a scratch install means assembling all of it:
- Asterisk — the telephony engine that places and bridges calls. VICIdial 2.14 runs on Asterisk 22, which is PJSIP-only (chan_sip is gone), so browser phones connect over WSS and conferences use ConfBridge.
- MariaDB — the database that holds leads, campaigns, agents and every call record. On Rocky Linux 9 that is MariaDB 10.11 from AppStream.
- Apache and PHP — the admin and agent web interfaces. On Rocky Linux 9 the installer runs Apache with PHP-FPM.
- VICIdial itself — checked out from the project's SVN, installed by its own install.pl, with a crontab and a handful of Perl daemons (the keepalive, the dialer, the AMI listeners) that run inside screen.
- The glue — a firewall, a TLS certificate, the time zone set everywhere VICIdial looks, and the dialplan wired up. This is the part the VICIdial documentation leaves to you, and the part that eats the most time.
What you need before you start
A VICIdial scratch install on Rocky Linux 9 needs:
- A clean, fresh server. A minimal Rocky Linux 9 install, x86_64, with nothing else on it. The installer and most guides refuse a box that already has VICIdial or a conflicting LAMP stack.
- CPU, memory and disk. Two cores and 2 GB of RAM is enough to try it; a real floor wants 4+ cores and 8 GB or more, and about 40 GB of disk. Recordings grow fast, so size the disk for how long you keep audio.
- A public IPv4 address. VICIdial ties its configuration to the server's IP. Behind NAT you forward UDP 5060 and 10000–20000 and TCP 80, 443 and 8089.
- A domain name (recommended). Point an A record at the server before you start, and open port 80 — the certificate check uses it. Browser phones need a trusted certificate, so a domain saves you a lot of pain later.
- A note on RHEL. RHEL 9 itself needs an active subscription for its CodeReady Builder repository. Rocky Linux 9 and AlmaLinux 9 do not — CRB is free on both, which is one reason most people building from scratch pick them.
The scratch install, stage by stage on Rocky Linux 9
Here is the shape of the work, in the order it has to happen. Each stage depends on the one before it, which is why a single wrong version early on surfaces as a confusing failure three stages later.
1. Repositories and base packages
The installer enables EPEL and CodeReady Builder (CRB), and the PHP 8.3 and MariaDB 10.11 AppStream module streams. Nothing outside the distribution and EPEL is needed. With the repositories in place you install the base packages: dnf's build tools, Perl and the long list of Perl modules VICIdial's scripts load, sox, lame, mpg123, screen, and the database and web packages.
DBD::mysql, Net::Server and Spreadsheet::ParseExcel; miss one and a daemon dies mid-shift with a "Can’t locate Foo.pm" that is easy to overlook until an agent cannot log in.2. MariaDB
Install and start MariaDB 10.11 from AppStream, secure it, and size it to the server — the key buffer, the InnoDB pool, the connection limit and the time zone all matter under load. VICIdial's stock tables are MyISAM; busy floors move the eight busiest log and lead tables to InnoDB to get off table locks.
3. Asterisk 22
This is the long part by hand. You fetch the Asterisk 22.5.1 source, apply the security fixes the 22 branch has had since, configure it with the right modules (PJSIP, ConfBridge, Opus for browser phones, G.729 via asterisk-g72x and Bcg729), and compile. On a 4-core server the compile alone is several minutes, and getting the module selection wrong means rebuilding.
4. VICIdial from SVN
Check out VICIdial at a known revision from its SVN, load its schema and its first-server seed into MariaDB, then run its install.pl, which writes /etc/astguiclient.conf, lays down the web code and sets up the crontab. The seed carries a placeholder IP you have to replace with the real one across roughly seventeen tables, and sample passwords you have to replace everywhere.
5. Dialplan, phones and the config files
Asterisk 22 dropped app_meetme, so the stock VICIdial dialplan’s MeetMe conference rooms have to be pointed at ConfBridge with the right profiles. You set the server’s conf_engine to CONFBRIDGE, switch the sample phones to PJSIP, and add a WebRTC phone template so browser phones register over WSS on port 8089.
6. The certificate and the firewall
Get a TLS certificate for your domain (Let's Encrypt, with ZeroSSL as a fallback), point Apache, the WebRTC socket and VICIdial at it, and set up renewal. Then a default-deny firewall: on Rocky Linux 9 that is firewalld with nftables, with your carrier's signalling address on the allow list and SIP closed to everyone else.
7. Start, and check it actually works
Start Asterisk and VICIdial’s daemons, confirm the keepalive has them all running in screen, log into the admin page as user 6666, register a browser phone, and place a test call into a conference. Only now do you know the stack lines up.
What usually breaks on Rocky Linux 9
The repositories VICIdial needs are not on by default
Screen (VICIdial runs every daemon inside it), certbot, lame, mpg123 and most of the Perl modules live in EPEL, and the build headers those packages need live in CodeReady Builder (CRB). Neither is enabled on a fresh server. Miss one and the install fails partway with a "No match for argument" or a missing-header error.
SELinux blocks VICIdial silently
VICIdial ships no SELinux policy, so in enforcing mode SELinux quietly denies things Asterisk and the web code need, and you get recordings that never write and a web UI that half-works. The fix is to set SELinux to permissive (which still logs what it would have blocked) rather than fighting a policy that does not exist.
The kernel update stalls the install
A fresh el9 server usually has a kernel update waiting, and pulling it in during the install adds minutes and a reboot you do not want mid-build. The right move is to hold the kernel back during the install and let it land afterwards, taking effect at the next reboot.
Why most VICIdial install guides for Rocky Linux 9 lead you wrong
If you search for this, most of what comes back was written for CentOS 7 and Asterisk 11, 13 or 16. The package names, the repositories and the Asterisk build options in those guides no longer match Rocky Linux 9 or Asterisk 22, so following them step by step gets you a server that compiles but will not dial, or a PHP that is too old for the admin pages. The three things that have changed most since those guides were written: Asterisk is PJSIP-only now (no chan_sip), app_meetme is gone (ConfBridge replaces it), and PHP moved from 7 to 8. Any guide that still tells you to enable chan_sip or build DAHDI for a softphone-only install is out of date.
How many agents does one server handle?
A single all-in-one scratch install, sized sensibly, comfortably runs a small-to-mid floor — think 10 to 40 agents depending on how hard you dial and how much recording and reporting you do. Predictive dialing at a high ratio, call recording on every call, and heavy real-time reporting all cost database and CPU, so the honest number is "measure it". Past roughly that size you split the roles — a database and web server, separate Asterisk dialers, and a standby database — which is a cluster, not a single scratch install. For one box, give it 4+ real cores and 8–16 GB of RAM and watch MariaDB under load.
Plan for recordings and disk before you fill it up
Call recordings are the thing that quietly fills a VICIdial server. Stereo recording and long talk times add up fast, and when the disk fills, Asterisk and MariaDB both misbehave in confusing ways. Decide up front how long you keep audio, put recordings where you can grow or offload them, and keep an eye on the partition. This is a sizing decision, not an afterthought — it is much easier to make before the first campaign than during one.
The one-command route
Every step above is mechanical, which is exactly the kind of thing worth automating. Our installer does the whole scratch install on Rocky Linux 9 in one command, and it handles each of the gotchas above by itself. You get a free install key (confirm your email), then run:
curl -fsSL https://downloads.vicifast.com/vicidial-installer/install.sh | sudo bash -s -- --key YOUR-INSTALL-KEY --domain dialer.example.comIt installs VICIdial r4035 on PHP 8.3, patched Asterisk 22 (prebuilt and checksum-verified, so no waiting on a compile), your domain with a certificate that renews itself, a firewall, and — by default — a campaign with fronters and closers who can log in straight away. It took 4 minutes 20 seconds on a 4-core server. The full option list and the other systems are on the VICIdial scratch install page.
Installing on a different system?
The same scratch install, with the version and repository differences for each system, is covered in the AlmaLinux 9 guide and the Ubuntu 24.04 guide. For the whole picture and the one-command route on every system, start at the VICIdial scratch install page.
What is left after the install
A finished scratch install is a working dialer with no way to make a call yet. Three things turn it into a running operation: a carrier (a SIP trunk from a VoIP provider, added under Admin › Carriers and allowed through the firewall), your leads (loaded into a list on a campaign), and a phone number pointed at an in-group if you take inbound calls. If you used our installer with its initial setup, the campaign, the in-group and the agents already exist, so you are down to the carrier and the leads. Either way, that is the point where you stop being a sysadmin and start being a dialer operator.
Frequently asked questions
Can you install VICIdial on Rocky Linux 9?
Yes. Rocky Linux 9 runs current VICIdial well: PHP 8.3 from the AppStream module stream, MariaDB 10.11 from AppStream, and Asterisk 22. You can build it by hand following this guide, or use our installer to do the whole scratch install in one command in about four minutes.
How long does a VICIdial scratch install take on Rocky Linux 9?
By hand, a first install is a multi-hour job, mostly the Asterisk compile and tracking down missing Perl modules and repository mismatches. With our installer and the prebuilt Asterisk it took 4 minutes 20 seconds on a 4-core server.
Which Asterisk and VICIdial versions does this use?
Asterisk 22.5.1 with the security fixes the 22 branch has had, PJSIP only, and VICIdial r4035 from its official SVN.
Should I build from scratch or use the ViciBox ISO?
ViciBox is VICIdial's own installer image, built on openSUSE — you boot it and it installs the whole server. A scratch install runs on the Rocky Linux 9 your provider already offers, on any cloud or dedicated server, and gives you control over the release and layout. Our installer makes the scratch route one command on Asterisk 22.
Related from VICIfast
- Provisioning a VICIdial server in 40 secondsMeasured on every server we build, and published.
- Try a live VICIdial serverA working server and admin URL, no sales call.
- Our long-form VICIdial handbookArchitecture, sizing, storage and cost. No email wall on the contents.
- For floors above 400 agentsCustom regions, procurement paperwork, and volume terms.
About VICIfast
We run VICIdial servers for call centres, so you don’t have to. You get the dialer set up, secured and kept running — we handle the server, the updates and the backups. Bring your own phone carrier at no markup, or use VICIfast Voice, our own US calling and numbers, from $0.0085 a minute. From $49 a month per server.
Questions? Call +1 636 556 0022 and talk to someone who runs dialers.
Citing this article
VICIfast Engineering. “How to Install VICIdial on Rocky Linux 9 (Scratch Install Guide, 2026)”. VICIfast LLC, November 3, 2026. Retrieved from https://vicifast.com/blog/install-vicidial-rocky-linux-9
Have questions?
You might be interested in
Guides & tutorials
How to Install VICIdial on AlmaLinux 9 (Scratch Install Guide, 2026)
Guides & tutorials
How to Install VICIdial on Debian 12 (Scratch Install Guide, 2026)
Guides & tutorials
How to Install VICIdial on Ubuntu 22.04 (Scratch Install Guide, 2026)
Guides & tutorials
How to Install VICIdial on Ubuntu 24.04 (Scratch Install Guide, 2026)
VICIfast newsletter
Liked this? Get the next one in your inbox.
We ship the kind of stuff you just read - concrete, numbers-first, no drip. One email when a new post goes live. Unsubscribe in one click.
Comments
No comments yet - be the first.