Skip to main content

Recordings

The Recordings module manages audio files for IVR prompts, announcements, and other PBX audio.

Purpose​

Use this module to:

  • Upload audio files to MinIO storage
  • Reference external audio URLs
  • Manage file metadata
  • Generate secure download links

Recording Types​

TypeStorageAccess
UploadMinIO bucket (recordings/{org_id}/{random}_{name}.{ext})Encrypted token or HMAC-signed URL
RemoteExternal URL referenceDirect URL

Upload Security​

The upload pipeline validates every file:

  1. Size validation (configurable, default 5 MB)
  2. MIME whitelist (audio/mpeg, audio/wav)
  3. Extension whitelist (.mp3, .wav)
  4. Binary file signature verification
  5. Script injection detection
  6. Filename sanitization

Permissions​

Recordings are generally Owner/Admin-only.

ActionOwnerPBX AdminPBX UserReporter
View recordingsYesYesNoNo
Create recordingsYesYesNoNo
Update recordingsYesYesNoNo
Delete recordingsYesYesNoNo

UI Workflow​

Upload a Recording​

  1. Navigate to Recordings in the sidebar
  2. Click Upload Recording
  3. Enter a name
  4. Choose the file or enter a remote URL
  5. Save

Use a Recording in an IVR Menu​

  1. Open the IVR menu editor
  2. Select Recording as the audio source
  3. Choose the uploaded recording from the dropdown
  4. Save the menu

Key Data Fields​

recordings Table​

ColumnTypeNotes
idbigintPrimary key
organization_idFKTenant scope
namestringDisplay name
typeenumupload, remote
file_pathstring nullableMinIO path
original_urlstring nullableRemote URL
mime_typestring nullable
sizeinteger nullableBytes
durationinteger nullableSeconds
MethodEndpointPurpose
GET/POST/PUT/DELETE/v1/recordings[/{recording}]Standard CRUD
GET/v1/recordings/{recording}/downloadGenerate access token
GET/v1/recordings/secure-downloadServe file via token
GET/storage/recordings/{path}Public HMAC-signed access (for Cloudonix)

See the OPBX REST API reference for full schemas.