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:
- Global — tenant default policy.
- Per DID — overrides per inbound number.
- Per queue — overrides per ACD queue.
- 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
- Settings → Recording policies → + New.
- Fill in:
- Scope:
global,by DID,by queueorby 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.
- Scope:
- Save.
Storage providers
| Provider | When to use |
|---|---|
| SIVO managed | Default. Included in Pro/Enterprise plans. EU residency. |
| S3 | AWS, Wasabi, Backblaze B2 (any S3-compatible API). |
| MinIO | Bucket in your infrastructure, full control. |
| GCS | Google Cloud Storage. |
| Azure Blob | Microsoft Azure. |
| FTP/SFTP | For legacy systems with specific compliance. |
Configure S3 provider
- Settings → Recording providers → + New → S3.
- Fill in:
- Bucket name.
- Region.
- Access key + Secret key (encrypted with AES-256-GCM in DB).
- Path prefix: optional (e.g.
sivo-recordings/).
- SIVO does server-side encryption (SSE-S3 or SSE-KMS) mandatorily.
- 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:
- Calls → History → your call → Recording.
- In-line player with waveform, variable speed and download.
- 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”):
- Settings → Privacy → Delete recordings by… (caller ID, agent, date range).
- SIVO previews what will be deleted.
- You confirm with your password.
- Physical deletion in the bucket + entry in
audit_logs.
Bulk export
For Enterprise with periodic audits:
- Settings → Recording exports → + New job.
- Fill in criteria (dates, queues, DIDs).
- SIVO generates a
.zipwith all recordings + a metadata CSV. - We email you when ready (can take hours for big volumes).
- The zip downloads from the panel with 7-day TTL.
Best practices
- Caller notice: if you record, you must inform the caller at IVR start (“This call may be recorded for quality purposes”). GDPR Art. 7.
- Per-country policy: USA = implicit consent, EU = explicit consent. If you operate in multiple countries, have different policies per DID.
- Don’t record IVR: the policy kicks in from
bridge-agent-start. Menu navigation is not recorded (privacy + cost). - Legal minimum retention: in regulated sectors (banking, health) there are legal minimums. Configure above.
- Backup: recordings in SIVO managed are replicated multi-AZ. If you use your own bucket, configure cross-region replication.