Archives 2026

VICIdial Development Roundup: Key Changes From Late November 2025 to Early 2026

2FA Agent

Allow Stero Recordings

VICIdial Development Roundup: Key Changes From Late November 2025 to Early 2026

By Carpenox — VICIdial Architect, Troubleshooter, and Eternal Code Archaeologist

Every few months I like to step back, sift through the commit logs, and take stock of how VICIdial continues to evolve. Since late November 2025, the project has seen a surprisingly dense wave of improvements — from AGI-level call‑flow logic to backend archival tooling, adaptive dialing enhancements, PHP8 compatibility, and even new experimental VCA components.

This cycle wasn’t about flashy UI changes. It was about tightening the engine, fixing long‑standing edge cases, and expanding the adaptive dialer’s intelligence. Below is my curated breakdown of what matters, why it matters, and how these updates impact real‑world call center operations.


AGI & Call‑Flow Enhancements

agi-DID_route.agi — 251112-1517

Alter CID Name

Added alter_cid_name option
A small but meaningful upgrade. This gives inbound routing more flexibility when manipulating Caller ID Name data — especially useful for branded routing, DID‑based identity masking, and carrier‑specific CNAM quirks.


VD_amd.agi — 260129-1443

Reinserts missing vicidial_auto_calls records
This is a big reliability win. In rare race conditions, AMD could lose track of an auto‑call record. This patch ensures the system self‑heals instead of leaving orphaned calls or broken agent states.


agi-VDAD_ALL_outbound.agi — 251020-0835

Allow Recording DTMF Detection
Allow recording DTMF Muting

Added recording_dtmf_muting + stereo recording fix
DTMF muting is essential for PCI‑sensitive environments. Stereo recording fixes help anyone using dual‑channel compliance recording or advanced QA analytics.


cm_areacode.agi — 260108-0052

cm_postal.agi — 260107-2119

Both now update vicidial_list records with optional field variables
These scripts finally behave like first‑class data‑enrichment tools. If the lead exists, they can now push enriched metadata directly into custom fields — a huge win for automated lead hygiene.


agi/piper_generate.pl — 251014-1211

piper_generate_names.pl — 251104-0908

First build — part of the growing TTS/voice asset ecosystem.

First build; TTS caching added
Based on cepstral_generate.pl, this new generator caches TTS files for reuse. That means faster IVR prompts, fewer CPU spikes, and smoother high‑volume inbound flows.


Admin & Backend Maintenance Tools

ADMIN_archive_log_tables.pl — 260111-2138

Added --agent-log-only flag
Perfect for shops that want to archive agent logs without touching other datasets.


ADMIN_cold_storage_log_tables.pl — 251230-0853

Added --vl-year flag
Lets you target year‑specific vicidial_log_archive_YYYY tables. Cleaner, safer archival workflows for long‑running systems.


ADMIN_keepalive_ALL.pl — 260126-1334

Now checks reserved_extensions against dialplan numbers
This prevents accidental collisions when generating conf files — a subtle but important safeguard for multi‑tenant or heavily customized dialplans.


Adaptive Dialer Intelligence Upgrades

adapt percent-max

AST_VDadapt.pl — 251205-0949

Added adaptive_percentmax_percentage + new ADAPT_PERCENTMAX dial method
This is one of the most meaningful dialing upgrades in years. It gives admins tighter control over max pacing behavior and reduces the risk of over‑dialing during volatile traffic periods.


AST_VDauto_dial.pl — 251205-1455

Added SHARED_ADAPT_PERCENTMAX
This allows multiple campaigns to share adaptive pacing logic — ideal for blended or load‑balanced environments.


AST_list_export.pl

  • 251128-1536 — Added --basic-export
  • 251130-0006 — Added --custom-export=XXX

These options make exports far more flexible, especially for CRMs that expect specific field layouts.


AST_update_AMI2.pl — 251203-2218

Added server_live_partitions inserts/updates
Improves AMI‑driven monitoring and partition‑aware reporting.


New & Experimental VCA Components


experimental/VCA/AST_VCA_log_report.php — 190329-1852

Legacy first build, but still relevant as the VCA suite expands.


experimental/VCA/VCA_client_settings.pl — 260112-1114

Initial build — foundational for client‑side VCA customization.


experimental/VCA/VCA_log_manage.pl — 260112-1455

First version — derived from the archive log tools.


extras/CRM_log_manage.pl — 260117-0756

First version — CRM‑focused log management built on the VCA framework.


Web Interface & PHP8 Compatibility

www/agc/functions.php — 251205-1742

Fix for undefined variable issues — small but necessary cleanup.


www/agc/vdc_db_query.php — 251124-0935

Added lead status display for callback list output
A quality‑of‑life improvement for agents and supervisors.


www/agc/vicidial.php

  • 251124-0936 — Lead status display for callbacks
  • 260106-1418 — PHP8 fixes

The PHP8 transition continues, and these patches keep the AGC stable.


