# BYOP Setup

> Bring Your Own Phone numbers from Twilio, Exotel, Plivo, or Alohaa

Source: https://edesy.in/docs/voice-agent/phone-numbers/byop

Bring Your Own Phone numbers from Twilio, Exotel, Plivo, or Alohaa.

## Supported Providers

| Provider | Regions | Features |
|----------|---------|----------|
| **Twilio** | Global | Full support |
| **Exotel** | India | Full support |
| **Plivo** | Global | Full support |
| **Alohaa** | India | Full support |

## Setup Process

### Step 1: Get Provider Credentials

#### Twilio

1. Go to Twilio Console
2. Copy:
   - Account SID
   - Auth Token
   - Phone Number SID

#### Exotel

1. Go to Exotel Dashboard
2. Copy:
   - API Key
   - API Token
   - Virtual Number

#### Plivo

1. Go to Plivo Console
2. Copy:
   - Auth ID
   - Auth Token
   - Phone Number

### Step 2: Add to Platform

1. Go to **Settings** > **Telephony**
2. Click **Add Provider**
3. Select your provider
4. Enter credentials
5. Test connection

### Step 3: Configure Webhook

Set up webhook URL in your provider:

```
{{API_BASE_URL}}/api/webhook/{provider}/{workspace_id}
```

> **Need your workspace ID?** See [Finding Your Workspace ID](https://edesy.in/docs/voice-agent/workspace/finding-workspace-id) for step-by-step instructions.

#### Twilio Webhook

In Twilio Console:
1. Go to Phone Numbers
2. Select your number
3. Set Voice URL to the webhook

#### Exotel Webhook

In Exotel Dashboard:
1. Go to App Bazaar
2. Create/edit app
3. Set callback URL

### Step 4: Assign Agent

1. Go to **Phone Numbers**
2. Your BYOP number should appear
3. Click **Assign Agent**

## Configuration Options

### Per-Number Settings

```json
{
  "provider": "twilio",
  "phoneNumber": "+919876543210",
  "agentId": "agent_abc123",
  "settings": {
    "recordCalls": true,
    "transcribe": true,
    "maxDuration": 600
  }
}
```

### Fallback Configuration

```json
{
  "fallback": {
    "onAgentUnavailable": "voicemail",
    "voicemailGreeting": "Please leave a message...",
    "forwardTo": "+919876543211"
  }
}
```

## Troubleshooting

| Issue | Solution |
|-------|----------|
| Webhook not working | Check URL is correct |
| Calls not connecting | Verify credentials |
| Audio issues | Check codec settings |
| Timeout errors | Increase timeout |
