ExoVoIPManuale sviluppatori

Numeri

I numeri telefonici (DID) sono assegnati all'azienda da Exobyte. L'azienda decide dove indirizzare le chiamate ricevute. Scope numbers:read / numbers:write.

Destinazione di un numero

curl -s "https://centralino.exovoip.it/api/v1/numbers?limit=100" -H "X-API-Key: $EXOPBX_API_KEY"
curl -s -X PATCH https://centralino.exovoip.it/api/v1/numbers/7 \
  -H "X-API-Key: $EXOPBX_API_KEY" -H "Content-Type: application/json" \
  -d '{"description":"Centralino","destination":{"type":"ivr","ivrId":2}}'

La destinazione è un oggetto Destination, usato in tutto il centralino (numeri, regole, menu, code):

typeCampiEffetto
extensionextensionIdSquilla un interno
ring_groupringGroupIdSquilla un gruppo
queuequeueIdEntra in coda
ivrivrIdMenu vocale
voicemailextensionId, greeting?Segreteria di un interno
playbackpromptId, then?Riproduce un messaggio, poi prosegue
mobilenumber, confirm?, ringTimeS?Inoltro a un numero esterno
calendarcalendarId, open?, closed?Destinazione diversa secondo gli orari
hangup / busy—Chiude la chiamata / segnale di occupato

Per catene più articolate (più passaggi in sequenza, filtri per chiamante o linea) usa le regole in entrata.

Orari di un numero

Ogni numero può seguire un calendario: in orario segue la sua destinazione, fuori orario la destinazione di chiusura.

curl -s -X PUT https://centralino.exovoip.it/api/v1/numbers/7/calendar \
  -H "X-API-Key: $EXOPBX_API_KEY" -H "Content-Type: application/json" \
  -d '{"calendarId":4,"closedDestination":{"type":"voicemail","extensionId":12}}'

Gestione dei numeri (piattaforma)

Aggiunta al pool, aggiunta massiva, assegnazione a un'azienda e a una linea, rimozione: solo chiavi globali.

curl -s -X POST https://centralino.exovoip.it/api/v1/numbers -H "X-API-Key: $EXOPBX_API_KEY" \
  -H "Content-Type: application/json" -d '{"number":"+390981123456","description":"Centralino"}'
curl -s -X PUT https://centralino.exovoip.it/api/v1/numbers/7/assignment -H "X-API-Key: $EXOPBX_API_KEY" \
  -H "Content-Type: application/json" -d '{"tenantId":3,"trunkId":1}'

Endpoint

DescrizioneRichiestaScopeMetodo SDK
Elenco numeriGET /v1/numbersnumbers:readnumbers.list()
Aggiunge numero al poolPOST /v1/numbersnumbers:writenumbers.create()
Aggiunta massiva numeriPOST /v1/numbers/bulknumbers:writenumbers.bulkCreate() · py: numbers.bulk_create()
Dettaglio numeroGET /v1/numbers/:idnumbers:readnumbers.get()
Destinazione e descrizione del numeroPATCH /v1/numbers/:idnumbers:writenumbers.update()
Rimuove numero dal pool (solo se libero)DELETE /v1/numbers/:idnumbers:writenumbers.delete()
Assegna/libera numero e lineaPUT /v1/numbers/:id/assignmentnumbers:writenumbers.assign()
Calendario e destinazione di chiusura del numeroGET /v1/numbers/:id/calendarnumbers:readnumbers.getCalendar() · py: numbers.get_calendar()
Assegna calendario e destinazione di chiusura al numeroPUT /v1/numbers/:id/calendarnumbers:writenumbers.setCalendar() · py: numbers.set_calendar()