How to record calls in VICIdial
Per-campaign recording config, beep + announcement for two-party states, retention setup.
VICIdial records via Asterisk's MixMonitor. Recordings land at /var/spool/asterisk/monitorDONE as WAV files.
Enable recording per campaign
Admin → Campaigns → [your campaign] → Detail View:
- Allow Closer Recordings =
Y - Recording Override =
ALLFORCE(record everything) orALLFORCE_VM(include voicemails) - Recording Filename = template, e.g.
{lead_id}_{campaign_id}_{phone_number}_{epoch}
Save. Recording starts on the next call.
Two-party-consent state config
For calls into CA, FL, IL, MD, MA, MT, NH, PA, WA — disclose at call start.
Two ways:
Approach 1: Beep + announcement via dial-plan
Add to your campaign's dial-plan extension:
exten => _9XXXXXXXXXX,n,Playback(beep)
exten => _9XXXXXXXXXX,n,Playback(call-may-be-recorded)
Upload call-may-be-recorded.gsm (your disclosure recording) to /var/lib/asterisk/sounds/en/.
Approach 2: Per-state campaign segmentation
Easier: split your list into per-state lists, run separate campaigns with state-appropriate recording config.
Retention
Recordings stay on disk forever unless you prune. Storage planning:
~250KB / minute mono recording
100 agents × 4 hrs/day × 250 days = 360GB / year
Add the Volume — 500GB addon, or run nightly archival to S3-compatible storage.
Compliance per industry
| Industry | Min retention | | --------------------------- | ------------- | | Collections (FDCPA + state) | 2-7 years | | Insurance | 7+ years | | Healthcare (HIPAA) | 6+ years | | Financial advisory (FINRA) | 5-7 years |
Set your retention policy + delete on schedule.
Listen to a recording
Admin → Reports → User Stats → click any agent → recordings list. Or pull directly from disk:
ls /var/spool/asterisk/monitorDONE | head -20