---
title: "Vonage Integration"
description: "Configure Vonage (Nexmo) for voice communication in Dograh AI"
---

## Overview

Vonage (formerly Nexmo) is a cloud communications platform that provides global voice, messaging, and video capabilities. Dograh AI's Vonage integration enables high-quality voice interactions with your agents using Vonage's robust infrastructure.

## Prerequisites

Before setting up Vonage integration, you'll need:

- A [Vonage account](https://www.vonage.com/communications-apis/)
- Vonage Application with Voice capability enabled
- Application ID and Private Key from your Vonage Dashboard
- API Key and API Secret from your Vonage Dashboard
- At least one Vonage phone number linked to the application
- Dograh AI instance running and accessible

## Configuration

### Step 1: Create Vonage Application

1. Log in to your [Vonage Dashboard](https://dashboard.nexmo.com/)
2. Navigate to **Applications** → **Create a new application**
3. Enable **Voice** capability
4. Generate a private key (save this securely - you'll need it)
5. Note your **Application ID**

### Step 2: Get API Credentials

1. Find your **API Key** and **API Secret** in the dashboard under **API Settings**
2. Navigate to **Numbers** → **Your Numbers**
3. Copy your phone number(s)
4. Link your numbers to your application

### Step 3: Configure in Dograh AI

1. Navigate to **/telephony-configurations** and click **Add configuration**
2. Select **Vonage** as your provider
3. Enter your credentials:
   - Application ID
   - Private Key (entire key including BEGIN/END lines)
   - API Key
   - API Secret
4. Click **Save Configuration**
5. Open the configuration you just created and add at least one **phone number** (without `+` prefix, e.g. `14155551234`). The default caller ID is used for outbound calls.

### Step 4: Test Your Configuration

1. Create a test workflow
2. Click "Call" to verify connection
3. Check call logs for successful connection

## Inbound Calling Setup

Vonage configures inbound webhooks at the **application level**, not per phone number. A single **Answer URL** on the Vonage application applies to every number linked to it. Dograh routes the call to the right agent based on the called number's inbound workflow assignment inside Dograh. **When you save an inbound workflow on a phone number, Dograh automatically pushes the webhook URL to your Vonage Application's Answer URL** (provided the credentials are correct).

### Step 1: Link Phone Numbers to Your Vonage Application

1. Open the [Vonage Dashboard](https://dashboard.nexmo.com/)
2. Under **Numbers** → **Your Numbers**, link each number you want to use for inbound to the same Vonage Application whose ID you configured in Dograh

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

1. Go to **/telephony-configurations** and open your Vonage 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

### Step 3: Verify the Answer URL on the Vonage Application

1. Open your Vonage Application in the [Vonage Dashboard](https://dashboard.nexmo.com/)
2. Under **Capabilities** → **Voice**, confirm:
   - **Answer URL** is set to: `https://api.dograh.com/api/v1/telephony/inbound/run`
   - **HTTP Method** is `POST`

   <Note>
     Dograh pushed this URL automatically when you saved the inbound workflow
     in Step 2. If the field is empty, shows a different URL, or Dograh
     surfaced a sync warning on save, the auto-push failed — most often
     because the API Key/Secret or Application ID in Dograh is incorrect.
     Paste the URL into the field yourself, set the method to `POST`, and
     save the application. On self-hosted Dograh, replace `api.dograh.com`
     with your backend domain.
   </Note>

### Step 4: Verify Setup

- Ensure your Dograh AI instance is publicly accessible
- Verify any firewalls allow Vonage's IP ranges

### Test Inbound Calling

1. Call your configured Vonage phone number from another phone
2. Verify your Dograh AI voice agent answers and responds
3. Check call logs in both Dograh AI dashboard and Vonage Dashboard

## Audio Quality Optimization

Vonage uses higher quality audio (16kHz) which provides:
- Clearer voice reproduction
- Better speech recognition accuracy
- More natural-sounding TTS output
- Reduced transcription errors

## Troubleshooting

<AccordionGroup>
  <Accordion title="Voice application capabilities error">
    - Ensure "Voice" is enabled in your Vonage application
    - Verify the application ID matches your configuration
    - Check that your phone numbers are linked to the application
  </Accordion>
  
  <Accordion title="JWT authentication failed">
    - Verify your private key is complete (including BEGIN/END lines)
    - Check the Application ID is correct
    - Ensure the private key hasn't been regenerated in Vonage Dashboard
  </Accordion>
  
  <Accordion title="Invalid phone number error">
    - Remove the '+' prefix for Vonage (use `14155551234` not `+14155551234`)
    - Ensure numbers are in E.164 format without the '+'
    - Verify numbers are active in your Vonage account
  </Accordion>
  
  <Accordion title="No audio on calls">
    - Verify WebSocket connection is established
    - Check audio pipeline is configured for 16kHz PCM
    - Monitor WebSocket for binary audio frames
    - Review VAD (Voice Activity Detection) settings
  </Accordion>
  
  <Accordion title="Calls disconnecting early">
    - Check WebSocket heartbeat/ping-pong frames
    - Verify no timeout in load balancer/proxy
    - Monitor for audio pipeline errors
    - Review max call duration settings
  </Accordion>
  
  <Accordion title="Inbound calls not reaching voice agent">
    - Verify the Vonage application's Answer URL is set to `https://api.dograh.com/api/v1/telephony/inbound/run`
    - Ensure the Answer URL is publicly accessible
    - Confirm the called number is linked to the correct Vonage application
    - Confirm the called number exists in your Dograh telephony configuration and has an **Inbound workflow** assigned
  </Accordion>
  
  <Accordion title="Voice agent doesn't respond to inbound calls">
    - Confirm the phone number has an **Inbound workflow** assigned in /telephony-configurations
    - Verify API Key matches the one stored in your Dograh telephony configuration (used to identify the org from the inbound webhook)
    - Verify WebSocket connection establishes successfully
    - Review call logs for error messages
  </Accordion>
</AccordionGroup>

## Best Practices

- **Security**: Private keys are stored securely in the database
- **Testing**: Use Vonage Voice Inspector for debugging call issues
- **Numbers**: Configure multiple numbers for redundancy
- **Monitoring**: Set up alerts in Vonage Dashboard for failures
- **Cost Management**: Monitor usage to control costs

## Cost Considerations

Vonage pricing includes:
- Per-minute charges for calls
- Phone number rental fees
- Optional features (recording, transcription)

Check [Vonage pricing](https://www.vonage.com/communications-apis/voice/pricing/) for current rates.

## Next Steps

- Test your Vonage integration with a simple workflow
- Configure VAD settings for optimal voice detection
- Set up monitoring and alerts
- Explore advanced features like call recording