Registro chiamate
Il registro chiamate (CDR) contiene lo storico di tutte le chiamate: direzione, numeri, interni coinvolti, esito, durata, registrazione. Scope cdr:read.
Cercare le chiamate
curl -s "https://centralino.exovoip.it/api/v1/cdr?from=2026-11-01&to=2026-11-04&direction=inbound&disposition=no_answer" \
-H "X-API-Key: $EXOPBX_API_KEY"
curl -s https://centralino.exovoip.it/api/v1/cdr/1762250400.123 -H "X-API-Key: $EXOPBX_API_KEY"
curl -s "https://centralino.exovoip.it/api/v1/cdr/export.csv?from=2026-11-01" -H "X-API-Key: $EXOPBX_API_KEY" -o chiamate.csvconst missed = await pbx.cdr.list({
from: '2026-11-01',
to: '2026-11-04',
direction: 'inbound',
disposition: 'no_answer',
});
const { call } = await pbx.cdr.get('1762250400.123'); // dettaglio con i passaggi della chiamata
const csv = await pbx.cdr.export({ from: '2026-11-01' });$missed = $pbx->cdr->list(from: '2026-11-01', to: '2026-11-04', direction: 'inbound', disposition: 'no_answer');
$call = $pbx->cdr->get('1762250400.123')['call'];
file_put_contents('chiamate.csv', $pbx->cdr->export(from: '2026-11-01'));missed = pbx.cdr.list(from_="2026-11-01", to="2026-11-04", direction="inbound", disposition="no_answer")
call = pbx.cdr.get("1762250400.123")["call"]
csv = pbx.cdr.export(from_="2026-11-01")Filtri della lista:
| Filtro | Descrizione |
|---|---|
from, to | Intervallo di date |
direction | inbound, outbound, internal |
disposition | answered, no_answer, busy, failed, congestion |
number, extension, did | Numero del chiamante o chiamato, interno, numero aziendale |
trunkId, hasRecording | Linea usata, solo chiamate registrate |
minDurationS, maxDurationS | Durata |
tenantId | Vista globale della piattaforma: filtro per azienda |
Le chiamate sono ordinate dalla più recente. Ogni chiamata è identificata dal linkedid; GET /v1/cdr/:linkedid restituisce il dettaglio con tutti i passaggi (squilli, trasferimenti, code).
Il ruolo "utente" vede solo le chiamate del proprio interno.
Esportazione
GET /v1/cdr/export.csv accetta gli stessi filtri e restituisce un file CSV (separatore ;), adatto a fogli di calcolo e gestionali.
Tutte le chiamate di un periodo
# Prima pagina
curl -s "https://centralino.exovoip.it/api/v1/cdr?limit=100" -H "X-API-Key: $EXOPBX_API_KEY"
# Pagina successiva: valore nextCursor della risposta precedente
curl -s "https://centralino.exovoip.it/api/v1/cdr?limit=100&cursor=eyJ2IjoxfQ" -H "X-API-Key: $EXOPBX_API_KEY"// Tutte le pagine, una dopo l'altra
for await (const call of pbx.paginate(pbx.cdr.list, { limit: 100 })) {
console.log(call.linkedid);
}
// Una pagina alla volta
const page = await pbx.cdr.list({ limit: 100 });
const next = page.nextCursor ? await pbx.cdr.list({ limit: 100, cursor: page.nextCursor }) : null;foreach ($pbx->paginate([$pbx->cdr, 'list'], ['limit' => 100]) as $call) {
echo $call['linkedid'], PHP_EOL;
}for call in pbx.paginate(pbx.cdr.list, limit=100):
print(call["linkedid"])Endpoint
| Descrizione | Richiesta | Scope | Metodo SDK |
|---|---|---|---|
| Registro chiamate (una voce per chiamata) | GET /v1/cdr | cdr:read | cdr.list() |
| Esporta CSV | GET /v1/cdr/export.csv | cdr:read | cdr.export() |
| Chiamata completa (tutte le tratte) | GET /v1/cdr/:linkedid | cdr:read | cdr.get() |
