ExoVoIPManuale sviluppatori

Linee

Le linee (trunk SIP) collegano il centralino agli operatori telefonici. Un'azienda può usare linee proprie e le linee condivise messe a disposizione da Exobyte. Scope trunks:read / trunks:write.

Aggiungere una linea

curl -s -X POST https://centralino.exovoip.it/api/v1/trunks \
  -H "X-API-Key: $EXOPBX_API_KEY" -H "Content-Type: application/json" \
  -d '{"name":"Linea principale","registration":"outbound","host":"sip.provider.example",
       "username":"0981123456","secret":"password-del-provider","codecs":["alaw","g722"]}'
CampoDescrizione
registrationoutbound (il centralino si registra all'operatore), inbound (l'operatore si registra al centralino), none (autenticazione per indirizzo IP)
host, port, transportServer dell'operatore e trasporto (udp, tcp, tls)
username, secretCredenziali; il segreto non viene mai restituito (hasSecret)
codecsCodec in ordine di preferenza (es. alaw, g722)
maxChannelsChiamate simultanee massime sulla linea

Verifica delle reti

Alla creazione o modifica di una linea, gli indirizzi del server vengono confrontati con quelli delle altre linee. Se si sovrappongono a linee di altre aziende o condivise, la linea resta in attesa di verifica da parte di Exobyte (approval.status = pending_approval) e non riceve chiamate finché non viene approvata. L'esito è visibile nella risposta (approval, overlaps).

Stato e monitoraggio

GET /v1/trunks riporta lo stato sintetico (registered, unregistered, rejected, unknown); il dettaglio in tempo reale (registrazione con motivo, raggiungibilità, latenza, chiamate attive) è in GET /v1/live/trunks e negli eventi trunk.state.

curl -s https://centralino.exovoip.it/api/v1/trunks -H "X-API-Key: $EXOPBX_API_KEY"
curl -s https://centralino.exovoip.it/api/v1/live/trunks -H "X-API-Key: $EXOPBX_API_KEY"

Una linea usata da numeri o regole di uscita non può essere eliminata: 409 IN_USE.

Linee condivise (piattaforma)

Le linee condivise (tenantId: null) si creano e modificano solo con chiavi globali. Senza X-Tenant-Id la lista mostra tutte le linee della piattaforma; la coda di verifica è in GET /v1/trunks/approvals (scope security:read), con approvazione e rifiuto motivato.

Endpoint

DescrizioneRichiestaScopeMetodo SDK
Linee in attesa di verifica (sovrapposizione di reti)GET /v1/trunks/approvalssecurity:readtrunks.approvals()
Approva linea in attesa di verificaPOST /v1/trunks/:id/approvesecurity:writetrunks.approve()
Rifiuta linea in attesa di verifica (motivo obbligatorio)POST /v1/trunks/:id/rejectsecurity:writetrunks.reject()
Elenco lineeGET /v1/trunkstrunks:readtrunks.list()
Crea linea (condivisa solo superadmin)POST /v1/trunkstrunks:writetrunks.create()
Dettaglio lineaGET /v1/trunks/:idtrunks:readtrunks.get()
Modifica lineaPATCH /v1/trunks/:idtrunks:writetrunks.update()
Elimina linea (IN_USE se usata)DELETE /v1/trunks/:idtrunks:writetrunks.delete()