mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-06-07 07:55:16 +02:00
210 lines
9.3 KiB
Text
210 lines
9.3 KiB
Text
---
|
|
title: "Cloudonix Integration"
|
|
description: "Configure Cloudonix for voice communication in Dograh AI"
|
|
---
|
|
|
|
## Overview
|
|
|
|
Cloudonix is a cloud communications platform that enables Dograh voice agents to connect to SIP communications
|
|
platform, either on-premise or in the cloud. In addition, Cloudonix exposes a full set of voice APIs, that provide
|
|
a full suite of call-control capabilities and more.
|
|
|
|
## Prerequisites
|
|
|
|
Before setting up Cloudonix integration, you'll need:
|
|
|
|
- A [Cloudonix account](https://cockpit.cloudonix.io/onboarding?affiliate=DOGRAH)
|
|
- A Cloudonix domain UUID (or the domain name)
|
|
- A Cloudonix domain API Key (Bearer Token)
|
|
- A Cloudonix **Voice Application** on that domain (optional — leave the field blank in Dograh and we'll auto-create one for you on save, with the application `url` pre-set)
|
|
- A Cloudonix outbound voice trunk service provider connection
|
|
- Dograh AI instance running and accessible
|
|
|
|
## Video Tutorial
|
|
|
|
Watch this step-by-step guide to set up Cloudonix with Dograh AI:
|
|
|
|
<iframe
|
|
className="w-full aspect-video rounded-xl"
|
|
src="https://www.youtube.com/embed/qLKX0F99jpU?si=tA3zwCsNRKe-WCI1"
|
|
title="Dograh Cloudonix Setup"
|
|
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
|
allowFullScreen
|
|
></iframe>
|
|
|
|
## Configuration
|
|
|
|
### Step 1: Get Cloudonix Credentials
|
|
|
|
1. Log in to your [Cloudonix Console](https://cockpit.cloudonix.io/onboarding?affiliate=DOGRAH)
|
|
2. Find your **Domain ID** (UUID or domain name) and **Bearer Token** (Domain API Key) on the dashboard
|
|
3. (Optional) Navigate to your domain's **Applications** and create (or open) the application you'll use with Dograh, then copy its **Application Name**. Skip this if you want Dograh to auto-create the Voice Application for you on save.
|
|
|
|
### Step 2: Configure in Dograh AI
|
|
|
|
1. Navigate to **/telephony-configurations** and click **Add configuration**
|
|
2. Watch the Cloudonix setup video tutorial above for detailed guidance
|
|
3. Select **Cloudonix** as your provider
|
|
4. Enter your credentials:
|
|
- Bearer Token
|
|
- Domain ID
|
|
- Application Name — *optional*. Leave blank and Dograh will auto-create a Voice Application on save (with the application `url` and CXML runtime already configured) and store its name on this configuration.
|
|
5. Click **Save Configuration**
|
|
6. Open the configuration you just created and add at least one **phone number** (with country code in E.164 format, e.g. `+1234567890`). The default caller ID is used for outbound calls.
|
|
|
|
<Note>
|
|
If Dograh auto-created the Voice Application for you, you still need to
|
|
bind your DNIDs to that application in the Cloudonix cockpit (see
|
|
[Step 2 of Inbound Calling Setup](#step-2-create-the-voice-application-and-link-dnids)).
|
|
The auto-created application is named `dograh-<random>` — its name is
|
|
shown on the saved configuration.
|
|
</Note>
|
|
|
|
### Step 3: Test Your Configuration
|
|
|
|
1. Create a test workflow
|
|
2. Click "Call" to verify connection
|
|
3. Check call logs for successful connection
|
|
|
|
## Inbound Calling Setup
|
|
|
|
Cloudonix routes inbound calls per **Voice Application** — the webhook URL is set once on the application, and applies to every DNID bound to it. **When you save an inbound workflow on a phone number, Dograh automatically pushes the webhook URL to your Voice Application's `url`** (provided the credentials are correct), so you don't need to set the webhook by hand. If Dograh auto-created the application during configuration save, the `url` is already set and this push is a no-op — you only need to bind your DNIDs to the auto-created application.
|
|
|
|
### Step 1: Set Up the Inbound Trunk
|
|
|
|
1. Log in to your [Cloudonix Console](https://cockpit.cloudonix.io)
|
|
2. Navigate to **Trunks** → **Create Inbound Trunk** and configure your inbound trunk with your voice service provider
|
|
|
|
<img
|
|
className="block dark:hidden"
|
|
src="/images/cloudonix-inbound-config-1.png"
|
|
alt="Cloudonix console showing domain selection"
|
|
/>
|
|
<img
|
|
className="hidden dark:block"
|
|
src="/images/cloudonix-inbound-config-1.png"
|
|
alt="Cloudonix console showing domain selection"
|
|
/>
|
|
|
|
### Step 2: Create the Voice Application and Link DNIDs
|
|
|
|
1. In the Cloudonix cockpit, select your domain and navigate to **Applications**
|
|
2. Create a new application (or open the existing one whose name you configured in Dograh) with these settings:
|
|
- **Application Resource Type**: `Remote Application Resource`
|
|
- **Application Runtime**: `Cloudonix (CXML)`
|
|
- **Application URL**: `https://api.dograh.com/api/v1/telephony/inbound/run`
|
|
- **HTTP Method**: `POST`
|
|
3. Under **DNID Numbers**, add each phone number (DNID) you want to route through this application
|
|
4. Save
|
|
|
|
<Note>
|
|
The Application URL is what Dograh's auto-push updates in Step 3 — you
|
|
can leave it blank during creation and let the auto-push fill it in,
|
|
or paste the URL above so the application is usable immediately.
|
|
Either works. Self-hosted Dograh deployments use their backend domain
|
|
in place of `api.dograh.com`.
|
|
</Note>
|
|
|
|
<img
|
|
className="block dark:hidden"
|
|
src="/images/cloudonix-inbound-config-application.png"
|
|
alt="Cloudonix application form showing Remote Application Resource type, Cloudonix CXML runtime, the Dograh inbound URL, POST method, and a DNID number entry"
|
|
/>
|
|
<img
|
|
className="hidden dark:block"
|
|
src="/images/cloudonix-inbound-config-application.png"
|
|
alt="Cloudonix application form showing Remote Application Resource type, Cloudonix CXML runtime, the Dograh inbound URL, POST method, and a DNID number entry"
|
|
/>
|
|
|
|
### Step 3: Assign an Inbound Workflow to the Phone Number in Dograh
|
|
|
|
1. Go to **/telephony-configurations** and open your Cloudonix 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 4: Verify the URL on the Voice Application
|
|
|
|
1. Open your Cloudonix cockpit and navigate to your domain's **Applications**
|
|
2. Open the application whose name you configured in Dograh
|
|
3. Confirm:
|
|
- **URL** is set to: `https://api.dograh.com/api/v1/telephony/inbound/run`
|
|
- **Method** is `POST`
|
|
|
|
<Note>
|
|
Dograh pushed this URL automatically when you saved the inbound workflow
|
|
in Step 3. The same URL is shared across every DNID bound to that
|
|
application — Dograh routes each inbound call to the right agent based
|
|
on the called number's inbound workflow assignment. 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 Bearer Token,
|
|
Domain ID, or Application Name in Dograh is incorrect. Paste the URL
|
|
into the field yourself, set the method to `POST`, and save. On
|
|
self-hosted Dograh, replace `api.dograh.com` with your backend domain.
|
|
</Note>
|
|
|
|
<img
|
|
className="block dark:hidden"
|
|
src="/images/cloudonix-inbound-config-2.png"
|
|
alt="Cloudonix application showing webhook URL configuration"
|
|
/>
|
|
<img
|
|
className="hidden dark:block"
|
|
src="/images/cloudonix-inbound-config-2.png"
|
|
alt="Cloudonix application showing webhook URL configuration"
|
|
/>
|
|
|
|
### Step 5: Verify Setup
|
|
|
|
- Ensure your Dograh AI instance is publicly accessible
|
|
- Verify any firewalls allow Cloudonix's IP ranges
|
|
- Confirm your inbound trunk is active and receiving calls
|
|
|
|
### Test Inbound Calling
|
|
|
|
1. Call your configured 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 Cloudonix Console
|
|
4. Confirm clear two-way audio communication
|
|
|
|
## Troubleshooting
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="Invalid phone number error">
|
|
Ensure phone numbers include country code in E.164 format: `+1234567890`
|
|
</Accordion>
|
|
|
|
<Accordion title="Authentication failed">
|
|
- Verify Domain ID, Bearer Token, and Application Name are correct
|
|
- Check for extra spaces in credentials
|
|
- Ensure credentials haven't been disabled or deleted in Cloudonix Console
|
|
</Accordion>
|
|
|
|
<Accordion title="No audio on calls">
|
|
- Verify WebSocket connection is established
|
|
- Check firewall rules for WebSocket traffic
|
|
- Ensure audio pipeline is configured correctly
|
|
</Accordion>
|
|
|
|
<Accordion title="Inbound calls not reaching voice agent">
|
|
- Verify the DNID is bound to the same Voice Application whose name you
|
|
configured in Dograh - Confirm the called number exists in your Dograh
|
|
telephony configuration and has an **Inbound workflow** assigned -
|
|
After assigning the inbound workflow, confirm Dograh successfully updated
|
|
the application's `url` (no warning shown on save) - Verify your inbound
|
|
trunk is active and receiving calls
|
|
</Accordion>
|
|
|
|
<Accordion title="Voice agent doesn't respond to inbound calls">
|
|
- Confirm the phone number has an **Inbound workflow** assigned in
|
|
/telephony-configurations - Verify the Bearer Token in Dograh matches the
|
|
one in your Cloudonix Console - Verify WebSocket connection establishes
|
|
successfully - Review call logs for error messages
|
|
</Accordion>
|
|
</AccordionGroup>
|
|
|
|
## Best Practices
|
|
|
|
- Test your configuration with a single call before running campaigns
|
|
- Monitor Cloudonix Sessions for usage
|
|
- Use a dedicated Voice Application for Dograh so the shared `url` doesn't conflict with other systems
|