Overview
JambonzFrameSerializer connects a Pipecat pipeline to calls on jambonz through the listen verb’s WebSocket protocol. Audio is raw 16-bit signed little-endian mono PCM, and the call’s sample rate is read from the preamble jambonz sends when the socket opens, so it needs no configuration.
jambonz Serializer API Reference
Pipecat’s API methods for jambonz WebSocket integration
jambonz listen Verb
Official jambonz documentation for the
listen verbInstallation
TheJambonzFrameSerializer does not require any additional dependencies beyond the core Pipecat library:
Prerequisites
- A jambonz account or server with an application that runs the
listenverb. - A public WebSocket URL for your bot, which the verb’s
urlpoints to.
listen Verb
The verb needs three settings stated explicitly:bidirectionalAudio.streamingdefaults tofalse. While it is, audio sent back is ignored and the caller hears nothing.sampleRatedefaults to8000. Other allowed values are 16000, 24000, 48000 and 64000.bidirectionalAudio.sampleRatehas no default. Set it to the same value assampleRate, or set the serializer’saudio_out_sample_rateto it: the serializer sends audio at thesampleRatefrom the preamble unlessaudio_out_sample_rateis set, so a mismatch plays back too fast or too slow.mixTypemust bemono. Audio is dropped with a warning forstereoormixed.- Set
passDtmfto receive keypad digits asInputDTMFFrame.
Configuration
JambonzFrameSerializer.InputParams | None
default:"None"
Configuration parameters. See InputParams below.
InputParams
Properties
Populated from the preamble once it arrives.Usage
Basic Setup
Notes
- Interruptions: An
InterruptionFramesendskillAudio, which flushes audio jambonz is playing or has buffered. - DTMF support: With
passDtmfset on the verb, digits are converted toInputDTMFFrameobjects.markandplayDoneevents are ignored. - Preamble first: Audio that arrives before the preamble is dropped.