SIVO
Recordings

Operations

Recordings

How SIVO manages call recordings — scope-based policies, cloud providers, retention and exports.

Updated:
operationsrecordingscompliance

SIVO records calls based on policies you define, not at the channel level. This lets you combine rules (all calls except HR, but yes support, with different retention…) without touching the IVR.

Policy model

Policies resolve hierarchically when a call is created:

  1. Global — tenant default policy.
  2. Per DID — overrides per inbound number.
  3. Per queue — overrides per ACD queue.
  4. Per agent — specific exclusions (e.g. agents with no-record clause).

The most specific policy wins. If no policy applies, the call is not recorded.

Create a policy

  1. Settings → Recording policies → + New.
  2. Fill in:
    • Scope: global, by DID, by queue or by agent.
    • Resource (if scope != global): the DID/queue/agent.
    • Active: yes/no.
    • Format: WAV / MP3 / OGG.
    • Retention (days): 30, 90, 180, 365 or custom.
    • Provider: see next section.
  3. Save.

Storage providers

ProviderWhen to use
SIVO managedDefault. Included in Pro/Enterprise plans. EU residency.
S3AWS, Wasabi, Backblaze B2 (any S3-compatible API).
MinIOBucket in your infrastructure, full control.
GCSGoogle Cloud Storage.
Azure BlobMicrosoft Azure.
FTP/SFTPFor legacy systems with specific compliance.

Configure S3 provider

  1. Settings → Recording providers → + New → S3.
  2. Fill in:
    • Bucket name.
    • Region.
    • Access key + Secret key (encrypted with AES-256-GCM in DB).
    • Path prefix: optional (e.g. sivo-recordings/).
  3. SIVO does server-side encryption (SSE-S3 or SSE-KMS) mandatorily.
  4. Test connection before saving.

Configure MinIO

Same as S3 but with:

  • Custom endpoint (https://minio.your-domain.com).
  • Path-style URLs (default in MinIO).

Access to recordings

From the panel:

  1. Calls → History → your call → Recording.
  2. In-line player with waveform, variable speed and download.
  3. If the policy has associated transcription, you see both synchronized.

Via API:

GET /api/calls/{callId}/recording

Returns a pre-signed URL with short TTL (15 min). Each access is logged in audit_logs.

On-demand deletion

To comply with GDPR rights (“right to be forgotten”):

  1. Settings → Privacy → Delete recordings by… (caller ID, agent, date range).
  2. SIVO previews what will be deleted.
  3. You confirm with your password.
  4. Physical deletion in the bucket + entry in audit_logs.

Bulk export

For Enterprise with periodic audits:

  1. Settings → Recording exports → + New job.
  2. Fill in criteria (dates, queues, DIDs).
  3. SIVO generates a .zip with all recordings + a metadata CSV.
  4. We email you when ready (can take hours for big volumes).
  5. The zip downloads from the panel with 7-day TTL.

Best practices

  1. Caller notice: if you record, you must inform the caller at IVR start (“This call may be recorded for quality purposes”). GDPR Art. 7.
  2. Per-country policy: USA = implicit consent, EU = explicit consent. If you operate in multiple countries, have different policies per DID.
  3. Don’t record IVR: the policy kicks in from bridge-agent-start. Menu navigation is not recorded (privacy + cost).
  4. Legal minimum retention: in regulated sectors (banking, health) there are legal minimums. Configure above.
  5. Backup: recordings in SIVO managed are replicated multi-AZ. If you use your own bucket, configure cross-region replication.