ExoVoIPDeveloper guide

Plugins

Some phone system features are paid plugins, enabled per company by Exobyte. The APIs are always included for every section: features of a plugin that is not active return 403 PLUGIN_REQUIRED. To enable a plugin, contact Exobyte.

Available plugins

PluginFeaturesEndpoints and fields
ai — AI AssistantProfessional voices and voice catalog; voice choice for text prompts; auto answer (asks the reason for the call, records it and takes a note with transcript and summary); voice assistantvoices.list, voices.preview, voices.sample, voices.setTenantDefault; voiceId in POST /v1/prompts and PATCH /v1/prompts/:id; auto_answer and ai_assistant destinations; auto answer messages: assistant.listMessages, assistant.getMessage, assistant.messageAudio, assistant.messageTranscript, assistant.deleteMessage (Assistant messages)
recording — RecordingsCall recording with rules per company, number, queue and extension; playback, download, transcription and summary of recordings and voicemail messagesAll recordings.* endpoints; voicemail.messageTranscript, voicemail.transcribeMessage

Without plugins, every other phone system feature remains available:

  • without ai: text prompts use the platform's standard voice, and audio files (MP3, WAV, OGG, M4A) can always be uploaded. An auto answer that was already configured is replaced by an "unavailable" message;
  • without recording: the phone system does not record calls; voicemail works as usual, without transcription.

The demo company always has every plugin enabled.

Company plugins

GET /v1/plugins returns the plugins of the key's company (scope extensions:read), with enabled for each one; locked is true for companies that always have every plugin enabled. The company object returned by GET /v1/tenants/current also contains plugins, the list of active ids.

# Plugin attivi per l'azienda della chiave
curl -s https://centralino.exovoip.it/api/v1/plugins -H "X-API-Key: $EXOPBX_API_KEY"
# Funzione di un plugin non attivo
# HTTP/1.1 403 Forbidden
# {"error":{"code":"PLUGIN_REQUIRED","message":"Funzione disponibile con il plugin «Registrazioni». ...","details":{"plugin":"recording"}}}

PLUGIN_REQUIRED error

A feature of an inactive plugin returns 403 PLUGIN_REQUIRED; details.plugin names the required plugin (ai or recording). For the auto_answer and ai_assistant destinations, details.path points to the affected field. Read GET /v1/plugins at startup and hide the features that are not available.

Activation (platform administrator)

GET /v1/tenants/:id/plugins and PUT /v1/tenants/:id/plugins are reserved for the platform administrator. The PUT body replaces the list of active plugins: { "enabled": ["ai", "recording"] } (an empty list disables all of them). The change applies to the phone system immediately and is written to the audit log.

# Solo amministratore della piattaforma (chiave globale)
curl -s https://centralino.exovoip.it/api/v1/tenants/3/plugins -H "X-API-Key: $EXOPBX_API_KEY"
curl -s -X PUT https://centralino.exovoip.it/api/v1/tenants/3/plugins -H "X-API-Key: $EXOPBX_API_KEY" \
  -H "Content-Type: application/json" -d '{"enabled":["ai","recording"]}'

Endpoints

RequestScopeSDK method
GET /v1/pluginsextensions:readplugins.list()