Skip to main content
Community-maintained integration. This service is built and maintained by Vobiz. Pipecat does not test or officially support it. Please report issues and request changes on the source repository. Learn more about community integrations.

Overview

VobizFrameSerializer connects a Pipecat pipeline to phone calls on Vobiz, through a FastAPIWebsocketTransport and the WebSocket opened by the <Stream> XML element.

Source Repository

Source code, a complete example bot and issues

PyPI Package

The pipecat-vobiz package on PyPI

Vobiz Pipecat Guide

Set up numbers, applications and calls

Audio Formats

The formats Vobiz supports in each direction

Installation

This is a community-maintained package distributed separately from pipecat-ai:
Or use pip install pipecat-vobiz if you manage dependencies with pip.

Prerequisites

  1. A Vobiz account with a phone number.
  2. A public HTTPS URL for your server, so that Vobiz can request your answer URL and open the WebSocket.

Required Environment Variables

  • VOBIZ_AUTH_ID: Your Vobiz Auth ID, used for automatic hang-up.
  • VOBIZ_AUTH_TOKEN: Your Vobiz Auth Token, used for automatic hang-up.

Answer URL

Your answer URL returns XML that opens a bidirectional stream:

Configuration

str
required
The streamId from the Vobiz start event.
str | None
default:"None"
The callId from the start event. Required while auto_hang_up is on.
str | None
default:"None"
Vobiz Auth ID. Required while auto_hang_up is on.
str | None
default:"None"
Vobiz Auth Token. Required while auto_hang_up is on.
VobizFrameSerializer.InputParams | None
default:"None"
Optional settings: encoding and vobiz_sample_rate (inbound), output_encoding and output_sample_rate (outbound), sample_rate and auto_hang_up.
Inbound and outbound formats are set independently. Raises ValueError for a format not marked Yes:
This serializer does not use the Pipecat Settings dataclass pattern. See the source repository for the authoritative, up-to-date parameters.

Usage

Connect a Call

Read the start event, then pass the serializer to a FastAPIWebsocketTransport:

Run the Pipeline

Run the transport in a pipeline at the sample rate from the start event:
auto_hang_up ends the whole call on EndFrame or CancelFrame. If your XML has an element after <Stream>, such as <Dial> for a transfer, set auto_hang_up=False so that it can run.

Compatibility

Tested with Pipecat v1.15.0 on real phone calls in every format above, with Gemini STT, LLM and TTS and with Gemini Live, including interruptions and automatic hang-up. DTMF is not supported: digits pressed during a call do not reach the stream. Check the source repository for the latest tested versions and the changelog.