Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.vobiz.ai/llms.txt

Use this file to discover all available pages before exploring further.

Caller leaves a voice message - recording saved as an MP3 and retrievable via admin API. XML elements used: <Speak>, <Record>, <Hangup>

View on GitHub

Clone and run the full working example

Getting started

git clone https://github.com/vobiz-ai/Vobiz-Voicemail-XML-Python.git
cd Vobiz-Voicemail-XML-Python
cp .env.example .env
pip install -r requirements.txt
python server.py

Overview

When a caller dials in, they hear a greeting and are prompted to leave a message after the beep. The recording is saved immediately when the caller hangs up or presses #. When the MP3 file is ready, a second callback fires with the download URL. All voicemails are stored and accessible via a simple admin API.

Call flow

Caller dials in
  └── /answer  → "Please leave a message after the beep. Press # when done."
        └── <Record> begins
              └── Caller leaves message, presses # or hangs up
                    └── /voicemail-done  → fires immediately (recording ended)
                          └── /voicemail-file  → fires when MP3 is ready (with URL)
                    └── /hangup  → cleanup

Vobiz webhooks

Set /answer as the Answer URL in your Vobiz application.
MethodPathDescription
POST/answerGreeting + start recording
POST/voicemail-doneAction URL - fires immediately when recording ends
POST/voicemail-fileCallback - fires when MP3 file is ready
POST/hangupCall ended webhook

App API

MethodPathDescription
GET/voicemailsList all voicemails, newest first
GET/voicemails/statsTotal / unread count
GET/voicemails/{id}Single voicemail + MP3 URL
PATCH/voicemails/{id}/readMark as read
DELETE/voicemails/{id}Delete a voicemail

Environment variables

VariableRequiredDescription
HTTP_PORTNoServer port (default: 8000)
PUBLIC_URLNoProduction URL - skips ngrok if set
NGROK_AUTH_TOKENNongrok auth token for local dev