ExoVoIPManuale sviluppatori

Registrazioni

Registrazioni delle chiamate con ascolto, download, trascrizione e riassunto. Scope recordings:read (elenco, ascolto, trascrizioni) e recordings:write (impostazioni, regole, eliminazione, registro ascolti).

Elenco, ascolto e trascrizione

curl -s "https://centralino.exovoip.it/api/v1/recordings?from=2026-11-01&direction=inbound&limit=50" -H "X-API-Key: $EXOPBX_API_KEY"
curl -s "https://centralino.exovoip.it/api/v1/recordings/77/audio?download=true" -H "X-API-Key: $EXOPBX_API_KEY" -o chiamata.wav
curl -s https://centralino.exovoip.it/api/v1/recordings/77/transcript -H "X-API-Key: $EXOPBX_API_KEY"
  • Filtri: from, to, direction, extensionId, queueId, number, q (testo nelle trascrizioni), hasTranscript.
  • GET /v1/recordings/:id/audio: ascolto (download=true per scaricare il file; channel=left|right per un solo lato delle registrazioni stereo). Ogni ascolto e download viene annotato nel registro ascolti (GET /v1/recordings/access-log).
  • POST /v1/recordings/:id/transcribe e POST /v1/recordings/:id/summarize avviano trascrizione e riassunto in background (stato con GET /v1/jobs/:id).

Chi può ascoltare dipende dalle impostazioni dell'azienda (supervisorsCanListen, supervisorsCanDownload, usersCanListenOwn).

Cosa registrare

Le regole si impostano per livello (azienda, numero, coda, interno): il livello più specifico prevale, mode: "inherit" eredita dal livello superiore.

# Registra sempre le chiamate in entrata della coda 5
curl -s -X PUT https://centralino.exovoip.it/api/v1/recordings/policies/queue/5 \
  -H "X-API-Key: $EXOPBX_API_KEY" -H "Content-Type: application/json" \
  -d '{"mode":"always","inbound":true,"outbound":false,"announceEnabled":true}'

targetId è l'id del numero, della coda o dell'interno (0 per il livello azienda). GET /v1/recordings/policies/effective mostra la regola effettiva per una combinazione di numero, coda e interno.

Le impostazioni generali (PUT /v1/recordings/settings) comprendono conservazione in giorni, formato, quota di spazio e permessi di ascolto.

Endpoint

DescrizioneRichiestaScopeMetodo SDK
Registrazioni (filtri e ricerca nelle trascrizioni)GET /v1/recordingsrecordings:readrecordings.list()
Conservazione, formato e permessi di ascoltoGET /v1/recordings/settingsrecordings:readrecordings.getSettings() · py: recordings.get_settings()
Modifica impostazioni registrazioniPUT /v1/recordings/settingsrecordings:writerecordings.setSettings() · py: recordings.set_settings()
Regole di registrazione per livelloGET /v1/recordings/policiesrecordings:readrecordings.listPolicies() · py: recordings.list_policies()
Regola effettiva per interno / numero / codaGET /v1/recordings/policies/effectiverecordings:readrecordings.effectivePolicy() · py: recordings.effective_policy()
Imposta la regola di un livello (targetId 0 = azienda)PUT /v1/recordings/policies/:scope/:targetIdrecordings:writerecordings.upsertPolicy() · py: recordings.upsert_policy()
Rimuove la regola (torna a ereditare)DELETE /v1/recordings/policies/:scope/:targetIdrecordings:writerecordings.deletePolicy() · py: recordings.delete_policy()
Registro ascolti, download e cancellazioniGET /v1/recordings/access-logrecordings:writerecordings.accessLog() · py: recordings.access_log()
Dettaglio registrazioneGET /v1/recordings/:idrecordings:readrecordings.get()
Elimina registrazione (audit)DELETE /v1/recordings/:idrecordings:writerecordings.delete()
Ascolto / download (registrato nel registro ascolti)GET /v1/recordings/:id/audiorecordings:readrecordings.audio()
Trascrizione e riassuntoGET /v1/recordings/:id/transcriptrecordings:readrecordings.transcript()
Richiede la trascrizionePOST /v1/recordings/:id/transcriberecordings:writerecordings.transcribe()
Richiede il riassuntoPOST /v1/recordings/:id/summarizerecordings:writerecordings.summarize()