---
title: "Inbound Calling"
description: "Configure inbound calling for Twilio, Vonage, Plivo, Telnyx, Cloudonix, Vobiz, and Asterisk ARI providers in Dograh AI"
---

## Overview

Dograh AI supports inbound calling across all supported telephony providers. When someone calls your configured phone number, your voice agent automatically answers and handles the interaction. Inbound and outbound calls share the same telephony configuration.

## Supported Providers for Inbound Calls

<CardGroup cols={3}>
  <Card title="Twilio" href="/integrations/telephony/twilio">
    Industry-leading platform with robust inbound call handling
  </Card>
  <Card title="Vonage" href="/integrations/telephony/vonage">
    Application-level inbound routing with high-quality 16kHz audio
  </Card>
  <Card title="Plivo" href="/integrations/telephony/plivo">
    Application-level inbound routing on Plivo's global voice cloud
  </Card>
  <Card title="Telnyx" href="/integrations/telephony/telnyx">
    Application-level inbound via Telnyx Call Control API
  </Card>
  <Card title="Cloudonix" href="/integrations/telephony/cloudonix">
    SIP-based inbound calling with flexible trunk configuration
  </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>

## How Inbound Calling Works

Dograh exposes a **single inbound webhook URL** for the whole org:

```
https://api.dograh.com/api/v1/telephony/inbound/run
```

When a call arrives:

1. **Call Received**: Your telephony provider receives the incoming call
2. **Webhook Triggered**: The provider sends a webhook to `/inbound/run`
3. **Org & Agent Resolved**: Dograh identifies the org from the webhook's account credentials, then looks up which agent should answer based on the called number's **Inbound workflow** assignment in your telephony configuration
4. **Audio Streaming**: Real-time audio streams between caller and agent via WebSocket
5. **Conversation Handled**: Your voice agent manages the entire conversation

You don't construct per-workflow URLs anymore — the routing is done by the called number's inbound workflow assignment in Dograh.

## Configuration in Dograh AI

Setting up inbound calling takes three steps:

### Step 1: Configure Telephony Provider

The telephony configuration for inbound calling is **identical** to outbound calling. Add (or open) a configuration at **/telephony-configurations** following your provider's documentation:

