Carrier setup is normally super admin only. The Carriers link appears in the sidebar’s Telephony section only for accounts with that role. If you do not see it, this page is not yours to manage — that is expected, not a fault.
You supply your own carrier account (your SIP provider’s trunk details and credentials). Ori does not resell telephony — it connects to the carrier you already have. Throughout this page, “the carrier” means whatever SIP provider you are configuring.
Carrier list
Open Carriers in the sidebar to land on the carrier list at/dashboard/carriers. This screen shows every SIP carrier configured in the system, with a one-line summary of each carrier’s authentication, phone numbers, dial-rate, and sync state.
List columns
Each row summarises one carrier. Click anywhere on a row to open its detail page.| Column | What it shows |
|---|---|
| Name | The carrier’s display name. |
| SIP Address | The SIP trunk endpoint, shown in a monospace font. |
| Auth | Badges for the authentication methods in use: Password when a SIP password is set, IP when an IP allowlist is set. A carrier may show both, one, or neither. |
| DIDs | How many phone numbers are assigned to this carrier. |
| CPS | The outbound dial-rate limit and burst cap, for example 1/s · burst 1. |
| LiveKit | The sync status badge — see sync status. |
| Last Synced | How long ago the carrier last synced successfully, shown relative to your timezone. |
List buttons
| Button | What it does |
|---|---|
| Guide | Opens the Carrier setup guide — a dismissible help panel explaining connection settings, authentication, pacing, DIDs, and call flows. See the setup guide. |
| Add Carrier | Opens the new-carrier form at /dashboard/carriers/create. See Add a carrier. |
Searching and the empty state
A single search box at the top filters the list as you type. It matches on the carrier name or the SIP address, and is not case-sensitive. If no carriers exist yet, the list shows an empty state with an icon, a short heading, and an Add Carrier button to get you started.The setup guide
The Guide button (available on both the list and the detail page) opens a reference panel that walks through how carriers work: the connection settings, inbound and outbound authentication modes, pacing controls (dial-rate, burst, channels), DIDs, and typical call flows. It also includes step-by-step recipes for common SIP providers.Add a carrier
From the list, select Add Carrier to open the form at/dashboard/carriers/create. The form is grouped into connection, authentication, and pacing sections.
You do not configure the media backend by hand. After you save, the platform automatically creates the matching trunks on the call-routing backend (a third-party media service). A note on the form reminds you of this: “LiveKit trunks will be created automatically after saving.”
Connection fields
| Field | Required | What to enter | Default / validation |
|---|---|---|---|
| Name | Yes | A clear display name for the carrier, for example “Primary trunk — IN”. | None. Cannot be empty. |
| SIP Address | Yes | The SIP trunk endpoint hostname and optional port, for example sip.example.com:5060 or 203.0.113.10:5062. | Must be a host with an optional :port. Spaces and other characters are rejected. |
| Transport | No | The protocol for the SIP connection. Choose Auto, TCP, UDP, or TLS to match what your provider expects. | Default: Auto. |
| Destination Country | No | The country your carrier serves, as a code or name, for example IN, US, or GB. | Optional, free text. |
Authentication fields
How your carrier authenticates depends on whether it expects a SIP username and password or relies on an IP allowlist. You can set either, both, or — for some providers — IP only.| Field | Required | What to enter | Notes |
|---|---|---|---|
| Username | No | The SIP digest username used for outbound calls, if your carrier issues one. | Placeholder reads “Optional”. |
| Password | No | The SIP digest password used for outbound calls. Shown as a masked input. | Placeholder reads “Optional”. |
| Allowed IPs | No | The IP addresses your carrier sends inbound calls from. Type an address and press Enter to add it; add as many as you need. | Tag input. Example: 192.0.2.10. |
Outbound authentication (Ori → carrier) uses the username and password. Inbound authentication (carrier → Ori) can use the same credentials or an IP allowlist. Some providers do not send digest credentials on inbound calls by default — for those, an IP allowlist is the reliable method. You can switch the inbound method explicitly on the detail page after creating the carrier.
Pacing fields
These limits protect your carrier from being dialled faster than it allows. The dialler always respects the tighter of these limits and a campaign’s own concurrency setting.| Field | Required | What to enter | Default / validation |
|---|---|---|---|
| Outbound CPS | No | Maximum new calls per second to this carrier. | Default: 1. Allowed range 0.1–100. |
| Outbound Burst | No | Maximum number of calls allowed in an immediate spike above the per-second rate. | Default: 1. Whole number 1–1000. |
| Outbound Channels | No | Maximum concurrent calls (ringing plus connected) on this carrier. | Default: 30. Whole number 1–500. |
Add-carrier buttons
| Button | What it does |
|---|---|
| Back to carriers | Returns to the carrier list without saving. |
| Cancel | Discards the form and returns to the carrier list. |
| Create Carrier | Validates the form and saves the carrier. On success you go straight to the new carrier’s detail page; on failure a notification explains what went wrong. Shows Creating… and is disabled while it saves. |
Carrier detail
Clicking a carrier row opens its detail page at/dashboard/carriers/:id. From here you view and edit the carrier’s configuration, sync it to the backend, manage its phone numbers, and delete it.
The page opens in view mode (read-only). Use Edit to switch to an editable form, and Cancel or Save to leave it.
Sync status
A coloured banner sits just below the page header and shows whether the carrier’s configuration is live on the call-routing backend.| Badge | Meaning |
|---|---|
| synced (green) | The trunk is in sync. The banner reads “LiveKit trunk is synced” and, when available, appends the time it last synced. |
| error (red) | The last sync failed. The banner shows the error message. Use Sync to LiveKit to retry; if it keeps failing, escalate to engineering. |
| pending (grey) | A sync has not completed yet. The banner reads “Sync pending”. |
“LiveKit” is the name of the third-party media service the platform syncs your trunks to. You never log into it directly — the console handles it for you. You only need to act on this banner when it shows error.
Detail fields
In view mode these show as read-only text (empty values display as ”—”). After you press Edit, they become editable inputs.| Field | Required | What to enter | Notes |
|---|---|---|---|
| Name | Yes | The carrier’s display name. | Required when editing. |
| SIP Address | Yes | The SIP trunk endpoint. | Required when editing. |
| Transport | No | Auto, TCP, UDP, or TLS. | Dropdown in edit mode. |
| Destination Country | No | Country code or name, for example US, IN, GB. | Free text. |
| Username (outbound) | No | The SIP digest username for outbound calls (Ori → carrier). | Help text: “Used for outbound digest auth”. |
| Password (outbound) | No | The SIP digest password for outbound calls. | In view mode shows •••••••• if a password is set, otherwise ”—”. In edit mode the box is blank with the placeholder “Password unchanged” — the existing password is not shown. Leave it blank to keep the current password; type a new value only to change it. |
| Inbound Authentication | No | How the carrier authenticates calls it sends to Ori. Choose Use same credentials as outbound (digest) or IP allowlist (no credentials). | Dropdown in edit mode. If your provider does not send digest credentials on inbound calls by default, choose IP allowlist. |
| Inbound IP Allowlist / Allowed IPs | Depends | The IP addresses inbound calls are accepted from. Type an address and press Enter to add it. | Tag input in edit mode. Required when inbound authentication is set to IP allowlist; optional otherwise. Example: 13.52.9.100. |
| Outbound CPS | No | Maximum new calls per second. | Allowed range 0.1–100. |
| Outbound Burst | No | Maximum calls in an immediate spike above CPS. | Whole number 1–1000. |
| Outbound Channels | No | Maximum concurrent calls (ringing plus connected). | Whole number 1–500. |
Detail buttons
The header and DIDs section carry several actions. Some are only shown in view mode, others only while editing.| Button | When shown | What it does |
|---|---|---|
| Back to carriers | Always | Returns to the carrier list. |
| Guide | Always | Opens the carrier setup guide, same as on the list. |
| Sync to LiveKit | Always | Syncs the carrier’s configuration to the call-routing backend. Shows a spinning icon and “Syncing…” while it works, then a success or error notification. Use this after editing, or to retry a failed sync. |
| Edit | View mode only | Switches the page into edit mode so you can change the fields above. Replaced by Cancel and Save while editing. |
| Delete | View mode only | Deletes the carrier. Destructive — see the warning below. |
| Cancel | Edit mode only | Leaves edit mode without saving your changes. |
| Save | Edit mode only | Validates and saves your edits. Requires Name and SIP Address; if inbound authentication is IP allowlist, at least one IP is required. Shows “Saving…” and is disabled while it saves. On success the page returns to view mode with the new values. |
| Add Number | Always (DIDs section) | Opens the Add DID modal to add a phone number to this carrier. |
| Edit (per DID row) | When the carrier has DIDs | Opens the Add DID modal pre-filled with that number’s details. Shown as a pencil icon. |
| Remove (per DID row) | When the carrier has DIDs | Removes that phone number after a confirmation. Shown as an X icon. |
Phone numbers (DIDs)
The DIDs table lists every phone number assigned to this carrier. Each row shows:| Column | What it shows |
|---|---|
| Number | The phone number, in a monospace font. |
| Label | The optional descriptive name you gave it. |
| Direction | A badge: both (green) for inbound and outbound, inbound (blue) for receive-only, outbound (grey) for dial-only. |
| Assigned Bot | The bot that answers inbound calls on this number, or “Bot not found” if that bot has since been deleted. |
| Actions | The per-row Edit and Remove buttons described above. |
Add a DID
The Add DID modal opens from Add Number in the carrier detail DIDs section, or from a row’s Edit button. Its title is Add Phone Number when adding, or Edit Phone Number when changing an existing number.DID fields
| Field | Required | What to enter | Notes |
|---|---|---|---|
| Phone Number | Yes (new only) | The number in E.164 format such as +14155551234, or in your carrier’s local format such as 09XXXXXXXXX. | 5–20 digits; may include a leading +, spaces, dots, or dashes. Disabled when editing — you cannot change a number after it is added; remove it and add the correct one instead. |
| Label | No | A short descriptive name, for example “Sales line”. | Placeholder: “Optional descriptive name”. |
| Direction | No | Choose how the number is used: Both (inbound and outbound), Inbound (receive calls only), or Outbound (make calls only). Presented as three selectable cards. | Default: Both. The choice controls whether the Assign Bot field appears. |
| Assign Bot | No | The bot that answers inbound calls on this number. Pick from the list, or None. | Help text: “Bot to handle inbound calls”. Only shown for Both or Inbound directions — it is hidden for Outbound numbers, which never receive calls. |
Assign a bot to any number that takes inbound calls — that mapping is how the platform routes an incoming call to the right bot. Outbound-only numbers do not need a bot, so the field disappears when you choose Outbound.
Add-DID buttons
| Button | When shown | What it does |
|---|---|---|
| Cancel | Always | Closes the modal without saving. Disabled while a save is in progress. |
| Add Number | When adding a new DID | Validates and saves the new number, closes the modal, and refreshes the carrier. Disabled while saving or while the phone number is empty. Shows “Adding…” while it works. |
| Save Changes | When editing an existing DID | Validates and saves your changes, closes the modal, and refreshes the carrier. Disabled while saving. Shows “Saving…” while it works. |
After adding a carrier
Once a carrier is saved, configured, and showing synced, its outbound-capable numbers become available when you build a campaign’s number pool, and its inbound numbers route to their assigned bots.Create the carrier
Fill in the connection, authentication, and pacing fields, then select Create Carrier.
Add its phone numbers
On the detail page, use Add Number to register each DID and set its direction and bot.
Sync and confirm
Check the sync banner shows synced. If it shows error, retry with Sync to LiveKit; if it persists, escalate to engineering.
Create a campaign
Pick this carrier’s outbound numbers when you build a campaign.
Fleet status
Check that calling workers have capacity for your concurrency.