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

# Telephony Integration

> Connect voice agents with telephony providers for inbound and outbound calls

## Overview

Bananaflow AI's telephony integration system provides a unified interface for connecting with various telephony providers. The same configuration powers both outbound calls (initiated from Bananaflow) and inbound calls (received on a phone number you own).

Bananaflow does not sell phone numbers or minutes. The phone service is always
yours – there are two ways to bring it.

## Two ways to connect

<CardGroup cols={2}>
  <Card title="Use a telephony provider" icon="phone">
    Open an account with Twilio, Plivo, Telnyx, Vonage or Vobiz, paste the
    credentials into Bananaflow, and call using their numbers. **Start here if you
    don't already run phone infrastructure.** Pick your provider from the list
    below.
  </Card>

  <Card title="Bring your own SIP" icon="server" href="/integrations/telephony/cloudonix">
    Already have a SIP trunk or a PBX? Connect it through your own
    [Cloudonix](/integrations/telephony/cloudonix) account and keep your existing
    carrier and numbers. Running your own Asterisk server? Connect it with
    [Asterisk ARI](/integrations/telephony/asterisk-ari) instead.
  </Card>
</CardGroup>

## Supported Providers

<CardGroup cols={3}>
  <Card title="Twilio" href="/integrations/telephony/twilio">
    Industry-leading cloud communications platform with global reach
  </Card>

  <Card title="Vonage" href="/integrations/telephony/vonage">
    High-quality voice with 16kHz audio and excellent international coverage
  </Card>

  <Card title="Plivo" href="/integrations/telephony/plivo">
    Cloud communications platform with programmable voice and global PSTN reach
  </Card>

  <Card title="Telnyx" href="/integrations/telephony/telnyx">
    Programmable voice over Telnyx Call Control
  </Card>

  <Card title="Cloudonix" href="/integrations/telephony/cloudonix">
    SIP-based telephony with flexible trunk configuration
  </Card>

  <Card title="Exotel" href="/integrations/telephony/exotel">
    India-focused cloud telephony with Connect Voice AI streaming
  </Card>

  <Card title="Vobiz" href="/integrations/telephony/vobiz">
    Cloud-based telephony with global reach and competitive pricing
  </Card>

  <Card title="Asterisk ARI" href="/integrations/telephony/asterisk-ari">
    Connect to your own Asterisk PBX via the Asterisk REST Interface
  </Card>
</CardGroup>

## Configuration

All telephony providers are configured from a single page in Bananaflow:

1. Navigate to **/telephony-configurations** and click **Add configuration**
2. Select your provider
3. Enter your credentials and save
4. Open the new configuration and add at least one **phone number**
5. (Optional) Assign an **Inbound workflow** to a phone number to enable inbound calling

A single org can hold multiple configurations (for example, separate Twilio sub-accounts) and multiple phone numbers per configuration. Mark one configuration as the **default outbound** to use it for test calls and campaigns by default.

## Common Features

The telephony integration in Bananaflow AI supports:

* **Outbound Calls**: Initiate calls to any phone number from a workflow or campaign
* **Inbound Calls**: Route incoming calls to the right voice agent – see the [Inbound Calling guide](/integrations/telephony/inbound)
* **Call Transfer**: Transfer an in-progress call to a human or another number (provider-dependent)
* **Call Status Tracking**: Monitor call lifecycle events (initiated, ringing, answered, completed, failed)
* **WebSocket Audio Streaming**: Real-time, bidirectional audio between caller and agent
* **Webhook Signature Verification**: Inbound webhooks are verified against the matched configuration's credentials

## Inbound Calling

Inbound calls use a **single org-wide webhook URL**:

```
https://app.bananaflow.ai/api/v1/telephony/inbound/run
```

Bananaflow resolves the org from the webhook's account credentials and the agent from the called number's **Inbound workflow** assignment. See [Inbound Calling](/integrations/telephony/inbound) for the full setup.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Calls not connecting">
    * Verify credentials are correctly configured
    * Check phone number format ([E.164](https://en.wikipedia.org/wiki/E.164) – the international standard: a `+`, then country code, then the number, no spaces or dashes, e.g. `+1234567890`)
    * Review provider-specific error logs
  </Accordion>

  <Accordion title="Audio quality issues">
    * Check network bandwidth and latency
    * Verify audio codec compatibility
    * Review WebSocket connection stability
  </Accordion>

  <Accordion title="Webhook signature validation failing">
    * Confirm auth tokens / API secrets match between provider and Bananaflow configuration
    * Verify webhook URL matches exactly (including the `/inbound/run` path)
  </Accordion>
</AccordionGroup>

## Next Steps

* [Set up your first telephony provider](/integrations/telephony/twilio)
* [Configure inbound calling](/integrations/telephony/inbound)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.