Overview

Overview

Connect Breeze Buddy to the PSTN via Twilio, Plivo, or Exotel. Outbound campaigns, inbound routing, warm transfer.

How telephony works

Every telephony call follows the same core pattern: the provider places or receives a phone call and bridges it to a bidirectional WebSocket connection. Audio frames stream in real-time between the provider and the voice pipeline, which runs STTLLMTTS on each turn.

Provider API
PSTN Call
Customer Answers
WebSocket Bridge
Voice Pipeline
Callbacks

For browser-based sessions without PSTN, see Daily WebRTC.

Outbound call flow

Outbound calls are driven by a background cron that picks up leads in BACKLOG status within the configured calling window.

Cron Pickup
Reserve Number
Provider API Call
WebSocket Audio
Voice Pipeline
Callbacks
  1. Cron pickup — scheduler selects a lead whose calling hours match
  2. Reserve number — an available number is locked (see Numbers)
  3. Provider API callTwilio, Plivo, or Exotel initiates the PSTN call
  4. Voice pipelinePipecat processes audio: STT → LLM → TTS
  5. Callbacks — provider sends status callbacks; the lead updates to FINISHED or RETRY. Configure webhooks for notifications.

Provider comparison

FeatureTwilioPlivoExotel
OutboundTwiML / inlineanswer_url webhookApplet routing
Audio Encodingμ-law 8 kHzPCM L16 8 kHzμ-law 8 kHz
RecordingNativeAPI-initiatedAPI-initiated
Warm TransferConference APIcalls.transfer()Applet bridge
RegionsGlobalGlobalIndia-focused

Inbound call flow

When a customer dials one of your numbers, the provider hits your answer webhook. The server resolves which template(s) are mapped to that number.

Templates FoundBehavior
SingleConnect to AI agent immediately
MultipleIVR menu — customer selects a service
NoneCall rejected or redirected

See Inbound Calls and IVR Routing for details.

Next steps

Was this helpful?