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.

PrerequisitesSet callbackUrl (and optionally callbackMethod) on the <Conference> element. Vobiz sends an HTTP request to this URL for each lifecycle event.

Events

Vobiz sends a callback for each of the following events:
ConferenceAction valueWhen it fires
enterA participant joins the conference room
exitA participant leaves the conference room
startThe conference starts (first startConferenceOnEnter="true" participant arrives)
endThe conference ends (last participant leaves, endConferenceOnExit fires, or timeLimit is reached)

Parameters sent to callbackUrl

These parameters are included in every callback request.
ParameterDescription
ConferenceActionThe event that triggered the callback. Values: enter, exit, start, end
ConferenceUUIDUnique identifier for this conference session
ConferenceNameThe room name set in the <Conference> element
CallUUIDUnique identifier for the individual call leg that triggered the event
FromCaller’s phone number for the leg that triggered the event
ToCalled phone number for the leg that triggered the event
ConferenceCurrentSizeNumber of participants currently in the conference at the time of the event
TimestampWhen the event occurred
RecordingUrlURL of the conference recording. Only present on end events when record="true"

Examples

Handling callbacks in Node.js

Express handler for conference events
const express = require('express');
const app = express();
app.use(express.urlencoded({ extended: true }));

app.post('/conference-events', (req, res) => {
  const {
    ConferenceAction,
    ConferenceUUID,
    ConferenceName,
    CallUUID,
    From,
    ConferenceCurrentSize,
    RecordingUrl
  } = req.body;

  switch (ConferenceAction) {
    case 'enter':
      console.log(`${From} joined ${ConferenceName} (${ConferenceCurrentSize} participants)`);
      // Notify other participants, update dashboard, etc.
      break;

    case 'exit':
      console.log(`${From} left ${ConferenceName} (${ConferenceCurrentSize} remaining)`);
      break;

    case 'start':
      console.log(`Conference ${ConferenceName} started — UUID: ${ConferenceUUID}`);
      // Begin any server-side session tracking
      break;

    case 'end':
      console.log(`Conference ${ConferenceName} ended`);
      if (RecordingUrl) {
        console.log(`Recording available at: ${RecordingUrl}`);
        // Store recording URL, notify participants, etc.
      }
      break;

    default:
      console.log(`Unknown conference event: ${ConferenceAction}`);
  }

  res.status(200).send('OK');
});

Handling callbacks in Python

Flask handler for conference events
from flask import Flask, request

app = Flask(__name__)

@app.route('/conference-events', methods=['POST'])
def conference_events():
    action = request.form.get('ConferenceAction')
    conference_name = request.form.get('ConferenceName')
    conference_uuid = request.form.get('ConferenceUUID')
    call_uuid = request.form.get('CallUUID')
    caller = request.form.get('From')
    size = request.form.get('ConferenceCurrentSize')
    recording_url = request.form.get('RecordingUrl')

    if action == 'enter':
        print(f"{caller} joined {conference_name} ({size} participants)")

    elif action == 'exit':
        print(f"{caller} left {conference_name} ({size} remaining)")

    elif action == 'start':
        print(f"Conference {conference_name} started: {conference_uuid}")

    elif action == 'end':
        print(f"Conference {conference_name} ended")
        if recording_url:
            print(f"Recording: {recording_url}")
            # Persist URL, send email notification, etc.

    return 'OK', 200

Example callback payload

Enter event
POST /conference-events HTTP/1.1
Host: yourapp.com
Content-Type: application/x-www-form-urlencoded

ConferenceAction=enter
ConferenceUUID=3f9a1b2c-44de-4f0a-b832-7c0a12345678
ConferenceName=WeeklyStandup
CallUUID=9a0e0208-d01a-4572-9a04-fe583a05ac53
From=918071387423
To=919624705678
ConferenceCurrentSize=3
Timestamp=2026-05-19 10:32:15
End event with recording
POST /conference-events HTTP/1.1
Host: yourapp.com
Content-Type: application/x-www-form-urlencoded

ConferenceAction=end
ConferenceUUID=3f9a1b2c-44de-4f0a-b832-7c0a12345678
ConferenceName=WeeklyStandup
CallUUID=9a0e0208-d01a-4572-9a04-fe583a05ac53
From=918071387423
To=919624705678
ConferenceCurrentSize=0
RecordingUrl=https://recordings.vobiz.ai/conf-3f9a1b2c.mp3
Timestamp=2026-05-19 10:58:47