VICIdial has three real-time coaching modes built in: silent monitor, whisper, and barge-in. They're free. They work on every VICIdial installation. And most call centers use them for maybe 30 minutes a week, if that. Then managers wonder why agent performance stays flat quarter after quarter.
The technology isn't the hard part. Building a coaching process that supervisors actually follow — that's the hard part.
How ChanSpy Works Under the Hood
Every time a supervisor clicks "Monitor" in VICIdial's real-time report, a specific chain fires inside Asterisk. VICIdial's PHP layer originates a new channel to the supervisor's phone, then bridges it into Asterisk's ChanSpy() application targeting the agent's active channel.
The three modes differ in their ChanSpy flags:
Silent Monitor: ChanSpy(SIP/agent_phone,qw) # hear both sides, nobody hears you
Whisper: ChanSpy(SIP/agent_phone,qwW) # your audio goes to agent only
Barge-In: ChanSpy(SIP/agent_phone,qwB) # 3-way conference, all parties hear all parties
The q flag suppresses the connection beep. The capital W flag does private whisper — supervisor audio goes to the agent's earpiece only. Important gotcha: in Asterisk 16+, lowercase w and uppercase W behave differently. Using the wrong one can leak supervisor audio to the caller, which is a very bad surprise for everyone.
The audio paths are clever. For whisper, Asterisk maintains separate audio streams for each leg of a bridged call and injects the supervisor's audio into only the agent's receive path. The caller's bridge leg never sees it. For barge-in, Asterisk tears down the two-party bridge and rebuilds it as a three-way ConfBridge — which is why barge sometimes causes a brief audio interruption.
Permissions
The supervisor account needs User Level 7+ (Manager), Agent API Access enabled, Monitor Allowed set to Y, and Barge-In Allowed set to Y. These are separate permissions — a supervisor can have monitor access without barge access.
Verify permissions are set correctly:
SELECT user, full_name, user_level, monitor_allowed, barge_allowed
FROM vicidial_users
WHERE user_level >= 7
ORDER BY user_level DESC;
The supervisor also needs a registered phone (hardware SIP phone, softphone, or WebRTC) on the same Asterisk server as the agents being monitored. Cross-server monitoring works through IAX trunks but adds an audio hop that degrades quality and adds latency.
For pjsip endpoints, the supervisor's phone config should include:
[supervisor1]
type=endpoint
direct_media=no ; CRITICAL for monitoring
rtp_timeout=300
The Five Audio Problems You'll Hit
Problem 1: The Beep. Agent hears a beep when monitoring starts, immediately knows they're being watched. The q flag should prevent this, but custom dialplan entries in extensions_custom.conf sometimes invoke ChanSpy without it. Check with: asterisk -rx "dialplan show" | grep -i chanspy
Problem 2: One-Way Audio. Supervisor hears the agent but not the caller (or vice versa). Almost always a NAT issue — the ChanSpy channel's RTP stream is going to the wrong IP. Critical fix: set direct_media=no on the supervisor's PJSIP endpoint. If direct media is enabled, Asterisk routes RTP directly between endpoints, bypassing the server, and ChanSpy can't tap a stream that doesn't flow through Asterisk.
Problem 3: Echo. Supervisor hears their own voice doubled back. Usually a cheap headset with bad acoustic echo cancellation. Also check that the supervisor's phone uses RFC2833 for DTMF, not SIP INFO — SIP INFO processing causes audio artifacts during ChanSpy sessions.
Problem 4: 2-5 Second Latency. In a cluster, the audio goes Caller > Carrier > Server B > IAX Trunk > Server A > Supervisor Phone. Each hop adds latency. Fix: keep supervisors on the same LAN as the Asterisk server handling their agents' calls. For the supervisor's softphone, set a shorter jitter buffer (20-40ms) — you want low latency over perfect audio when monitoring.
Problem 5: Monitoring Drops After 60 Seconds. Asterisk's RTP timeout kills inactive streams after 60 seconds by default. Set rtptimeout=300 in your SIP configuration and reload with asterisk -rx "sip reload".
The Coaching Process
Daily Monitoring Schedule
For a team of 20 agents with 2 supervisors, allocate 3 hours per supervisor per day for monitoring. Sounds like a lot. It's the minimum for coaching to actually move performance metrics. Thirty minutes a week doesn't change anything.
Structure it:
| Time | Activity | Mode |
|---|---|---|
| 9:00-9:30 | Bottom 3 agents by yesterday's conversion rate | Silent |
| 9:30-10:00 | New agents (under 30 days) | Whisper ready |
| 10:00-10:30 | Targeted follow-up from last coaching session | Silent |
| 10:30-11:00 | Random agents for QA scoring | Silent |
| 1:00-1:30 | Afternoon round on bottom 3 again | Silent/Whisper |
| 3:00-3:30 | Top performers — identify techniques to teach others | Silent |
The Whisper Rules
Whisper coaching is an art form. Done well, it saves calls. Done badly, it freezes the agent while the caller wonders why they went silent.
Rule 1: Five words or fewer. The agent is already in a live conversation. They cannot process a paragraph from you. Good: "Ask about the timeline." "Price objection, use ROI." "Slow down, you're rushing." Bad: "So what you want to do here is transition into the pricing discussion by first asking about their current solution costs..."
Rule 2: Timing over content. Whisper during natural pauses — while the caller is talking, during silence, after a question. Never while the agent is mid-sentence. They'll stumble and the caller will hear it.
Rule 3: Pre-arrange signals. Before the first session, tell the agent: "If I say 'take a breath,' pause 2 seconds and let the caller talk. If I say 'close,' ask for the sale right now." Pre-agreed short codes are 10x more effective than improvised instructions.
Rule 4: Cap at 15 minutes. After 15 minutes of whisper coaching, the agent's cognitive load is maxed. They stop hearing you. End the session, send a message with 2-3 things they did well and one thing to work on.
When to Barge
Almost never. Three legitimate reasons: (1) compliance emergency — the agent made a statement that could create legal liability, (2) agent is completely lost — not struggling, lost, can't form sentences, caller getting hostile, (3) high-value save — the caller is about to hang up on a $50K deal and your authority is the only play.
If you're barging more than once per week across a 20-agent team, something else is broken — training, scripting, or hiring.
Escalation During a Session
Most people don't know this: you can escalate modes during an active session. Start in silent monitor, decide the agent needs help, click the agent row in the real-time report again and select Whisper. VICIdial modifies the ChanSpy flags on the active channel. There's a 1-2 second audio glitch during the transition, but the session continues without hanging up and redialing.
Measuring Impact
Without measurement, coaching is hope-based management. Pull a before-and-after comparison for each coached agent: total calls, average talk time, and conversion rate in the two weeks before coaching versus two weeks after.
The expected pattern: talk time goes up by 10-20 seconds (the agent is now handling objections instead of folding), conversion rate goes up meaningfully. Across real deployments, 40-65% conversion improvement is typical for underperforming agents who receive targeted whisper coaching.
At the team level, track weekly conversion rate and overlay coaching session dates. After 4-6 weeks of consistent daily coaching, you should see a clear upward trend. If you don't, either the coaching content needs work or agents aren't retaining the training between sessions.
Automated Monitoring Alerts
Instead of randomly picking agents to monitor, let the data tell you who needs attention right now:
SELECT user, COUNT(*) AS calls,
ROUND(SUM(CASE WHEN status = 'SALE' THEN 1 ELSE 0 END) /
COUNT(*) * 100, 2) AS conversion
FROM vicidial_log
WHERE call_date >= DATE_SUB(NOW(), INTERVAL 4 HOUR)
AND campaign_id = 'OUTBOUND_B2B'
AND length_in_sec > 0
GROUP BY user
HAVING calls >= 15 AND conversion < 3.0
ORDER BY conversion ASC;
Run this via cron every 30 minutes during business hours. The output is your coaching priority list — agents ranked by who's struggling most. Now every monitoring session is targeted, not random.
The Culture Problem
The hardest part of whisper coaching isn't configuring ChanSpy. It's getting supervisors to actually do it. Every day. Most call center supervisors were promoted from the agent floor because they were good on the phone. That doesn't make them good coaches. Many feel awkward listening to live calls and default to checking email instead of putting on a headset.
Three fixes: (1) block monitoring time as a non-negotiable calendar appointment — if they have meetings during coaching time, the meetings lose, (2) tie supervisor bonuses to bottom-quartile agent improvement, not team averages — if the bonus is based on the team average, they'll rely on top performers to carry the number, (3) coach the coaches — have the operations manager listen to coaching sessions monthly to assess whether supervisors are giving actionable feedback or just saying "do better."
VICIdial gives you every tool you need. Silent monitor, whisper, barge-in — all built in, all free. The investment is time and discipline. If you're running a team of 20+ agents, try this: set up your supervisor's phone on the same Asterisk server as your agents, verify the permissions are configured correctly, and block 3 hours on your supervisor's calendar tomorrow for targeted monitoring. Start with your three lowest-converting agents in silent mode. Move to whisper only when you hear a specific fixable behavior. Run this for two weeks and compare your team's conversion rate before and after.
Call centers that make that investment convert 2-3x better than those that don't. The agents who get coached stay longer, perform better, and cost less. The ones who don't either plateau or leave.
For the complete guide with API monitoring commands, Asterisk CLI debugging techniques, SQL queries for tracking coaching ROI, and Grafana integration for coaching dashboards, see the full guide at ViciStack.
Top comments (0)