Skip to main content

Overview

A Number is the phone number callers dial; it routes to whatever agent it is attached to. Phone numbers in Unpod come from two sources:
  • Unpod Numbers (default) - provision directly from the Unpod platform. No carrier account, no trunk, no SIP.
  • BYON (Bring Your Own Number) - route numbers you already own from any provider over a trunk you register once.
Once a number is in your account, you attach it to an agent_id. All inbound calls to that number are routed to that agent.
Support for Twilio, Telnyx, and Plivo numbers is coming soon - you will be able to import numbers from these providers directly into Unpod.

Number Sources


Getting Numbers from Unpod

Numbers provisioned through Unpod are immediately available in your account. You can browse and acquire them from the dashboard under Dev Platform -> Numbers. Once provisioned, list them via the SDK:

Trunks

A Trunk is your carrier connection - the SIP capacity numbers ride on. Bring your own carrier (Twilio, Tata, …), register it once with its SIP credentials, then work with numbers, not SIP. BYON numbers arrive this way.
1

Add the trunk

Dev Platform -> Telephony -> Add Trunk -> BYO SIP. Provide the carrier’s SIP domain (e.g. sip.your-carrier.com) and auth username / password.
2

Point the carrier at Unpod

Set inbound routing to the Unpod SIP endpoint shown in the dashboard.
3

Sync

Click Sync on the trunk, or run await client.numbers.sync(). The trunk’s numbers appear in your account, ready to attach to an agent.

Register a trunk via the SDK

Field names match the dashboard.

List and delete trunks

Sync numbers off a trunk

One-time provisioning end to end (profile, agent, number, env vars): Provisioning checklist.

Listing Numbers

Number fields


Attaching a Number to an Agent

A number can be attached to exactly one agent at a time. Inbound calls to that number are routed to that agent.

attach() parameters

attach() used to take pipe_id=. It takes agent_id now - supervoice stopped storing a pipe pin and resolves the pipe from the agent instead. Old calls raise a TypeError.
client.agents.numbers.attach(agent_id, number) does the same job keyed by the E.164 number rather than the number id - see Agents.

Detaching a Number


Common Patterns

Find the first free number and attach it

Rotate numbers across agents


Next Steps

Voice Profiles

Choose the voice profile your agent speaks with.

Agents

Create and configure the agent a number routes to.