ExoVoIPManuale sviluppatori

Primi passi

In pochi minuti: chiave API, prima richiesta e primo interno creato.

1. Crea una chiave API

Nel pannello apri Sviluppatori e premi Nuova chiave:

  • dai un nome riconoscibile (es. "Integrazione CRM");
  • scegli solo i permessi che servono (per iniziare bastano quelli di lettura);
  • facoltativo: limita gli indirizzi IP da cui la chiave può essere usata e imposta una scadenza.

La chiave completa (exo_live_…) viene mostrata una sola volta: salvala in un gestore di segreti o in una variabile d'ambiente, mai nel codice sorgente.

Chiavi di prova: le chiavi exo_test_… funzionano come quelle exo_live_… e servono a distinguere le integrazioni in sviluppo nel registro di utilizzo.

2. Installa l'SDK (facoltativo)

Scarica l'archivio del tuo linguaggio da SDK e installalo, oppure usa cURL o qualsiasi client HTTP.

# Nessuna installazione: cURL e la chiave API in una variabile d'ambiente
export EXOPBX_API_KEY="exo_live_..."

3. Prima richiesta

curl -s https://centralino.exovoip.it/api/v1/tenants/current \
  -H "X-API-Key: $EXOPBX_API_KEY"

Se la risposta è 401, controlla che la chiave sia completa e attiva; se è 403 SCOPE_MISSING, la chiave non ha il permesso richiesto dall'endpoint (indicato in ogni guida e nel riferimento Swagger).

4. Crea un interno

Serve lo scope extensions:write.

curl -s -X POST https://centralino.exovoip.it/api/v1/extensions \
  -H "X-API-Key: $EXOPBX_API_KEY" -H "Content-Type: application/json" \
  -d '{"number":"105","name":"Giulia Verdi","email":"giulia.verdi@example.com",
       "voicemail":{"enabled":true,"email":"giulia.verdi@example.com"}}'

La password SIP è restituita solo alla creazione e alla rigenerazione: configurala subito sul telefono o recupera le credenziali complete con GET /v1/extensions/:id/sip-credentials.

5. Segui le chiamate in tempo reale

Con lo scope live:read:

# -N disattiva il buffer: gli eventi arrivano appena accadono
curl -N "https://centralino.exovoip.it/api/v1/live/events?types=channel.update,channel.hangup,calendar.override" \
  -H "X-API-Key: $EXOPBX_API_KEY"

Passi successivi