# Any SIP provider

> Connect a number over a SIP trunk with TLS between your carrier and UiPath.

A Session Initiation Protocol (SIP) trunk can carry calls for a voice agent. The UiPath side of the setup is the same for every carrier. The carrier side can vary, so this page has an [Amazon Chime SDK walkthrough](#example-walkthrough) as an example step-by-step setup.

If your number is on your own Twilio account, see [Twilio](./conversational-agents-voice-twilio.md) instead.

## How a call reaches your agent

Your contact center or SIP carrier holds the number and sends the call to UiPath over a SIP trunk. The Conversational Service runs the agent — chat history, agent loop, and call control — and reaches the models through the LLM Gateway, which applies AI Trust Layer governance, monitoring, and audit. The Flow you publish supplies the design, and tool calls execute in the Unified Runtime.

![High-level voice agent diagram for a bring-your-own SIP trunk. The caller dials a number on your contact center or SIP carrier; audio reaches the conversational service, then the LLM Gateway and speech models, while Maestro Flow and Unified Runtime run tools.](https://dev-assets.cms.uipath.com/assets/images/agents/voice-call-path-4c3231b4.webp)

The trunk between your carrier and UiPath is what you configure on this page.

## Before you start

* The prerequisites — see [Deployment](./conversational-agents-voice-deployment.md).
* Any SIP trunk, Cloud Communications Platform as a Service (CPaaS), Contact Center as a Service (CCaaS), or Unified Communications as a Service (UCaaS) platform that can send and receive SIP calls to/from a custom domain, authenticated by IP allowlist or SIP credentials
* Create one trunk for UiPath with encryption or TLS enabled. Signaling is TLS on TCP port `5061` in both directions — port 5060 and UDP are never used.

## The vocabulary

Every console names these differently, and most name them from the carrier's side of the trunk rather than yours.

| Concept | What it is here | Also called |
| --- | --- | --- |
| Trunk | The SIP connection between your carrier and UiPath. | SIP trunk, trunk group, SIP connection, Voice Connector, BYOC trunk |
| Inbound routing | Where your carrier sends calls that arrive on your number — you point it at your tenant's SIP domain. | Origination, origination URI, inbound route, inbound trunk |
| Outbound routing | The carrier host UiPath dials into to place calls — you copy it into UiPath. | Termination, termination SIP URI, outbound host name, outbound trunk |

:::note
**Origination** and **Termination** are named from the far side of the trunk, and some carriers flip them between products — the same word can mean inbound in one console and outbound in another.
:::

## Outgoing calls

The agent places a call through your carrier. Outgoing calls leave through UiPath's managed Twilio instance, which carries UiPath's SIP signaling, so your SIP host authorizes Twilio's addresses rather than UiPath's own. Get the trunk's outbound host from the carrier first — that is the value UiPath dials.

### From your SIP provider

1. On the trunk's outbound route, authorize the trunk's outbound calls by IP address, allowing [Twilio's signaling IP addresses](https://www.twilio.com/docs/sip-trunking/ip-addresses#regional-signaling-ip-gateways) on TCP port `5061` — for example `54.172.60.0/30` and `54.244.51.0/30` for USA regions.
2. Leave any credential field on the trunk empty.
3. In the trunk's calling plan, enable every destination country your agent will call. Calls to countries you have not enabled are rejected by your carrier, not by UiPath.
4. Note the trunk's outbound host, which you enter in UiPath.

### From UiPath {#from-uipath-outgoing}

1. In the **Agents** app, go to **Phone numbers**.
2. Select **Connect number**. **SIP Trunk** is selected by default.
3. Enter a **Label** and the **Phone number** in E.164 format.
4. Select **Outgoing** or **Both** as the **Direction**.
5. Expand **Outgoing configuration** and enter your trunk's outbound host in **SIP domain or IP address**. Use a bare hostname or IP such as `sip.mycarrier.com`, with no `sip:` or `https://` prefix.
6. Select **Connect**.

![The Connect number dialog with SIP Trunk selected, showing Direction, the SIP domain or IP address field under Outgoing configuration, and Your SIP domain under Incoming configuration](https://dev-assets.cms.uipath.com/assets/images/agents/voice-connect-number-sip-9579bea9.webp)

## Incoming calls

A caller dials your number, your carrier sends the call to your UiPath tenant's SIP domain, and the bound Flow starts. Connect the number first — that is what creates the SIP domain the carrier has to point at.

Inbound access is configured once per tenant, not per number: every **SIP Trunk** number on the tenant shares one allowlist and one set of credentials. You authorize the carrier — its SIP signaling IP addresses, or a username and password on the trunk — not the caller. Adding a carrier authorizes it for every number on the tenant, and removing an entry withdraws it from all of them.

### From UiPath {#from-uipath-incoming}

1. Publish a Flow with an **Incoming call** trigger.
2. In the **Agents** app, go to **Phone numbers**.
3. Connect a number
   1. Select **Connect number**. **SIP Trunk** is selected by default.
   2. Enter a **Label** and the **Phone number** in E.164 format.
   3. Select **Incoming** or **Both** as the **Direction**.
   4. Select the Published Flow **Process** and its **Incoming call trigger (entry point)** under **Inbound binding**.
   5. Select **Connect**.
4. Authorize your SIP provider
   1. Select **Manage inbound access**.
   2. Authorize the carrier using either method
      * **Allowed IP addresses**: enter the carrier's SIP signaling address or range, then select **Add**.
      * **SIP username & password**: enter a username and password, then select **Add credential**. Configure the same credential on your carrier's trunk.
   3. Copy **Your SIP domain** and paste it on your carrier. See [From your SIP provider](#from-your-sip-provider-incoming).

Which method to use for authorizing your SIP provider is a property of your carrier. Pick allowed IP addresses when the carrier signals from fixed, published addresses, and a SIP credential when it does not.

![The Manage inbound access dialog, showing Your SIP domain, a list of allowed IP addresses, and the SIP username and password fields](https://dev-assets.cms.uipath.com/assets/images/agents/voice-manage-inbound-access-5643e54a.webp)

### From your SIP provider {#from-your-sip-provider-incoming}

1. On the trunk's inbound route, enter your tenant's SIP domain as the host.
2. Set the protocol to **TCP** and the port to `5061`.
3. Set **Priority** and **Weight** to `1`.
4. Assign your number to the trunk.

## Example walkthrough

The Amazon Chime SDK Voice Connector is the AWS Session Initiation Protocol (SIP) trunking service. It gives you a phone number and a SIP trunk, which is all a voice agent needs.

<details>
<summary>Show the Amazon Chime SDK walkthrough</summary>

### Create the Voice Connector

* In the [Amazon Chime SDK console](https://console.aws.amazon.com/chime-sdk/home), create a Voice Connector.
* In the **Generals** tab, ensure **Encryption** is enabled for your voice connector. It should be enabled by default.

### Provision a phone number

Either a toll-free or local number. Orders usually take a few minutes to complete.

![The Phone number management page in the Amazon Chime SDK console, on the Orders tab, with the Provision phone numbers button](https://dev-assets.cms.uipath.com/assets/images/agents/voice-chime-phone-number-management-57ac92cd.webp)

### Assign the phone number to your voice connector

Go to your voice connector, select the phone numbers tab, and select **Assign from inventory**. Select the number you ordered.

![The Phone numbers tab of a Voice Connector, with Assign from inventory and one assigned number](https://dev-assets.cms.uipath.com/assets/images/agents/voice-chime-assign-phone-number-ab0ce9ad.webp)

### Set up termination (outbound calls)

* Select the **Termination** tab.
* Copy your **outbound host name** and paste it in UiPath as the [**SIP domain or IP address**](#from-uipath-outgoing).
* For the **Allowed hosts list** add [Twilio's signaling IP addresses](https://www.twilio.com/docs/sip-trunking/ip-addresses#regional-signaling-ip-gateways). For example `54.172.60.0/30` and `54.244.51.0/30` for USA regions.
* Set your desired **Calls per Second** maximum.
* Set your **Calling plan**, which are countries your voice agent is allowed to call out to.

![The Termination tab of a Voice Connector, with termination enabled, the outbound host name, an allowed hosts list entry, calls per second, and a calling plan of destination countries](https://dev-assets.cms.uipath.com/assets/images/agents/voice-chime-termination-a0a98a41.webp)

### Set up origination (inbound calls)

* Select the **Origination** tab.
* Set it to **Enabled**, then under **Inbound routes** select **New**.
* For **Host**, enter [**Your SIP domain**](#from-uipath-incoming).
* Set **Protocol** to **TCP** and **Port** to `5061`. An encryption-enabled Voice Connector signals only over TCP.
* With a single route, set **Priority** and **Weight** to `1`.
* Select **Add**, then **Save**.

![The Origination tab of a Voice Connector, with origination enabled and an inbound route whose host is the UiPath SIP domain, port 5061, and priority and weight set to 1](https://dev-assets.cms.uipath.com/assets/images/agents/voice-chime-origination-7d25fd53.webp)

### Connect your number in UiPath

Connect the number in UiPath for [outgoing](#from-uipath-outgoing) and [incoming](#from-uipath-incoming) calls, with two Chime specifics:

* Set **SIP domain or IP address** to the **Outbound host name** shown on your Voice Connector's **Termination** tab, with no `sip:` prefix.
* In **Manage inbound access**, add the Amazon Chime SDK [signaling IP ranges](https://docs.aws.amazon.com/chime-sdk/latest/ag/network-config.html#cvc-signaling) under **Allowed IP addresses**.

After following these steps, your voice agents configured from Flow can now make outgoing and handle incoming calls.

For Amazon Chime, you can additionally configure call recording, SIP message logs, and an Amazon Connect IVR in front of the agent on the Voice Connector in the Amazon Chime SDK console.

</details>

## Related

* [Voice](./conversational-agents-voice.md) — overview, limitations, and which providers work.
* [Deployment](./conversational-agents-voice-deployment.md) — prerequisites and the inbound app registration.
* [Voice nodes](https://docs.uipath.com/maestro/automation-cloud/latest/user-guide/conversational-voice) — the nodes a voice Flow is built from.
