Skip to main content

On This Page

Optimizing VICIdial: 15 Critical Settings to Reclaim Agent Talk Time

3 min read
Share

These articles are AI-generated summaries. Please check the original sources for full details.

15 VICIdial Settings Wasting Your Agents’ Time Right Now

VICIdial’s campaign detail screen features over 170 configurable fields, yet most administrators only modify three. This conservative default configuration often results in agents sitting idle for 40% of their shift, translating to a wasted capacity of $300 per hour for 50-agent teams.

Why This Matters

In a technical reality, default VICIdial settings are tuned for stability rather than performance, leading to only 28-32 minutes of talk time per hour. For a 50-agent floor at $15/hour, this inefficiency creates $300/hour in wasted capacity, totaling $12,000 in weekly losses because the underlying predictive algorithm (AST_VDadapt.pl) is receiving sub-optimal inputs.

Key Insights

  • The AST_VDadapt.pl Perl script recalculates dial levels every 15 seconds based on drop rates, agent availability, and connection rates.
  • Setting adaptive_dl_level to 4.0-5.0 for small teams (5-10 agents) provides the statistical headroom needed to compensate for volatility.
  • A 1.5-2.0 adaptive_dropped_percentage provides a necessary safety buffer against the FTC/TCPA 3% rolling 30-day drop limit.
  • Reducing dial_timeout from 26 to 18 seconds can reduce wasted trunk time by 30% on no-answer calls.
  • Switching from RATIO to ADAPT_TAPERED allows the dialer to tighten performance as the shift progresses, avoiding manual adjustment overhead.
  • Tuning the amd.conf total_analysis_time from 5000ms to 3500ms reduces dead air, preventing live humans from hanging up prematurely.

Working Examples

Monitor live campaign drop rates via SQL

SELECT campaign_id, drops_today, calls_today,
ROUND((drops_today / calls_today) * 100, 2) AS drop_pct
FROM vicidial_campaign_stats
WHERE campaign_id = 'YOUR_CAMPAIGN';

Recommended AMD configuration in /etc/asterisk/amd.conf

[general]
initial_silence=2000
greeting=1200
after_greeting_silence=300
total_analysis_time=3500
min_word_length=120
between_words_silence=50
maximum_number_of_words=3
silence_threshold=256

Analyze agent performance and pause code utilization

SELECT sub_status, COUNT(*) AS pause_count,
SUM(pause_sec) AS total_seconds,
ROUND(AVG(pause_sec), 1) AS avg_seconds
FROM vicidial_agent_log
WHERE campaign_id = 'YOUR_CAMPAIGN'
AND event_time >= CURDATE()
GROUP BY sub_status
ORDER BY total_seconds DESC;

Practical Applications

  • Use Case: Implementing ADAPT_TAPERED with a 1.5 auto_dial_level allows the algorithm to find optimal levels within 15 minutes. Pitfall: Using RATIO for production campaigns prevents the system from adapting to contact rate shifts, causing idle time.
  • Use Case: Setting available_only_tally_threshold to 10 prevents over-dialing and abandoned calls for small teams. Pitfall: Counting mid-call agents as ‘available’ in small groups leads to high drop spikes when multiple calls connect simultaneously.
  • Use Case: Forcing agent pause codes provides visibility into non-productive time across BREAK, LUNCH, and TRAIN categories. Pitfall: Leaving pause codes optional results in zero visibility into why agents are not taking calls.

References:

Continue reading

Next article

5 System-Level Strategies to Mitigate LLM Hallucinations in Production

Related Content