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

# Phone numbers and routing

> Choose a hosted number or your own carrier, route inbound calls to AI or teammates, and configure the caller number for outbound calls.

Start in **[Settings → Phone Numbers](https://platform.open.cx/settings/phone-numbers)**. A number's verification, inbound assignment, and outbound route are separate parts of setup. Test each direction you intend to use.

## Choose a number setup

| Setup                            | What to configure                                                                                                                                                                  |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Hosted number                    | Use a verified hosted number in your workspace; choose its inbound agent and outbound caller use.                                                                                  |
| Your own carrier (BYOC)          | Verify your number and configure the required inbound and outbound trunks in **[Settings → SIP](https://platform.open.cx/settings/sip)**. See [SIP setup](/phone/sip-integration). |
| Existing number moving to OpenCX | Contact [support](mailto:support@open.cx) to arrange the move before changing your existing service. Verifying a number does not move its inbound traffic.                         |

Use international format, for example `+14155551234`. A verified number confirms that you can use it; it does not by itself configure your carrier's routing or permission to place calls to every destination.

## Route incoming calls

1. Create an agent in **[Channels → Phone → Agents](https://platform.open.cx/channels/phone/agents)** if AI should answer.
2. Open the agent's **Telephony & Routing** settings and assign the inbound number. A number can belong to only one AI agent at a time.
3. Check **Inbound Agent** beside the number in **Settings → Phone Numbers**.
4. Call that number from a real phone and verify who answers.

For supported inbound routes, an **Unassigned** number rings eligible teammates in the dashboard. Keep a teammate online and **Available for calls** when testing this path. See [Human calling](/phone/human-calling) for eligibility and missed calls.

For SIP calls, a valid `X-OPENCX-AGENT-ID` header for your workspace takes precedence. Otherwise, OpenCX looks up the agent assigned to the dialed number. If no agent is resolved for a recognized workspace, the call can enter the human-answering path. Do not rely on an unspecified workspace default AI agent; assign the number or send the header explicitly.

## Configure outbound calls

**AI calls:** open the agent's **Telephony & Routing** settings and select its outbound caller number or outbound SIP trunk. The agent's inbound number assignment alone is not proof that outbound calling works.

**Human calls:** choose a verified caller number in the dashboard dialer. OpenCX resolves an outbound route for that number, using a matching configured number route, an owning agent's route, or the workspace's hosted route where available. External numbers need a valid outbound route. See [Human calling](/phone/human-calling).

Your carrier must accept the caller identity and destination on that route. Test the caller ID on the receiving phone; the same displayed caller number does not prove that an AI call and a human call used the same route.

## Access and verification

Changing phone configuration requires **Voice settings** write access. API callers need `phone:write` to [start an AI outbound call](/api-reference/phone/make_outbound_call).

Before opening the line to customers, verify:

* A real inbound call reaches the intended AI agent or teammate.
* An AI outbound call connects and displays the intended caller ID.
* A human outbound call works if your team will use the dialer.
* Each transfer destination answers, and the team knows what to do if it cannot.
* The session contains the expected call record and, when enabled, recording.

A browser **Test Call** checks the agent experience. It does not verify a phone number's carrier route. For failed real calls, use [Phone troubleshooting](/phone/troubleshooting).
