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

# Phone numbers for your AI agent

> Import Twilio or SIP trunk numbers into your workspace, assign them to an agent, and answer calls with your chosen voice and greeting.

Import a phone number into your workspace, then choose which agent answers it.
You can use a number from your own Twilio account or connect a SIP trunk from
your phone provider. Callers hear the agent's voice and greeting, and it
answers with the same instructions and knowledge as in chat.

Open **More → Channels → Phone** in the workspace to manage the whole inventory.
Inside an agent, open **Channels**, then **Phone**, to see that agent's numbers.

![Workspace telephony table with number names, phone numbers, assigned agents, branches and providers](https://mintcdn.com/centillion/WLpDA0mJ1ryQ1IZ5/images/channels/phone-03-workspace-numbers.webp?fit=max\&auto=format\&n=WLpDA0mJ1ryQ1IZ5\&q=85\&s=352d86f72863d83388a44510a4daf01f)

The telephony list shows each number, the agent assigned to it, the branch that answers its calls and its provider.

![Phone channel card with one active number and Twilio or SIP trunking support](https://mintcdn.com/centillion/NWIZsx75A68vBwc-/images/channels/phone-01-channel-card.webp?fit=max\&auto=format\&n=NWIZsx75A68vBwc-\&q=85\&s=a6bcad57c1592d94ec132f19fbc8a29b)

The Phone card shows how many numbers are active for the agent.

## What it does

* Imports numbers at workspace level, ready to assign to an agent.
* Answers calls to assigned numbers, with one agent per number.
* Lets you move a number to another agent or leave it unassigned.
* Speaks with the voice, language and greeting saved under **Agent**.
  The agent answers in the caller's language if they speak another one.
* Lists calls under **Conversations** with **Phone** as their source.
* Runs as many calls at once as your plan allows: 10 on Standard, 20 on Pro,
  or the limit Centillion set for your workspace. Each minute uses workspace
  credits.

## What you need

* The Standard plan or above, which includes telephony and voice.
* The Owner or Member role. See [workspace roles](https://cntillion.com/docs/workspaces/members.md).
* For Twilio, a voice-capable phone number and the account's **Account SID**
  and **Auth Token** from the [Twilio Console](https://console.twilio.com/).
* For SIP, your provider's inbound access settings or outbound trunk address
  and credentials. Ask your provider which transport and encryption it supports.
* A voice, language and greeting under the agent's **Agent**.

## Import from Twilio

**1. Open the import form**

In the workspace sidebar, open **More → Channels → Phone**. Click **Import number**,
then **From Twilio**.

To import and assign in one step, open an agent's **Channels → Phone**,
click **Add number**, then **From Twilio**.

**2. Enter the number and account details**

Give the number a **Label**, such as "Support US", and enter the phone
number in international format, including `+` and the country code. Enter
the Twilio **Account SID** and **Auth Token**, then import the number.
Use the eye button to check a pasted token before clicking **Import**.

Centillion checks that the account is active, owns the number, and allows
voice calls. A number already on another SIP trunk must be removed from
that trunk in Twilio before you import it here.

Centillion creates a dedicated SIP trunk in your Twilio account and routes
the number through it. The number stays in your account, with your usual
Twilio charges. The Auth Token is encrypted and never shown again.

**3. Choose the agent**

A number imported from the workspace stays unassigned until you choose an
agent. Click the number's row and choose an agent in the details drawer, or open the agent's
**Channels → Phone**, click **Add number**, and select it from the workspace
numbers.

Importing from inside an agent assigns the new number to that agent.
Assigning also turns on voice for the agent if it was off.

**4. Call it**

Call the number from your own phone. The agent answers with its greeting
from **Agent**. Check the transcript under **Conversations**
after the call.

## Import from a SIP trunk

Open **Phone Numbers**, click **Import number**, then **From SIP Trunk**.
The same form is available from an agent's **Add number** menu.

Enter a label and the phone number in international format. Enable inbound
calls, outbound calls, or both, according to the trunk you want to connect.

* For inbound calls, provide the IP addresses or CIDR ranges your provider
  sends calls from, authentication credentials, or both. Inbound calls need at
  least one access restriction. Use the inbound SIP address shown by Centillion
  when configuring routing with your provider. **Allowed caller numbers** is an
  optional extra restriction: enter international numbers separated by commas
  or new lines. Leave it blank to accept any caller from your allowed sources.
* For outbound calls, enter the provider's SIP hostname or IPv4 address, with
  an optional port from `1` to `65535`. Omit `sip:` and any path. Choose its
  transport and enter the provider's username and password. Most providers
  require them for outbound calls, so leave them empty only if yours allows
  calls by IP address. Match the media encryption setting to your provider's
  requirements.

Import the number, then assign it to an agent. When you import from inside an
agent, Centillion assigns it there immediately. Your provider still controls
its number rental and carrier charges. Outbound calls also need the agent's
[outbound calling setup](https://cntillion.com/docs/channels/outbound-calls.md).

After import, **General → Inbound SIP connection** shows copyable TCP and TLS
addresses and the saved restrictions. Configure your provider to send the
number in international `+E.164` format. Assign an agent, save the provider's
routing, then call the number to verify the connection. Importing a number does
not verify the carrier's routing.

If the number already belongs to another inbound trunk, the import stops and
leaves that trunk unchanged. Ask your telephony administrator to remove the
number from the old trunk before importing it again.

## Choose the voice and greeting

Open **Agent**. Pick a voice and the language the call
opens in, then write the **First message → Call** callers hear. Leave it blank
and the agent waits for the caller to speak. Callers can talk over it; turn off
**Interruptible** under the field to play it in full, for example when it carries
a [recording notice](https://cntillion.com/docs/agents/disclosure-requirements.md).
**Publish** the branch to use those speech settings in new calls. Switch to
**Main** to change recording retention under **Settings → Advanced → Privacy**
or call limits under **Settings → Security → Limits**. Conversation audio is
saved automatically, except for callers who opt out.

![Voice configuration with Realtime and Custom modes, model, selected voice and language](https://mintcdn.com/centillion/n9koGqutqlVBNAYF/images/channels/phone-02-voice-settings.webp?fit=max\&auto=format\&n=n9koGqutqlVBNAYF\&q=85\&s=af9b619b76c162db51a5f1db5c1414f5)

Agent configuration contains voice mode, model, voice and language.

Choose **Realtime** or **Custom** under **Agent → Configuration**, then
select an available model and save. The selection changes the call pipeline.
See [Voice mode](https://cntillion.com/docs/agents/create-an-agent.md#voice-mode) for managed settings,
provider availability and transfer restrictions.

Open **Voices** in your workspace to explore and save voices. The library is shared
by all agents. Choose **Use voice**, then select the agent, or choose the selected voice in **Agent → Configuration**. On the Agent page, the call greeting is under **First message → Call** and saves as you type.

Previews are available on every plan. You can pause, replay, seek, or edit the
sample text. Saving, creating, and assigning voices requires a plan with voice
access.

The [voice library guide](https://cntillion.com/docs/workspaces/voices.md) covers filters, audio search,
cloning, voice design and remixing.

For tone, emotional delivery and audio tags, open
[Agent behavior](https://cntillion.com/docs/agents/create-an-agent.md#behavior-emotion-and-voice). Supported
expressive voices use audio tags; other voices follow tone instructions without
tags. Save the configuration and test it in a new Preview call before publishing.

Open [Voice delivery](https://cntillion.com/docs/agents/create-an-agent.md#voice-delivery) to adjust
background sound and the phone filter. Compatible custom speech voices also support named additional voices, pronunciation dictionaries and
language-specific voices and greetings.

## Personalize incoming calls

The same agent handles incoming and outgoing calls. `{{system.direction}}` tells
the system prompt which one it's on. To look up the caller before the first
message, configure a workspace default in **Workspace settings → Webhooks**,
then enable it for the agent in **Settings → Security**. An agent can also use
its own endpoint. The response can supply dynamic variables and explicitly
allowed conversation overrides. See [Personalization](https://cntillion.com/docs/agents/personalization.md)
for setup, response examples, timing, permissions and Preview behavior.

## Use it every day

* A call to an active number reaches the agent it is assigned to, and only that
  agent.
* The agent speaks with the voice and language from **Agent**, and
  opens with its greeting there. **Voice** selects the Realtime model or Custom
  language model used by the call.
* It follows the agent's instructions, knowledge and actions, as in chat.
* Your plan's limit on calls at once applies across the workspace. A call
  ends at the maximum call length under **Settings → Advanced**: the agent says
  a short goodbye and hangs up. A call a teammate has taken over is theirs,
  and keeps going. The other call limits there apply to website calls only.
* Every call is listed under **Conversations** with **Phone** as its
  source.

### Text customers and look up their history

Phone number imports configure calling. To let your agent send SMS and MMS
messages or read message and call history in chat, connect Twilio separately
under **Integrations**, then add **Twilio tools** under **Tools**.
The Twilio window under **Integrations** lists them under **Tools**, and **Add
tools** takes you there. Each action does one thing:

* **Send message**, **Delete message**
* **Get message**, **List messages**, **Get messages for number**
* **Get call**, **List calls**, **Get calls for number**

By default an action only reaches the signed-in customer's own number, and
Send message is limited to a few texts per conversation. See
[Twilio actions](https://cntillion.com/docs/agents/custom-actions.md) for the settings.

### Managing numbers

Open **Phone Numbers** to see a row for each number. Search by number, label,
agent name or provider. The **All numbers** filter can show only **Assigned**
or **Unassigned** numbers. **Clear filters** returns to the whole inventory.

Click a number's row to open **Phone number details**. The **Agent** selector
searches agents in your workspace and saves the assignment when you select one.
Choose **No agent** to stop sending new calls to an agent while keeping the
number in your workspace. Clicking an assigned agent's name in the table opens
that agent's Phone page.

![Phone number details drawer with a searchable agent selector and No agent option](https://mintcdn.com/centillion/D_PvBUBTUB-wSSwC/images/channels/phone-05-agent-assignment.webp?fit=max\&auto=format\&n=D_PvBUBTUB-wSSwC\&q=85\&s=4865d942fc78efd9ce6b5255609bcda0)

Open a number's details to choose the agent that handles its calls.

Click the label beneath the phone number, or choose **Edit label** from the
three-dot menu, to rename it. Edit the **Label**, then click **Save label**.
**Cancel** discards the label edit. Viewers can inspect number details but
cannot change them. **Outbound call** opens a test call dialog when the connection supports outbound calls.
**Manage outbound campaigns** in the three-dot menu opens the assigned agent's campaigns.

Copy **Phone number ID** in General for API requests or support.

For inbound calls, choose a **Branch** after assigning an agent. **Follow traffic
split** uses the agent's published traffic allocation. Choosing a branch uses
its latest published version for new calls. Unpublished and archived branches
cannot receive new calls. Changing the agent resets this choice to **Follow
traffic split**.

The **Branch** column in the number tables shows the choice for each number:
**Traffic split**, the name of the branch it uses, or **Unavailable branch**
when that branch was archived. A number on an unavailable branch cannot take
calls until you choose another branch. A number with no
agent or no inbound calling shows a dash. The agent's branch switcher shows
the traffic split only, so check this column when inbound calls reach a
different branch than the one marked **Live**.

Inside an agent's **Channels → Phone** page, **Add number** searches the
unassigned workspace numbers that have inbound or outbound calling set up.
Numbers assigned to other agents do not appear in the picker. To move an
imported number to this agent, change its assigned agent in workspace
**Phone Numbers**. You can also import a new Twilio or SIP trunk number from
the same menu.

![Agent telephony page with the number table, the Add number picker, number search and provider import options](https://mintcdn.com/centillion/6IvmZt9_5jdgMRYp/images/channels/phone-06-add-number.webp?fit=max\&auto=format\&n=6IvmZt9_5jdgMRYp\&q=85\&s=1aabfec6a36fe0bbe616e03d73e6d804)

Add an unassigned workspace number from the agent's Phone page.

The number's three-dot menu in the table or details drawer has **Remove from
agent**. This clears the assignment and keeps the number in the workspace.
Numbers bought from Centillion Labs can be unassigned and attached again to
their original agent, but cannot move to another agent.

### Send a test call

Click **Outbound call** in a number row or at the top of its details. Choose the
agent, published branch or traffic split, and destination number including its
country code. The selected agent handles this one call; the number's inbound
assignment stays the same. A number bought through Centillion Labs can only
call with its original agent.

**Dynamic variables** lists every variable the selected published version uses,
filled in from the test values in [**Vars**](https://cntillion.com/docs/agents/personalization.md). Change a
value or its type for this call. A value you leave blank is sent blank, so
`Hi {{name}},` reads "Hi ,". Lists and objects are sent as JSON text, and null
as blank text. **Answering machine detection** ends the call when the agent
detects voicemail or an automated greeting. Click **Send test call**. The first
time you do, the
[**Outbound communications terms and conditions**](https://cntillion.com/docs/channels/outbound-calls.md#your-responsibilities)
open: tick the box and choose **Continue**, and the call goes out. You agree
once per workspace.

An outbound SIP connection is required. Your do-not-call list and call limits
still apply. Real test calls use normal workspace credits and carrier charges.

**Calling** means the request was accepted, and the dialog shows the result
when the call ends. **The call did not go through** says why the call could not
be placed, such as a provider that needs this number's outbound username and
password. If the request could not be confirmed, check
**Recent calls** first; retrying with the same settings in the same dialog
reuses the request instead of sending another call.

![Outbound call dialog with agent, branch, a row for each dynamic variable with its type and value, phone number, answering machine detection and Send test call](https://mintcdn.com/centillion/LV94pA5VBT_INX6g/images/channels/phone-05-test-call.webp?fit=max\&auto=format\&n=LV94pA5VBT_INX6g\&q=85\&s=55e1892a002baf8ae7208e570626dce9)

Send a test call with a selected agent and published branch without changing inbound assignment.

### Check call results

The number's **Recent calls** tab shows its latest 20 calls, with direction,
agent, outcome, duration and a link to the conversation. A call that could not
be placed says why. Available SIP response codes and carrier call IDs help your
provider trace a connection failure.
Active calls refresh automatically; use the refresh button to check for new
inbound calls.

This history contains calls that reached Centillion Labs. A carrier rejection
before the call reaches the app may appear only in your provider's logs. The
dashboard does not expose raw SIP-message logs or custom TLS certificate-domain
validation controls.

### Update a number's connection

Open the number's settings and choose **Connection**. Owners and Members can
update an imported number's provider settings here.

For a SIP trunk, edit the inbound or outbound settings, then click **Save
connection**. You can change the provider address, transport, media encryption,
IP allowlist, allowed caller numbers and authentication. Keep at least one call
direction enabled.
Inbound calls still need an IP allowlist, authentication, or both.

Saved SIP passwords stay hidden. Leave a password field blank to keep its saved
value, or enter a new password to replace it. To remove authentication, turn
off inbound **Authentication**, or clear both outbound credentials. Changes
apply to future calls. If a save reports that only one direction was updated,
check that direction before retrying.

![SIP trunk Connection tab with the inbound SIP address, media encryption, source IP restrictions, allowed caller numbers and Save connection](https://mintcdn.com/centillion/D_PvBUBTUB-wSSwC/images/channels/phone-04-connection.webp?fit=max\&auto=format\&n=D_PvBUBTUB-wSSwC\&q=85\&s=1d341d8930eac98ea33fd80b39a36406)

The Connection tab holds inbound access restrictions and outbound provider settings.

For a Twilio number, the **Connection** tab shows its fixed **Twilio Account
SID**. After rotating credentials in Twilio, enter the **New Auth Token** and
click **Update token**. Centillion Labs checks the token against that account
and number before saving it. The saved token cannot be revealed. Repeat this
for each imported number that uses the account.

### Remove an imported number

Open the number's three-dot menu, choose **Remove number**, and confirm.
If removal fails, the confirmation stays open so you can retry or cancel.

Removing an imported number from the workspace stops Centillion routing calls
for it. For Twilio, Centillion takes it off the configured SIP trunk and removes
a trunk created only for that number. The phone number stays in your Twilio
account. For SIP, remove any
routing to Centillion from your provider too.

To release an [existing Centillion Labs
number](https://cntillion.com/docs/channels/phone-numbers-from-centillion.md), contact the Centillion Labs
team. Releasing returns the number to the carrier, where someone else may get it.

### Calls that need a person

Every call is saved under **Conversations**, so your team can read what was
said and follow up. The live chat handoff does not run on phone calls; on your
chat channels, a person takes over from the [helpdesk inbox](https://cntillion.com/docs/helpdesk.md).

When the agent cannot answer a caller, it can offer a callback or the
information by message and record the request as a ticket. It only offers this
when [Helpdesk](https://cntillion.com/docs/helpdesk.md) is on and the agent's **Escalations** action, under
**Tools**, is enabled with **Phone** among its channels and none of its fields
is required. Phone is off there by default. Without it, the agent tells the caller it does not have that
information and offers no follow-up.

Nobody from your team can join a phone call, so the agent never tells a caller
that someone is coming on the line, never offers or tries to bring someone in
unless a workflow step transfers the call, and never asks them to hold or wait
for a person, even when its instructions say to bring in the team. A caller who asks for a person is
offered the callback or message when Escalations is set up as above. Otherwise
the agent says it can't put them through and keeps helping. Only an agent
workflow with a step that transfers the call can move a caller to a person.
When the call's workflow can still reach such a step, the agent says instead
that a person may be able to help later in the call, but not right now, and
may also offer the callback or message when Escalations is set up. On a step
where the caller can choose to go on to a step that transfers the call, the
agent offers that transfer and moves the caller there when they want it.

### Twilio tool credentials

If you use Twilio tools and change that integration's Auth Token in Twilio,
open **Integrations → Twilio** and click **Update Auth Token**. The integration
keeps its own credentials, separate from numbers imported through **Phone
Numbers**. Updating one does not update the other.

## Limits and good to know

* **One agent per number.** A workspace number has one assigned agent or is
  unassigned. Reassign it to change who answers new calls.
* **Keep the imported trunk settings.** Changing the SIP trunk Centillion
  creates in Twilio can stop your number from reaching the agent.
* **Call limits.** Your plan's limit on calls at once applies across the
  workspace, and a call the agent is still on ends at the maximum call length
  under **Settings → Advanced → Conversational behavior**. Daily and concurrent
  call limits are under **Settings → Security → Limits**.
* **Credits.** Each minute of a call uses the workspace's
  [credits](https://cntillion.com/docs/workspaces/billing.md).
* **Silent calls end.** After the agent says goodbye, the call hangs up as
  soon as the caller says goodbye back, and a few seconds later if nobody
  speaks or the caller only says "Thank you!" or "You too!". If the caller
  says anything else, the call goes on. If the caller goes quiet in the
  middle of a call, **Settings → Advanced → Conversational behavior** controls
  when the agent checks in and when silence ends the call. Either timer can be
  disabled. These silence timers pause while either side speaks or the agent
  works, such as during a lookup. The maximum call length still applies. While a
  workflow step still waits for a detail from the caller, such as a callback
  number, a goodbye does not end the call: the agent asks for it, starting
  with "Before you go." A caller who goes quiet follows the configured silence
  timers. See [Conversational behavior](https://cntillion.com/docs/agents/create-an-agent.md#conversational-behavior).
* **A goodbye before the line closes.** When the agent ends the call on a
  line that was not a goodbye, such as "One moment.", it says a short goodbye
  in the caller's language first.
* **Twilio tools are separate.** Disconnecting the Twilio integration turns
  off its actions and removes numbers imported through that integration.
  Numbers imported through **Phone Numbers** have their own settings.

### Recovering an interrupted phone operation

Purchases, releases, and business verification keep a durable workspace claim
until the operation finishes. A connection failure or process crash can leave
the claim in place. If the phone settings keep reporting that an operation is
running, contact Centillion support. Waiting does not release this claim.

After support reconciles the operation, retry the action.

## Questions

### Do I need to buy numbers from Centillion?

No. Import an existing Twilio number or connect your provider's SIP trunk from
**Phone Numbers**. Your provider keeps the number.

### Why does an imported number not ring through?

A workspace import stays unassigned until you choose an agent. Open the number
under **Phone Numbers** and assign it, or select it from **Add number** inside
the agent's **Channels → Phone** page. Also check that your provider routes
calls to Centillion.

### Why does an outbound test call not ring my phone?

The test dialog and the number's **Recent calls** tab say why a call could not
be placed. If your SIP provider asked for a login, open the number's settings,
choose **Connection**, enter or correct the outbound username and password from
your provider, and click **Save connection**. If your provider refused the call,
check those credentials, and that it lets this number call the destination.

### What does the caller hear first?

A workflow opening comes first, then a permitted initiation override. If neither
applies, the call uses the language's first message or **First message → Call**
from **Agent**. If that is blank, nobody speaks until the caller does. See
[how the opening is chosen](https://cntillion.com/docs/agents/personalization.md#one-agent-for-inbound-and-outbound-calls).

Calls open without a fixed notice. Include any required AI, transcription or
recording disclosure in every opening you use. See
[Disclosure requirements](https://cntillion.com/docs/agents/disclosure-requirements.md). Website calls and
voice previews use the same first message and do not fetch initiation data.

### Can two agents share a number?

No. A number belongs to one agent at a time. Your workspace can keep several
numbers from the same provider account and assign each to a different agent.

### What happens if I change my Twilio Auth Token?

Open the number's settings under **Phone Numbers**, choose **Connection**,
enter the **New Auth Token**, and click **Update token**. Repeat for each
imported number using that account. If you also use Twilio tools, update that
separate integration under **Integrations → Twilio → Update Auth Token**.

### Which plan do I need?

Standard or above, which includes telephony and voice. Each minute of a call
also uses credits from the workspace balance.

### Can the same agent answer chat and email too?

Yes. One agent, with one set of instructions and knowledge, answers on every
channel you connect. [What Centillion is](https://cntillion.com/docs/introduction.md) gives the overview.

## Try it

Import one number, assign it, and call it from your own phone. The call shows
up under **Conversations** when you hang up.

> [card] [Start free](https://app.cntillion.com/sign-up?utm_source=docs\&utm_medium=article\&utm_campaign=channels-phone)
>
> Start on the Free plan, or take a seven-day trial of a paid plan. Your agent is live on your site in an afternoon.

> [card] [Book a demo](https://cal.com/patrick-turricelli-smgfks/15min?utm_source=docs\&utm_medium=article\&utm_campaign=channels-phone)
>
> Fifteen minutes with the team, on your own use case.

Or ask the assistant on this page.

## Related

> [card] [What Centillion is](https://cntillion.com/docs/introduction.md)
>
> The product in one page: agents, knowledge, channels and the helpdesk.

> [card] [Helpdesk](https://cntillion.com/docs/helpdesk.md)
>
> Where your team takes over chats on your other channels.

> [card] [Text messages (SMS)](https://cntillion.com/docs/channels/sms.md)
>
> Give customers a business number they can text.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.