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
| Setting | Description |
|---|---|
| S3 Provider Type | Select your storage provider. This controls which additional fields are shown (e.g., Endpoint URL for self-hosted providers). |
| Bucket Name | The S3 bucket where files will be stored. Must be created beforehand in your provider. |
| S3 Region | AWS region or equivalent for your provider (e.g., us-east-1). |
| S3 Access Key | Access key ID for S3 authentication. |
| S3 Secret Key | Secret access key for S3 authentication. |
| Endpoint URL | Custom endpoint URL for self-hosted providers (MinIO, Garage, Custom). Not needed for AWS S3, Wasabi, etc. |
| Pre-signed URL Expiry | How long (in seconds) pre-signed URLs for recording playback remain valid. Default: 3600 (1 hour). |
| Local File Retention | How 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:
- Scan the local recording directory for completed recordings
- Upload recording files (
.wav,.mp3) and sidecar files (transcriptions.txt, logs.log) to S3 - 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:
| Option | Use case |
|---|---|
| Forever | S3 acts as backup only; local files are never cleaned up |
| 6 - 12 hours | Fast turnaround environments with immediate transcription |
| 24 hours (default) | Recommended for most deployments |
| 2 - 7 days | When batch or delayed processing is used |
| 30 days | Maximum 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.
| Setting | Description |
|---|---|
| Enable Config Sync | Enable or disable automatic configuration synchronization |
| Retry Delay | Base delay (seconds) between retry attempts using exponential backoff |
| Max Retry Attempts | Maximum number of retry attempts for failed sync operations |
| Sync Batch Size | Number of configuration changes to process per batch |