ExoVoIPManuale sviluppatori

SDK

SDK ufficiali per TypeScript/JavaScript, PHP e Python, generati dal documento OpenAPI dell'API. Ogni operazione dell'API ha un metodo corrispondente, raggruppato per area: pbx.extensions.create(...), pbx.calendars.force(...), pbx.live.stream(...).

Download

LinguaggioRequisitiArchivio
TypeScript / JavaScriptNode.js 18+ o browser moderni, nessuna dipendenzatypescript.zip
PHPPHP 8.1+, estensioni curl e json, nessuna dipendenzaphp.zip
PythonPython 3.10+, httpxpython.zip

Ogni archivio contiene sorgenti, README, esempi pronti e test. Versione attuale: 1.0.0.

Installazione

# Nessuna installazione: cURL e la chiave API in una variabile d'ambiente
export EXOPBX_API_KEY="exo_live_..."
  • TypeScript: npm install ./exopbx-sdk-typescript (l'archivio include la build in dist/ con i tipi).
  • PHP: con Composer, aggiungi la cartella come repository di tipo path e richiedi exobyte/exopbx-sdk; senza Composer basta un autoload PSR-4 della cartella src/ (namespace Exobyte\ExoPBX).
  • Python: pip install ./exopbx-sdk-python.

Funzioni comuni

FunzioneTypeScriptPHPPython
Chiave API (X-API-Key)apiKeyapiKeyapi_key / EXOPBX_API_KEY
Indirizzo dell'APIbaseUrlbaseUrlbase_url
Azienda (X-Tenant-Id)tenantIdtenantIdtenant_id
Nuovi tentativi su 429 e errori temporaneimaxRetriesmaxRetriesmax_retries
Paginazionepbx.paginate(...)$pbx->paginate(...)pbx.paginate(...)
Idempotency-Key automatica sulle POSTsìsìsì
Errori tipizzatiExoPBXErrorApiExceptionExoPBXError
Eventi SSE con riconnessionepbx.live.stream()$pbx->live->stream()pbx.live.stream()
Eventi WebSocketpbx.live.websocket()——
Verifica firma webhookconstructWebhookEvent()Webhook::constructEvent()construct_event()

Il valore predefinito dell'indirizzo è in una sola costante per SDK (DEFAULT_BASE_URL in TypeScript e Python, Defaults::BASE_URL in PHP), oggi https://centralino.exovoip.it/api.

export EXOPBX_BASE_URL="https://centralino.exovoip.it/api"
curl -s "$EXOPBX_BASE_URL/health"

Nomi dei metodi

  • TypeScript e PHP: gruppo.operazione in camelCase, come nella colonna "Metodo SDK" delle guide (pbx.ringGroups.create, $pbx->ringGroups->create).
  • Python: stessi nomi in snake_case (pbx.ring_groups.create); i parametri di query sono argomenti con nome (pbx.cdr.list(from_="2026-11-01", limit=100)).
  • I parametri del percorso (:id, :extensionId) sono i primi argomenti, poi il corpo (o i filtri) e infine le opzioni della singola richiesta.

Tipi (TypeScript)

Tutti i corpi e le risposte sono tipizzati dagli schemi dell'API: l'editor suggerisce campi e valori consentiti e segnala gli errori prima dell'esecuzione. I tipi sono esportati anche come Schemas:

import type { Schemas } from '@exobyte/exopbx-sdk';

type Extension = Schemas.ExtensionsGetResponse['extension'];

Aggiornamenti

Gli SDK sono rigenerati a ogni modifica dell'API. Scarica la nuova versione da questa pagina; i metodi esistenti restano compatibili all'interno della versione v1 dell'API.