Skip to main content
This guide covers Pipecat Cloud-specific configuration for Exotel WebSocket integration. For a complete guide including dial-in, dial-out, and advanced features, see the Exotel WebSocket Integration guide.
Native support for Exotel’s WebSocket Transport with Pipecat Cloud allows you to connect your AI agents with Exotel’s voice infrastructure. This integration enables your Pipecat bots to handle real phone calls using Exotel’s Voice Streaming.

How It Works

Pipecat Cloud implements Exotel’s bidirectional voice streaming protocol. While audio streams flow through WebSockets, the call session is controlled through Exotel’s App Bazaar configuration and the Voicebot Applet. When Pipecat Cloud receives an incoming WebSocket connection from Exotel, it processes the Connected and Start messages to initialize a new bot instance. All WebSocket messages are forwarded to your bot, including any custom parameters set in your App Bazaar configuration. This allows your bot to leverage Exotel’s API for advanced call control - such as recording conversations, transferring to human agents, or implementing complex call flows.

Prerequisites

Before setting up this integration, ensure you have:
  • An Exotel account with voice streaming enabled
  • A Pipecat Cloud account with an Exotel Websockets-compatible bot
A ready-to-build example of an Exotel websockets bot with complete source code is available in the pipecat-examples repo.

Pipecat Cloud Configuration

1. Purchase and Configure Phone Number

Purchase a phone number from Exotel if you haven’t already:
  • Navigate to ExoPhones and purchase a number
  • Complete KYC verification if required

2. Enable Voice Streaming

Voice streaming may not be enabled by default on all accounts:
  • Contact Exotel support at hello@exotel.com
  • Request: “Enable Voicebot Applet for voice streaming for account [Your Account SID]”
  • Include your use case: “AI voice bot integration”

3. Get Your Organization Name

Retrieve your Pipecat Cloud organization name using the Pipecat CLI:
$ pipecat cloud organizations list
This command will output a list of organizations associated with your account. For example:
Organization        Name
──────────────────────────────────────
Default Workspace   three-random-words-randomnumber (active)

4. Create App Bazaar Flow

  1. Navigate to App Bazaar in your Exotel dashboard
  2. Click “Create” to create a new app
  3. Build your call flow:
Add Voicebot Applet:
  • Drag the “Voicebot” applet to your call flow (not “Stream” or “Passthru”)
  • Configure the WebSocket URL:
wss://api.pipecat.daily.co/ws/exotel?serviceHost=AGENT_NAME.ORGANIZATION_NAME
Replace the placeholder values:
  • AGENT_NAME with your deployed bot’s name (e.g., customer-support)
  • ORGANIZATION_NAME with your organization name from step 3 (e.g., three-random-words-randomnumber)
For example: wss://api.pipecat.daily.co/ws/exotel?serviceHost=customer-support.industrious-purple-cat-12345
Using Regional EndpointsIf you deployed your agent to a specific region, use the regional WebSocket endpoint:wss://{region}.api.pipecat.daily.co/ws/exotel?serviceHost=AGENT_NAME.ORGANIZATION_NAMEFor example, for Europe: wss://eu-central.api.pipecat.daily.co/ws/exotel?serviceHost=my-agent.my-orgLearn more about regional endpoints.
Add Hangup Applet:
  • Drag a “Hangup” applet at the end to properly terminate calls
Your final flow should look like:
Call Start → [Voicebot Applet] → [Hangup Applet]
  1. Navigate to “ExoPhones” in your dashboard
  2. Find your purchased number and click the edit/pencil icon
  3. Under “App”, select the custom app you created
  4. Save the configuration

Testing Your Integration

To test your integration, simply dial your Exotel phone number from any phone. The call will connect to your Pipecat Cloud bot, which will respond according to your bot’s configuration.

Custom Data Limitations

Currently, there are limitations with passing custom data through query parameters in Exotel’s WebSocket URLs. While the platform theoretically supports query parameters, they may be stripped during call processing.

Next Steps

For complete implementation details including dial-out, caller personalization, and advanced call control features, see the Exotel WebSocket Integration guide.