VICIfast
Operations

How to pull recordings in bulk for a date range

Use rsync or find+tar to bulk-pull VICIdial recordings from monitorDONE for a specific date range without touching the admin UI.

VICIfast Support
··3 min read
How to pull recordings in bulk for a date range

When you need a week or a month of Call recording files — for a compliance audit, a QA batch review, or migrating to a new server — the Admin UI download link is not practical. You need rsync, find, or tar working against the /var/spool/asterisk/monitorDONE/ directory tree. Because VICIdial organizes recordings into YYYY/MM/DD subdirectories, targeting a date range is just a matter of specifying the right directory paths. For context on how recordings are stored and named, start with VICIdial call recording explained.

Option 1 — rsync a date range

rsync is the most reliable tool for this job. It checksums files, skips ones already transferred, and handles interrupted transfers gracefully. To pull the entire month of June 2026:

rsync -avz admin@dialer:/var/spool/asterisk/monitorDONE/2026/06/ /local/recordings/2026/06/

For a single day, append the DD directory. For a custom range spanning multiple months, run rsync once per month directory or script a loop over the date paths. The -z flag enables compression in transit, which helps over slower WAN links.

**Heads up:** rsync compares file existence and size by default. Running it a second time over the same date range skips already-transferred files, making reruns safe with no duplicate data.

Option 2 — find + tar for a portable archive

If you want a single compressed file to hand off — say, to a QA team or legal department — use find to select files by modification time, then pipe the list to tar. First create two sentinel files that define your date boundaries:

touch -d '2026-06-01' /tmp/start_date && touch -d '2026-07-01' /tmp/end_date

Then build the archive:

find /var/spool/asterisk/monitorDONE/ -name '*.wav' -newer /tmp/start_date -not -newer /tmp/end_date | tar -czf /tmp/recordings_june.tar.gz -T -

Then scp the resulting tarball off the box. This approach is useful when the recipient does not have direct access to the dialer and just needs a file they can unpack themselves.

Option 3 — filter by campaign or phone number

Because the Campaign ID and phone number appear in filenames, you can combine find with a glob pattern to target recordings from a specific Campaign within a date range:

find /var/spool/asterisk/monitorDONE/2026/06/ -name 'SALES-*' -exec cp {} /local/sales_june/ \;

Replace SALES with whatever campaign prefix appears in your RECORDING_FILENAME variable setting. You can also filter by a specific phone number by substituting the number into the glob pattern.

flowchart TD
    A[Decide scope of bulk pull] --> B{What scope?}
    B -- Full month or date range --> C[rsync the YYYY/MM directory]
    B -- Custom date window --> D[find with -newer sentinel files]
    B -- Campaign or phone filter --> E[find with filename glob pattern]
    C --> F[Files land in local mirror directory]
    D --> G[tar.gz archive created on dialer]
    G --> H[SCP the tarball off the server]
    E --> I[Filtered files copied to staging dir]
    F --> J[Verify count matches recording_log rows]
    H --> J
    I --> J

Verifying the pull is complete

After the transfer, confirm the file count matches what the database says should exist for that date range. Run this against the VICIdial MySQL database:

SELECT COUNT(*) FROM recording_log WHERE call_date >= '2026-06-01' AND call_date < '2026-07-01';

Then count local files: find /local/recordings/2026/06/ -name '*.wav' | wc -l. If the counts differ, some files may still be in /var/spool/asterisk/monitor/ from calls that were in progress at midnight, or the server may use a mix of formats such as both WAV and GSM.

Bandwidth and timing considerations

  • WAV files at 1 MB per minute: 1,000 calls averaging 5 minutes each equals 5 GB. Plan your bandwidth window accordingly before kicking off a large pull.
  • Run bulk pulls during off-peak dialing hours. rsync during peak hours adds I/O load to the Asterisk server and can slow active call handling.
  • Use --bwlimit on rsync (value in Kbps) to cap transfer speed if the dialer and archive server share a LAN with live traffic.

For downloading individual recordings through the browser rather than the command line, see how to download VICIdial recordings. If you want this bulk process automated nightly, our managed plans include scheduled archival with verification and failure alerts.

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. “How to pull recordings in bulk for a date range”. VICIfast LLC, June 24, 2026. Retrieved from https://vicifast.com/blog/how-to-bulk-download-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.