VICIfast
Operations

Where VICIdial stores your call recordings on the box

VICIdial writes recordings to /var/spool/asterisk/monitor/ during a call and moves them to monitorDONE after hangup, organized by date.

VICIfast Support
··4 min read
Where VICIdial stores your call recordings on the box

VICIdial recordings live in two places on the server depending on whether the call is still active. During a call, Asterisk writes the audio to /var/spool/asterisk/monitor/. The moment that call hangs up, the file moves to /var/spool/asterisk/monitorDONE/. That two-stage layout keeps in-progress recordings separate from completed ones and is where most search tools expect to look. For the full picture of how Call recording works in VICIdial, see VICIdial call recording explained.

The monitorDONE directory structure

Under monitorDONE, VICIdial organizes files into date-based subdirectories structured as YYYY/MM/DD/. A recording from June 24, 2026 lands in /var/spool/asterisk/monitorDONE/2026/06/24/. That layout keeps daily directories manageable and makes date-range sweeps with find or rsync straightforward — you can target a specific month by simply pointing at the YYYY/MM path.

The date used is the date the call ended, not the date it started. A call that began at 23:58 and wrapped up at 00:03 goes into the next calendar day's folder. Keep that in mind when you search for a recording you believe happened late at night.

How recording filenames are built

The filename is assembled from variables set in the campaign's RECORDING_FILENAME field. Common variables include the campaign ID, the dialed phone number, the agent user, the lead ID, the date and time stamp, and the Asterisk uniqueid — Asterisk's unique call identifier that ties the recording back to the specific channel. A typical name looks like this:

SALES-18005551234-agent01-12345-20260624-143022-1234567890.123.wav

Each segment corresponds to a variable: campaign ID (SALES), phone number (18005551234), agent user (agent01), lead ID (12345), date (20260624), time (143022), and Asterisk uniqueid. You can customize which variables appear and in what order from the campaign settings screen.

The Recording format (WAV/MP3) setting in Admin > Servers controls whether the file ends in .wav, .gsm, or .wav49. WAV is lossless but large at roughly 1 MB per minute of audio. GSM is compressed to around 125 KB per minute. If your server converts to MP3 after the call, files drop to about 60 KB per minute. See recording in GSM vs WAV for a full comparison.

The recording_log database table

Every finished recording gets a row in the recording_log table in the VICIdial MySQL database. That row stores the filename, full path, agent, Lead, call date, and duration. The Admin Recordings report screen queries this table — so if a file exists on disk but has no database row, the UI will not find it. This matters when you restore files from a backup or copy recordings from another server manually.

You can query the table directly if you need to cross-reference what the database thinks exists against what is on disk:

SELECT filename, location, agent_user, call_date, length_in_sec FROM recording_log WHERE call_date >= '2026-06-01' ORDER BY call_date DESC LIMIT 50;

flowchart LR
    A[Active call in progress] --> B[/var/spool/asterisk/monitor/]
    B --> C{Call hangs up}
    C --> D[/var/spool/asterisk/monitorDONE/YYYY/MM/DD/]
    D --> E[Row inserted into recording_log table]
    E --> F[Visible in Admin Recordings report UI]

Finding a specific file on the filesystem

If you know the approximate date and the phone number, a targeted find is the fastest approach. Target the specific day directory to avoid scanning the entire monitorDONE tree:

find /var/spool/asterisk/monitorDONE/2026/06/24/ -name '*18005551234*'

For UI-based lookup, Admin > Reports > Recordings lets you filter by agent, date range, campaign, or phone number. The report returns a list with filename, agent, duration, and play or download links. If the date directory structure is a new concept for you, the how to find a recording in VICIdial walkthrough covers both the UI and filesystem approaches step by step.

Common problems with missing files

  • **File stuck in monitor/:** If a call crashed without a proper hangup event, the file may never move to monitorDONE. Check for orphaned files older than a few hours in /var/spool/asterisk/monitor/ and investigate the associated call in the Asterisk log.
  • **Disk full, recording silently stops:** Asterisk stops writing to disk when the partition is full but does not error loudly in the agent interface. Monitor disk usage on the partition holding /var/spool/asterisk/ and set up an alert at 80% capacity.
  • **Wrong date directory:** Remember that the directory date matches when the call ended, not when it started. Calls that cross midnight land in the next day's folder.
  • **Database row missing:** A file on disk without a recording_log row is invisible to the Admin report UI. This typically happens after a manual file copy from another server or after a VICIdial crash during a call.

Want help planning storage so the disk never fills unexpectedly? See our managed hosting plans — disk monitoring and archival are included by default.

About VICIfast LLC

VICIfast LLC operates a managed VICIdial hosting + BYOI service for outbound and inbound call centers. We run the dialers, the carriers, the recordings pipeline, and the compliance plumbing so operators don’t have to.

Citing this article

VICIfast Engineering. “Where VICIdial stores your call recordings on the box”. VICIfast LLC, June 24, 2026. Retrieved from https://vicifast.com/blog/where-vicidial-stores-recordings

Have questions?

Related posts

You might be interested in

VICIfast newsletter

Liked this? Get the next one in your inbox.

We ship the kind of stuff you just read — concrete, numbers-first, no drip. One email when a new post goes live. Unsubscribe in one click.

Comments

Comments are reviewed before they appear. We never publish your email.

No comments yet — be the first.