ViciDial Call Recording Storage and Archiving (Complete Guide)

vicidial call recording storage archiving - custom-vd-recording-featured.png

Call recording is often a compliance requirement, not just a nice-to-have — but every recorded call is
a permanent file, and a busy call center can generate hundreds of gigabytes a month. Left unmanaged, a
dialer’s local disk eventually fills up entirely, sometimes taking down live calls with it. This guide
covers where recordings live, how to size for their growth, and how to move older recordings to cheaper
offsite storage without breaking the ability to retrieve one on demand.

Step 1: Know Where Recordings Are Stored

By default, ViciDial’s recordings (captured via Asterisk’s MixMonitor application) land under /var/spool/asterisk/monitor/, organized into date-based subdirectories. Check current usage with du -sh /var/spool/asterisk/monitor/ — this is the number that determines how much runway you have before disk pressure becomes a real problem.

ViciDial call recording default storage location
Knowing where recordings are stored

Step 2: Enable Recording at the Campaign Level

Recording is controlled per campaign (Admin → Campaigns → Detail → recording settings), with options for always recording, recording only on specific dispositions, or leaving it off. Choose the audio format deliberately — compressed formats (like GSM) use far less disk than uncompressed WAV at the cost of some audio quality, a real trade-off worth making consciously rather than accepting whatever the default happens to be.

Enabling ViciDial campaign call recording format settings
Enabling recording at the campaign level

Step 3: Understand File Naming and Retrieval

Recording filenames typically encode the date, time, and lead/call identifiers, letting the admin UI’s recording search page (Admin → Recordings, or via a report) look up and play back a specific call without needing SSH access to the filesystem directly — this is the interface most staff will actually use day to day.

ViciDial recording file naming and admin UI retrieval
Understanding file naming and retrieval

Step 4: Size Disk for Recording Growth

Estimate: (average call minutes per day) × (bytes per minute for your chosen format) × (retention days you plan to keep locally) gives a rough local storage requirement. Build in headroom — a busy month or an unexpected campaign volume spike can eat through slack much faster than a flat average estimate suggests.

Sizing disk storage for ViciDial recording growth
Sizing disk for growth

Step 5: Identify Old Recordings for Archival

find /var/spool/asterisk/monitor -mtime +90 -name '*.wav' lists recordings older than 90 days — adjust the age threshold to match your actual retention policy. Run this as a dry-run listing first and confirm the count and total size look reasonable before ever pairing it with a delete step.

Identifying old ViciDial recordings for archival with find
Identifying old recordings for archival

Step 6: Automate Offsite Archival

Rather than deleting old recordings outright, archive them to cheaper offsite/cold storage first — our rclone offsite backup script works directly for this: point it at the recordings directory and a cloud remote, and schedule it to run before your retention cleanup step so nothing is lost permanently just because it aged off local disk.

Automating ViciDial recording offsite archival with rclone
Automating offsite archival

Step 7: Set a Compliance-Driven Retention Policy

How long you must (or may) keep call recordings varies significantly by jurisdiction and industry — some regulations mandate a minimum retention period, others mandate a maximum before deletion is required. Set your local-delete and archive-delete thresholds based on actual legal requirements for your specific business, not an arbitrary convenient number, and document the policy so it survives staff turnover.

Setting compliance-driven ViciDial recording retention policy
Setting a retention policy

Step 8: Restore an Archived Recording on Demand

When a specific archived recording is needed (a dispute, an audit request), pull it back from cold storage with rclone copy remote:call-archive/FILENAME.wav /var/spool/asterisk/monitor/restored/ and confirm it plays correctly before handing it over. Test this restore path at least once before you actually need it under time pressure — an archive nobody has ever successfully restored from is not a reliable archive.

Restoring archived ViciDial recording from offsite storage
Restoring an archived recording

Quick reference

# Check current usage
du -sh /var/spool/asterisk/monitor/

# List (dry-run) recordings older than 90 days
find /var/spool/asterisk/monitor -mtime +90 -name '*.wav'

# Archive then clean up (after confirming archive succeeded)
./rclone-offsite-backup.sh
find /var/spool/asterisk/monitor -mtime +90 -delete

Related tutorials

Image credits: All illustrations are original terminal/config mockups created for
Gnome IT Solutions — not screenshots from any third-party site. Tutorial text © Gnome IT Solutions.