www/vicidial/AST_hangup_cause_report.php — 260103-1900

Fix for missing variables in links — improves report reliability.


performance report update

www/vicidial/AST_server_performance.php — 251001-1700

Switched from Ploticus to Graph.js
This is a modernizing move. Graph.js is lighter, more flexible, and plays better with responsive layouts.


www/vicidial/AST_timeonVDADallSUMMARY.php — 251205-1931

Added ADAPT_PERCENTMAX support — keeping reporting aligned with the new dialer logic.


www/vicidial/admin.php

alter CID name
  • 251112-2201 — Added alter_cid_name DID option
  • 251204-0757 — Added SERVER DRIVE PARTITIONS display
partition sizes
crashed tables
  • 251211-1134 — Added ADAPT_PERCENTMAX + adaptive_percentmax_percentage
  • 260106-1438 — PHP8 fixes + 2026 date change
  • 260126-1335 — Added reserved_extensions vs dialplan number check

This file saw the most action — reflecting how central the admin panel is to daily operations.


API Improvements

non_agent_api.php

  • 251205-1456 — Added ADAPT_PERCENTMAX dial method
  • 260123-1020 — Fixed pause_sec in agent_stats_export

API parity with new dial methods is essential for third‑party integrations, and the pause_sec fix resolves a long‑standing annoyance for analytics tools.



Additional System & Campaign Enhancements (UI, Compliance, Dialing Logic, and Security)



While the core AGI and backend updates defined this development cycle, VICIdial also introduced a wide range of UI‑level, compliance‑focused, and workflow‑refining features across System Settings, Campaigns, In‑Groups, and DIDs. These changes may look subtle at first glance, but they significantly improve agent experience, dialing accuracy, security posture, and administrative control.

Below is my breakdown of the most impactful additions.


Agent Experience & Workflow Controls

Hide Agent Failed Dial Codes

A new option that replaces raw SIP failure codes with a custom message.
This prevents agents from being overwhelmed by technical alerts and keeps the manual dial workflow clean.

Dialstring Filtering

Manual & 3‑Way Dialstring Filters

A major upgrade for dialing hygiene.
You can now enforce rules like:

  • Digits only
  • Digits + plus sign
  • Digits + letters
  • Remove leading 1 or 0
  • Right‑trim to 10 digits

These filters prevent malformed numbers from hitting the dialplan and reduce carrier rejections.


Recording Enhancements & PCI‑Focused Features

Stereo Recordings

Enables dual‑channel recordings (agent left, customer right).
Critical for QA, analytics, and compliance.

Stereo Parallel Recordings

Allows multiple simultaneous stereo recordings per call.
This is VICIdial’s most advanced recording capability to date.

Recording DTMF Detection

Flags recordings where DTMF tones occur — essential for PCI audits.

Recording DTMF Muting

A powerful privacy tool with multiple modes:

  • Campaign‑level control
  • Cluster‑wide override
  • Forced muting for a defined number of seconds

This is VICIdial’s strongest PCI‑protection feature ever shipped.


Authentication, Passwords & Security

Two‑Factor Admin & Agent Auth Hours

Defines how long a 2FA session remains valid.
A major step forward for enterprise security.

Two‑Factor Auth Config Container

Centralizes all 2FA configuration.
If misconfigured, the system warns you to prevent accidental lockouts.

A subtle but important security refinement.


Reporting, Infrastructure & Diagnostics

Server Drive Partitions Display

Admin → Servers now shows drive partitions directly in the UI.
Great for catching low‑disk or misconfigured mounts.

Database Crash Table Detection

A new diagnostic page that alerts you if any MySQL tables are in a crashed state.
This is one of those “finally” features that every admin appreciates.


Inbound DID Enhancements

Alter CID Name

A flexible new tool for manipulating Caller ID Name on inbound calls.
Modes include:

  • ALLCALLS — alter every call
  • OTHSYS — alter only calls from other systems
  • CIDNUM — set CNAM to the caller’s number
  • CLEAN — replace CNAM with “CLEANED”

This is extremely useful for multi‑system routing and carrier normalization.


Final Thoughts From the Field

This development window wasn’t about massive feature drops — it was about refinement, stability, and future‑proofing. The adaptive dialer got smarter. The admin tools got safer. The AGI layer got more reliable. And the PHP8 transition continues to harden the web interface for the next decade.

If you’re running a production cluster, these updates are absolutely worth pulling in. They reduce edge‑case failures, improve compliance recording, and give you more control over pacing and data hygiene.

-Chris aka carpenox

How to – Install ViciDial on Alma Linux 10

Alma 10

How to – Install ViciDial on Alma Linux 10

image

How to Install VICIdial on AlmaLinux 10 Using My Updated Auto‑Installer

VICIdial admins have been waiting for this one. AlmaLinux 10 is here with a modernized kernel, updated libraries, and a cleaner security model — but it also breaks a lot of legacy telephony components, especially DAHDI. After weeks of patching, testing, and rebuilding, I’ve updated my VICIdial auto‑installer to work smoothly on AlmaLinux 10, complete with the dynamic portal and CyburPhone support.

