Skip to content

File Storage

The File Storage tab in System Preferences controls where recordings, voicemails, transcriptions, and other media files are stored. You can choose between local disk, NFS shares, or S3-compatible object storage.

Storage settings configured here apply globally and can be overridden per location in multi-server deployments.

Storage Types

Local (default)

Files are stored on the local file system under /var/spool/asterisk/monitor/. This is the simplest option and works well for single-server and all-in-one deployments.

NFS

Files are stored on a Network File System (NFS) share. Use this when multiple servers need access to the same file storage. Specify the NFS mount base path.

S3 Object Storage

Files are stored in S3-compatible object storage. This provides durable, scalable storage and works with:

  • Amazon S3
  • MinIO (self-hosted, S3-compatible)
  • Wasabi
  • Backblaze B2
  • DigitalOcean Spaces
  • Cloudflare R2
  • Garage (self-hosted)
  • Custom S3-compatible endpoints

S3 Settings

SettingDescription
S3 Provider TypeSelect your storage provider. This controls which additional fields are shown (e.g., Endpoint URL for self-hosted providers).
Bucket NameThe S3 bucket where files will be stored. Must be created beforehand in your provider.
S3 RegionAWS region or equivalent for your provider (e.g., us-east-1).
S3 Access KeyAccess key ID for S3 authentication.
S3 Secret KeySecret access key for S3 authentication.
Endpoint URLCustom endpoint URL for self-hosted providers (MinIO, Garage, Custom). Not needed for AWS S3, Wasabi, etc.
Pre-signed URL ExpiryHow long (in seconds) pre-signed URLs for recording playback remain valid. Default: 3600 (1 hour).
Local File RetentionHow long to keep files on local disk after they have been uploaded to S3. See below.

Recording Fetch Method

Controls how the management server retrieves recordings from worker servers in multi-server deployments:

  • SCP (default) - Secure copy over SSH
  • NFS - Read from shared NFS mount
  • S3 - Fetch directly from S3 storage

Automatic S3 Sync

When S3 storage is configured, a background job runs every 5 minutes to:

  1. Scan the local recording directory for completed recordings
  2. Upload recording files (.wav, .mp3) and sidecar files (transcriptions .txt, logs .log) to S3
  3. Verify that each file has a matching database record before uploading (incomplete or orphaned files are skipped)

This process is automatic and requires no manual intervention once S3 storage is configured.

Local File Retention

After files are uploaded to S3, local copies are kept for a configurable period before cleanup. This allows time for transcription and other post-recording processing to complete.

Available retention periods:

OptionUse case
ForeverS3 acts as backup only; local files are never cleaned up
6 - 12 hoursFast turnaround environments with immediate transcription
24 hours (default)Recommended for most deployments
2 - 7 daysWhen batch or delayed processing is used
30 daysMaximum retention before cleanup

Setting retention to Forever disables local cleanup entirely. This is useful when you want S3 as a redundant copy rather than the primary storage location.

Note: Local files are only removed after the retention period AND after all related files for a recording (audio, transcription, logs) have been successfully uploaded to S3.

Config Sync

The Config Sync tab contains settings for configuration synchronization in multi-server cluster deployments. These settings control how configuration changes are distributed across servers in the cluster.

SettingDescription
Enable Config SyncEnable or disable automatic configuration synchronization
Retry DelayBase delay (seconds) between retry attempts using exponential backoff
Max Retry AttemptsMaximum number of retry attempts for failed sync operations
Sync Batch SizeNumber of configuration changes to process per batch