mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-06-07 07:55:16 +02:00
180 lines
No EOL
7.2 KiB
Text
180 lines
No EOL
7.2 KiB
Text
---
|
|
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 |