> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pipecat.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Exotel Websocket Transport

> Using Exotel's WebSocket Transport for your Pipecat Cloud agents

<Note>
  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](/pipecat/telephony/exotel-websockets).
</Note>

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](https://github.com/pipecat-ai/pipecat-examples/tree/main/exotel-chatbot).

## Pipecat Cloud Configuration

### 1. Purchase and Configure Phone Number

[Purchase a phone number from Exotel](https://my.exotel.com/) 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:

```bash theme={null}
$ pipecat cloud organizations list
```

This command will output a list of organizations associated with your account. For example:

```bash theme={null}
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`

<Note>
  **Using Regional Endpoints**

  If 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_NAME`

  For example, for Europe: `wss://eu-central.api.pipecat.daily.co/ws/exotel?serviceHost=my-agent.my-org`

  Learn more about [regional endpoints](/pipecat-cloud/guides/regions#regional-websocket-endpoints).
</Note>

**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]
```

### 5. Link Phone Number to App

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

<Warning>
  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.
</Warning>

## Next Steps

For complete implementation details including dial-out, caller personalization, and advanced call control features, see the [Exotel WebSocket Integration guide](/pipecat/telephony/exotel-websockets).
