ExoVoIPDeveloper guide

Voicemail

Extension voicemail boxes, received messages, playback, transcription and email delivery. Scopes voicemail:read / voicemail:write.

Messages

curl -s "https://centralino.exovoip.it/api/v1/voicemail/boxes/12/messages?folder=INBOX" -H "X-API-Key: $EXOPBX_API_KEY"
curl -s https://centralino.exovoip.it/api/v1/voicemail/boxes/12/messages/INBOX:3/audio -H "X-API-Key: $EXOPBX_API_KEY" -o messaggio.wav
curl -s -X PATCH https://centralino.exovoip.it/api/v1/voicemail/boxes/12/messages/INBOX:3 \
  -H "X-API-Key: $EXOPBX_API_KEY" -H "Content-Type: application/json" -d '{"folder":"Old"}'
  • Folders: INBOX (new), Old (listened), Urgent. Moving a message to Old is the same as marking it as listened.
  • A message id has the form <folder>:<number> (e.g. INBOX:3) and changes when the message is moved: after a move, reload the list.
  • GET .../messages/:messageId/audio returns the audio (WAV or MP3), .../transcript the transcript, .../meta the full data.
  • POST .../messages/:messageId/email sends the message by email again.

The "user" role can access only its own mailbox.

Mailboxes and settings

  • GET /v1/voicemail/boxes: all mailboxes with the number of new and old messages.
  • PUT /v1/voicemail/boxes/:extensionId: email, audio attachment, transcription, greeting, PIN.
  • PUT /v1/voicemail/settings: tenant defaults (email sender, maximum duration, language).

Endpoints

RequestScopeSDK method
GET /v1/voicemail/settingsvoicemail:readvoicemail.getSettings() · py: voicemail.get_settings()
PUT /v1/voicemail/settingsvoicemail:writevoicemail.setSettings() · py: voicemail.set_settings()
GET /v1/voicemail/boxesvoicemail:readvoicemail.listBoxes() · py: voicemail.list_boxes()
GET /v1/voicemail/boxes/:extensionIdvoicemail:readvoicemail.getBox() · py: voicemail.get_box()
PUT /v1/voicemail/boxes/:extensionIdvoicemail:writevoicemail.updateBox() · py: voicemail.update_box()
GET /v1/voicemail/boxes/:extensionId/messagesvoicemail:readvoicemail.listMessages() · py: voicemail.list_messages()
GET /v1/voicemail/boxes/:extensionId/messages/:messageId/audiovoicemail:readvoicemail.messageAudio() · py: voicemail.message_audio()
PATCH /v1/voicemail/boxes/:extensionId/messages/:messageIdvoicemail:writevoicemail.updateMessage() · py: voicemail.update_message()
DELETE /v1/voicemail/boxes/:extensionId/messages/:messageIdvoicemail:writevoicemail.deleteMessage() · py: voicemail.delete_message()
GET /v1/voicemail/boxes/:extensionId/messages/:messageId/metavoicemail:readvoicemail.messageMeta() · py: voicemail.message_meta()
GET /v1/voicemail/boxes/:extensionId/messages/:messageId/transcriptvoicemail:readvoicemail.messageTranscript() · py: voicemail.message_transcript()
POST /v1/voicemail/boxes/:extensionId/messages/:messageId/transcribevoicemail:writevoicemail.transcribeMessage() · py: voicemail.transcribe_message()
POST /v1/voicemail/boxes/:extensionId/messages/:messageId/emailvoicemail:writevoicemail.resendEmail() · py: voicemail.resend_email()