- [Twilio Configuration](/integrations/telephony/twilio#configuration)
- [Vonage Configuration](/integrations/telephony/vonage#configuration)
- [Plivo Configuration](/integrations/telephony/plivo#configuration)
- [Telnyx Configuration](/integrations/telephony/telnyx#configuration)
- [Cloudonix Configuration](/integrations/telephony/cloudonix#configuration)
- [Vobiz Configuration](/integrations/telephony/vobiz#configuration)
- [Asterisk ARI Configuration](/integrations/telephony/asterisk-ari#configuration-in-dograh)

### Step 2: Assign an Inbound Workflow to the Phone Number

1. Go to **/telephony-configurations** and open your configuration
2. In the **Phone numbers** section, edit the number that should receive inbound calls
3. Set its **Inbound workflow** to the agent that should answer
4. Save

This is what tells Dograh which agent to run when a call comes in for that number.

### Step 3: Point Your Provider at `/inbound/run`

Each provider needs its inbound webhook (Twilio Voice URL / Vonage Answer URL / etc.) set to the global Dograh endpoint:

```
https://api.dograh.com/api/v1/telephony/inbound/run
```

<Note>
If you're self-hosting Dograh, replace `api.dograh.com` with your own domain.
</Note>

The exact place to set this varies by provider — follow the provider-specific instructions:

- [Twilio Inbound Setup](/integrations/telephony/twilio#inbound-calling-setup)
- [Vonage Inbound Setup](/integrations/telephony/vonage#inbound-calling-setup)
- [Plivo Inbound Setup](/integrations/telephony/plivo#inbound-calling-setup)
- [Telnyx Inbound Setup](/integrations/telephony/telnyx#inbound-calling-setup)
- [Cloudonix Inbound Setup](/integrations/telephony/cloudonix#inbound-calling-setup)
- [Vobiz Inbound Setup](/integrations/telephony/vobiz#inbound-calling-setup)
- [Asterisk ARI Inbound Setup](/integrations/telephony/asterisk-ari#inbound-calling)


## Testing Inbound Calls

After completing both the Dograh AI configuration and provider-specific setup:

1. **Test Call**: Call your configured phone number from another phone
2. **Verify Connection**: Ensure your voice agent answers and responds appropriately
3. **Check Logs**: Monitor call logs in both Dograh AI and your provider's dashboard
4. **Audio Quality**: Verify clear two-way audio communication

## Troubleshooting Common Issues

<AccordionGroup>
  <Accordion title="Calls go to voicemail instead of agent">
    - Verify webhook URLs are correctly configured at your provider
    - Check that webhook endpoints are publicly accessible
    - Ensure phone numbers are properly linked to your application
  </Accordion>
  
  <Accordion title="Agent doesn't respond to incoming calls">
    - Confirm your voice agent workflow is properly configured
    - Check webhook signature validation is working
    - Verify WebSocket connections are established successfully
  </Accordion>
  
  <Accordion title="Provider mismatch error">
    - **Error**: "Configuration error: This phone number is configured for a different telephony provider"
    - **Solution**: Check your dashboard settings and update your webhook URL configuration to match the correct provider
    - Ensure the phone number is configured for the same provider in both Dograh AI and your telephony console
  </Accordion>
  
  <Accordion title="Workflow not found error">
    - **Error**: "Workflow not found"
    - **Solution**: Open the called number in **/telephony-configurations** and confirm an **Inbound workflow** is assigned. Without an assignment, Dograh has no agent to route the call to.
    - Verify the assigned workflow still exists in your dashboard
  </Accordion>
  
  <Accordion title="Account validation failed">
    - **Error**: "Authentication error: Account credentials do not match"
    - **Solution**: Verify your account SID/credentials configuration in Dograh AI matches your telephony provider settings
    - Re-enter your provider credentials in the telephony configuration page
  </Accordion>
  
  <Accordion title="Phone number not configured">
    - **Error**: "Phone number not configured: This number is not set up for inbound calls"
    - **Solution**: Add this phone number under **Phone numbers** in your telephony configuration at **/telephony-configurations**
    - Ensure the phone number is also linked to your provider account
  </Accordion>
  
  <Accordion title="Signature validation failed">
    - **Error**: "Security error: Webhook signature validation failed"
    - **Solution**: Verify your auth token configuration in Dograh AI matches your provider settings
    - Ensure webhook requests are coming from your telephony provider's verified IP ranges
    - Check that your webhook URL is accessible and responding correctly
  </Accordion>
  
  <Accordion title="Quota exceeded error">
    - **Error**: "Service temporarily unavailable: Your account has exceeded usage limits"
    - **Solution**: Contact your administrator or upgrade your plan to continue receiving calls
    - Check your provider account billing and usage limits
  </Accordion>
  
  <Accordion title="General authentication failed">
    - **Error**: "Authentication failed"
    - **Solution**: Check your webhook URL configuration and ensure your telephony provider settings match your dashboard configuration
    - Verify all credentials are entered correctly and haven't expired
    - Test the webhook URL is publicly accessible from your provider's servers
  </Accordion>
  
  <Accordion title="Poor audio quality on inbound calls">
    - Check network bandwidth and latency from provider to Dograh AI
    - Verify audio pipeline configuration matches provider requirements
    - Review WebSocket connection stability
  </Accordion>
</AccordionGroup>

## Best Practices

- **Single Configuration**: Use the same telephony configuration for both inbound and outbound calls
- **Testing**: Always test inbound calling after configuration changes
- **Monitoring**: Monitor both Dograh AI logs and provider dashboards for call analytics
- **Security**: Ensure webhook signature verification is enabled for security

## Next Steps

1. Choose your telephony provider and complete the basic configuration
2. Follow the provider-specific setup instructions
3. Assign an inbound workflow to each phone number that should accept calls
4. Test your inbound calling setup