If you’ve been struggling with DAHDI, PHP, or dependency mismatches on AL10, this guide walks you through the cleanest, most reliable installation path. The updated installer handles the heavy lifting for you.

The code is available here:
https://github.com/carpenox/vicidial-install-scripts


Why AlmaLinux 10?

AlmaLinux 10 brings:

  • A hardened 6.x kernel
  • Updated OpenSSL and system libraries
  • Better performance and security
  • Long‑term stability for production call centers

The downside?
Legacy DAHDI does not compile on kernel 6.x without patching. My installer handles this by applying compatibility fixes and disabling obsolete hardware modules that no longer work on modern kernels.

If you need full DAHDI hardware support, AlmaLinux 9 is still the recommended environment. But for most cloud‑based or SIP‑only VICIdial deployments, AlmaLinux 10 is now a solid choice.


Step 1 — Prepare the System

Start with a fresh AlmaLinux 10 installation.

Reboot before continuing copy the code below and paste into your Linux command line:

Set your timezone:

timedatectl set-timezone America/New_York

Update the system and install core dependencies:

yum check-update
yum update -y
yum -y install epel-release
yum update -y
yum install git -y
yum install kernel* --exclude=kernel-debug* -y

Disable SELinux (required for VICIdial’s web components):

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

Download the installer:

cd /usr/src
git clone https://github.com/carpenox/vicidial-install-scripts.git
cd vicidial-install-scripts
reboot

Step 2 — Run the VICIdial Auto‑Installer

Once the system comes back up, you’re ready to launch the installer.

Make sure your server has a valid FQDN (hostname + domain). VICIdial requires it for Apache, SSL, and SIP services.

Run the installer:

cd /usr/src/vicidial-install-scripts
chmod +x cyburdial-installer-alma10.sh
./cyburdial-installer-alma10.sh

This is an automated installer, but you’ll still need to:

  • Press Enter a few times
  • Provide the server’s IP address
  • Confirm a couple of prompts

Don’t walk away completely — but you won’t be typing commands manually.


What’s New in the AlmaLinux 10 Installer?

✔ Updated PHP handling

AL10 ships with newer PHP streams, so the installer automatically configures the correct version for VICIdial.

✔ DAHDI compatibility patches

Kernel 6.x breaks older DAHDI modules. The installer:

  • Removes obsolete hardware drivers
  • Applies compatibility patches
  • Ensures DAHDI tools install cleanly
  • Supports SIP‑only deployments out of the box

✔ Dynamic Portal + CyburPhone

Both components install automatically and are fully functional on AL10.

✔ Cleaner dependency management

No more repo conflicts or mismatched packages.


Absolutely — adding a section about the standard‑db option is a smart move, because a lot of admins don’t realize how close this gets them to a fully functional, production‑ready dialer. Here’s a polished, blog‑ready section you can drop straight into your AlmaLinux 10 article.


Using the standard-db Option for a Ready‑to‑Go VICIdial Deployment

One of the most powerful features of the installer is the standard-db option. Instead of starting with an empty VICIdial database, this option loads a fully pre‑configured baseline environment that mirrors a real‑world production dialer. It’s designed for people who want to get operational fast without spending hours clicking through the admin interface.

With standard-db enabled, your system comes online with:

  • Prebuilt campaigns
  • Default ingroups
  • Standard user groups
  • Sample users and agents
  • Basic system settings already optimized
  • Recording, logging, and reporting defaults in place

In other words, the dialer is 90% ready the moment installation finishes.

What You Still Need to Add

Once the standard database is loaded, the only things you must configure manually are:

  • Your inbound DIDs
  • Your carrier IP / trunk settings

That’s it. Everything else — campaigns, statuses, user groups, recording rules, routing defaults — is already in place and ready to use.

Why This Matters

For new deployments, labs, demos, or rapid‑launch call centers, the standard-db option eliminates the usual setup grind. Instead of spending an hour building the VICIdial structure from scratch, you can log in and immediately:

  • Create agents
  • Upload leads
  • Start dialing

It’s also perfect for multi‑server clusters, because every node starts with the same clean, consistent baseline.

Who Should Use It

The standard-db option is ideal for:

  • New call centers launching quickly
  • Developers testing integrations
  • Training environments
  • Anyone who wants a “turnkey” VICIdial setup

If you prefer a completely blank database for custom enterprise builds, you can skip it — but for most users, it’s the fastest path to a working dialer.


Additional Resources

Other installer versions:
https://github.com/carpenox/vicidial-install-scripts

Advanced usage guide:
How to – Use the full functionality of the ViciDial installer by carpenox


Final Thoughts

This installer represents a lot of work, testing, and late‑night debugging — but the result is a clean, modern VICIdial deployment on AlmaLinux 10 with minimal effort on your part.

If this project helps you, consider supporting the blog:
https://www.paypal.me/TheDialerOne