VICIdial is an open-source contact centre platform, described by the project as the most widely deployed of its kind, with installations across more than a hundred countries and deployments ranging from a handful of agents to several hundred. It provides the agent interface, campaign management, skills-based routing and queue prioritisation that a commercial dialler provides, without the per-seat licensing.
That makes it a genuinely strong choice for an outbound or blended operation, and it is the reason a large share of BPO capacity runs on it.
It is also unforgiving in a specific way. It sits on a stack — a Linux server, a database, a telephony engine, carrier connections — and it will keep working while any layer of that stack degrades, until it stops abruptly. The failures are almost never in the application.
The database is the thing that kills deployments
Every call, every attempt, every agent state change and every disposition is written to the database. In an outbound operation with predictive dialling, attempts vastly outnumber connected calls, so the write volume is far higher than the call volume suggests.
Left alone, the tables grow continuously. Nothing breaks at first — reports get slower, then the agent screen gets slower, then a query that used to take a second takes thirty and agents start reporting that the system has hung.
- 1
Archive the log tables on a schedule
The call log and agent event tables are the ones that grow. They should be archived to a separate store or purged past a stated retention, automatically, from the day the system goes live rather than when it becomes slow.
- 2
Give the database its own storage
Recording files and database files competing for the same disk is the most common resource conflict in a VICIdial deployment, because recordings are written continuously and in volume.
- 3
Monitor query time, not just server load
The server can look healthy while the agent experience degrades. Slow query logging tells you what the load average will not.
- 4
Separate reporting from production
Reports run heavy queries across the largest tables. On a busy dialler they should run against a replica, not against the database the agents depend on.
- 5
Back it up, and restore it once
The database holds the leads, the dispositions and the history. Losing it is losing the business's work product, not just a system.
Dial ratio: the setting with the largest consequences
Predictive dialling places more calls than there are available agents, on the basis that most will not be answered. The ratio governs how aggressively it does this, and it is the single most consequential setting in the platform.
Set too low, agents wait between calls and the operation is paying for idle time. Set too high, calls are answered with no agent available — the customer hears silence and the call is dropped.
The second failure mode is not merely a quality issue. Abandoned call rates are regulated in a number of jurisdictions, and the limits and definitions differ by country. A ratio tuned purely for occupancy can put the operation outside those limits without anyone monitoring the figure that matters.
- Establish the abandoned call rules for every jurisdiction you dial into, before tuning. This is a legal constraint, not an efficiency setting.
- Monitor the abandon rate as a first-class metric, per campaign, not as a report someone runs monthly.
- Tune per campaign. Answer rates differ enormously between lists, and one global ratio is wrong for most of them.
- Retune when the list changes. A ratio calibrated on an old list is calibrated for an answer rate that no longer applies.
Where the regulatory position is uncertain, progressive or preview dialling removes the problem entirely at the cost of throughput. That is frequently the right trade for regulated sectors and rarely presented as an option.
Carrier quality, which is misdiagnosed as a VICIdial fault
A substantial share of reported VICIdial problems are carrier problems. Calls that fail to connect, one-way audio, poor answer rates on a specific list, and calls that drop after a fixed interval are all things the platform is blamed for and rarely causes.
| Symptom | Usual cause |
|---|---|
| Answer rate collapses on one list | Numbers flagged or blocked upstream |
| One-way audio | Media path or NAT, between you and the carrier |
| Calls drop at a consistent duration | A session timer or maximum call duration on the trunk |
| Audio quality degrades at peak | Bandwidth or codec negotiation, not dialler load |
| Certain destinations always fail | Routing or permissions on the carrier side |
The consistent-duration case is worth knowing specifically because it is so distinctive. Calls that always drop at the same point are almost never an application fault, and chasing it in the dialler configuration wastes days.
Practical consequence: run more than one carrier where the operation depends on outbound throughput, and be able to shift traffic between them. It provides both resilience and a diagnostic — if the problem follows the carrier, it is the carrier.
Recordings, storage and the disk that fills
A contact centre recording every call generates a large volume of audio continuously. Two things follow, and both are operational rather than technical.
The first is that recordings must be moved off the dialler on a schedule. A full disk on a VICIdial server does not degrade gracefully — the database stops writing, agents stop working, and recovery under pressure is unpleasant. Automated archival to separate storage, with monitoring on free space, is not optional at any real volume.
The second is that the archive carries obligations of its own, including a specific and commonly breached one where card payments are taken by phone. That belongs in its own article and is linked below.
Operating it
- Keep the underlying operating system patched. It is a Linux server exposed to carrier traffic and, usually, to remote agents.
- Do not expose the administration interface to the internet. Restrict it to a management network or place it behind remote access.
- Use strong, unique SIP credentials. A dialler is a high-value target for toll fraud precisely because outbound calling is its purpose.
- Restrict international destinations to those the campaigns actually need. Default-permit outbound is how a fraud incident becomes expensive rather than contained.
- Monitor agent-visible metrics, not only server metrics. Agents notice degradation long before a load average does.
- Document the campaign configuration. Dial ratios, list assignments, dispositions and routing accumulate over time and are rarely written down.
The toll fraud point is not theoretical for this platform. A dialler that can place international calls, reachable from the internet, with a weak SIP secret, is the specific configuration that produces large unexpected carrier bills, and the bill arrives before anyone notices the traffic.
Why does VICIdial get slower over time?
Almost always database growth. Every call, attempt, agent state change and disposition is written to the database, and in predictive outbound dialling attempts vastly outnumber connected calls, so write volume is much higher than call volume implies. The log tables grow continuously and query times degrade gradually until agents report the system hanging. Archiving or purging those tables on an automated schedule from day one prevents it.
How should the predictive dial ratio be set?
Per campaign, against the answer rate of the specific list, and constrained by the abandoned call rules of every jurisdiction being dialled into. Set too low it pays for agent idle time; set too high it answers calls with no agent available, which is both a customer experience failure and a regulated metric in a number of countries. Where the regulatory position is uncertain, progressive or preview dialling removes the abandonment problem entirely at the cost of throughput.
Why do calls drop at exactly the same duration every time?
That pattern almost always indicates a session timer or maximum call duration configured on the carrier trunk rather than a fault in the dialler. Consistent-duration drops are one of the most distinctive carrier symptoms, and investigating them in the dialler configuration typically wastes days. Running more than one carrier makes this diagnosable, because a problem that follows the carrier is the carrier's.
Where should call recordings be stored?
Not on the dialler. A contact centre recording every call generates audio continuously, and a full disk on a VICIdial server does not degrade gracefully — the database stops writing and agents stop working. Recordings should be archived automatically to separate storage, with free space monitored, and the database should have its own storage so recording writes and database writes do not compete.
What is the main security risk with VICIdial?
Toll fraud. A dialler exists to place outbound calls, is typically reachable from the internet for remote agents, and is therefore a high-value target. The specific configuration that causes expensive incidents is weak or shared SIP credentials combined with unrestricted international dialling, because the carrier bill arrives before anyone notices the traffic. Strong unique SIP secrets, restricting destinations to those campaigns actually require, and keeping the administration interface off the public internet address it.
Sources and further reading
- Building reliable call centre infrastructure— the wider stack this platform sits inside
- IT for BPO and call centres— density and real-time constraints at the estate level
- Call recording: the obligations nobody checks— what the recording archive commits you to
- VoIP security for business— the toll fraud exposure described above, in detail
- SIP trunking explained— the carrier side of the symptoms table
- Scaling a contact centre— the staffing arithmetic the dial ratio interacts with
- Linux servers for business— patching and operating the server underneath
- VICIdial— the project and its published deployment scale
- VICIdial community and documentation— installation and configuration reference
Services This Relates To
Written by KYCONNECTS Engineering. Client names are withheld under confidentiality.