> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voicerix.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Cloudonix

> Connect Cloudonix to Voicerix for SIP-based outbound and inbound voice calls.

## Overview

Cloudonix enables Voicerix voice agents to connect to SIP communications platforms — either on-premise or in the cloud. It provides a full suite of call-control capabilities and supports flexible trunk configuration.

## Prerequisites

* A [Cloudonix account](https://cockpit.cloudonix.io/)
* A Cloudonix **Domain UUID** (or domain name)
* A Cloudonix **Domain API Key** (Bearer Token)
* A Cloudonix **Voice Application** on that domain — or leave blank and Voicerix will auto-create one
* A Cloudonix outbound voice trunk connection

## Configuration

### Step 1: Get Cloudonix Credentials

1. Log in to your [Cloudonix Console](https://cockpit.cloudonix.io/)
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**, open the application you'll use with Voicerix, and copy its **Application Name**. Skip this if you want Voicerix to auto-create the Voice Application.

### Step 2: Add Configuration in Voicerix

1. In Voicerix, go to **Integrations** and click **Add configuration**
2. Select **Cloudonix** as your provider
3. Enter your credentials:
   * **Bearer Token**
   * **Domain ID**
   * **Application Name** *(optional — leave blank to auto-create)*
4. Click **Save Configuration**
5. Open the saved configuration and add at least one **phone number** in E.164 format (e.g. `+1234567890`)

<Note>
  If Voicerix auto-created the Voice Application, you still need to bind your DNIDs to that application in the Cloudonix cockpit. The auto-created application is named `voicerix-<random>` — its name is shown on the saved configuration.
</Note>

### Step 3: Test

1. Go to **Agents**, open a workflow, and click **Test Call**
2. Check the call logs to confirm a 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 in Voicerix, **Voicerix automatically pushes the webhook URL to your Voice Application's `url`**.

### 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

### 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 Voicerix) with these settings:
   * **Application Resource Type**: `Remote Application Resource`
   * **Application Runtime**: `Cloudonix (CXML)`
   * **Application URL**: `https://client.voicerix.ai/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>
  Voicerix's auto-push updates the Application URL when you save an inbound workflow. You can leave the URL blank during creation and let Voicerix fill it in automatically, or paste the URL above so the application is usable immediately.
</Note>

### Step 3: Assign an Inbound Workflow in Voicerix

1. In Voicerix, go to **Integrations** 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 Application URL

1. Open your Cloudonix cockpit and navigate to your domain's **Applications**
2. Open the application whose name is in your Voicerix configuration
3. Confirm:
   * **URL** is set to: `https://client.voicerix.ai/api/v1/telephony/inbound/run`
   * **Method** is `POST`

<Note>
  Voicerix pushes this URL automatically when you save the inbound workflow. The same URL is shared across every DNID bound to that application — Voicerix routes each call to the right agent based on the called number's inbound workflow assignment. If the field is empty or shows a different URL, the auto-push failed — usually because the Bearer Token, Domain ID, or Application Name is incorrect. Paste the URL manually, set the method to `POST`, and save.
</Note>

### Step 5: Test Inbound

1. Call your configured phone number from another phone
2. Verify your voice agent answers and responds
3. Check call logs in both Voicerix and the Cloudonix Console

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Invalid phone number error">
    Ensure phone numbers include the country code in E.164 format: `+1234567890`
  </Accordion>

  <Accordion title="Authentication failed">
    * Verify the 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 the WebSocket connection is established
    * Check firewall rules for WebSocket traffic
    * Ensure the 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 is in Voicerix
    * Confirm the called number has an **Inbound workflow** assigned in Voicerix
    * Confirm Voicerix 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 Integrations
    * Verify the Bearer Token in Voicerix 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 Voicerix so the shared `url` doesn't conflict with other systems
