The last step is the same for all three routes: assign the address to
a trunk, an agent, or a routing flow, so that inbound calls land somewhere.
This page is really about that mapping.
The managed “buy a number” catalog is a stub today. Search returns a
small demo set (India-only, a placeholder catalog provider), pending live
Twilio / Telnyx / Bandwidth integration. The allocation registry is real,
and the inbound routing that reads it is real. A number that you import by
hand behaves exactly like a purchased one will. If you need a live number now,
bring your own DID (below).
Your tenant already has an address
Every workspace gets a per-tenant SIP subdomain at onboarding. Org bootstrap creates CNAMEs for<orgId>.sip.clutchcall.dev (SIP),
<orgId>.webrtc.clutchcall.dev (browser media), and the bare
<orgId>.clutchcall.dev. All of them point at the voice engine. When a call
arrives, the engine reads the leftmost DNS label of the inbound SIP
request as the tenant id. Multiple tenants share the engine with no
cross-tenant extension collisions.
You do not provision this subdomain. It exists the moment your org does. It is
the SIP realm that your agent endpoints register against. It is also the host
that a carrier or upstream SBC points its trunk at. See
SIP trunking for the
trunk side. See PBX & ACD for
how to register human-agent phones under that realm.
Bring your own numbers (DID)
This is the production path. You already own DIDs from a carrier. You keep them and point them at ClutchCall. There are two parts: make the carrier deliver calls to a trunk, then register the number so the engine knows where to route it.1
Create a trunk for the carrier
Configure a SIP trunk that terminates your carrier (or SBC). Match the
trunk by the carrier’s source IP or by the DID that it delivers. Set its
inbound rule so that calls hand off to an agent or a flow, not to a
rejection. See Trunks for every field. See
SIP trunking for the
addressing and codec setup.
2
Point the carrier at your SIP subdomain
In your carrier’s dashboard, route the DID’s inbound calls to
<orgId>.sip.clutchcall.dev (or to the trunk’s advertised SIP IP). The
engine matches trunk INVITEs by source IP, and they bypass the registrar
ACL.3
Import the number into the registry
Register the E.164 number in the allocation registry. Set its
provider
to manual (a BYO import). Set a trunk_id so that inbound calls on the
number resolve to that trunk. Inbound routing reads this record on every
call.4
Verify inbound routing
Place a test call to the DID. The engine resolves the trunk by DID first,
then by source IP. The engine then follows the trunk’s inbound rule. Check
that the call lands where you assigned it (see
Inbound calls).
(org, e164):
string
required
The number in E.164 form, e.g.
+15551234567. Unique within your org.'twilio' | 'telnyx' | 'manual'
The source of the number.
manual = a bring-your-own DID that you imported.
The managed catalog sets twilio / telnyx when that catalog ships.string
The classification (e.g. local, toll-free, mobile). The system carries it for
reporting and compliance, not for routing.
string
The ISO country of the number.
string
The trunk that this number routes over. Set it for BYO DIDs so that inbound
calls resolve to your carrier trunk.
string
Optional. Bind the number directly to an AI agent. A call to the number starts
that agent with no intermediate flow.
string
Optional. Route the number into a VDN (a routing flow / IVR entry point)
instead of straight to an agent. The usual choice is to set exactly one of
agent_id / vdn_id.string
The lifecycle state of the allocation (active, released, …).
Buy from the managed catalog
This is the eventual one-click path. You search available numbers by country and type, and you purchase one. The system then provisions the DID onto a managed trunk automatically. When the catalog goes live, it will populate the same registry record shown above, withprovider set to the upstream carrier. Build against that shape
now.
Assign a number
Assignment makes a number do something. Every allocated number points at exactly one destination. Pick the destination that matches how much routing logic you want in front of the caller:- To a trunk
- To an agent
- To a flow (VDN / IVR)
Set
trunk_id. The engine delivers inbound calls on the number over that
trunk. The calls follow the trunk’s own inbound rule. This is the baseline
for a BYO DID: the number is reachable and lands on your carrier edge, and
the trunk decides the rest.agent.clutchcall.dev, or from the control-plane API. Do not
manage it from the data-plane Voice SDK. The SDK’s Voice client places and
controls calls. It does not buy or assign numbers. The system hydrates
assignments to the engine, so a change takes effect on the next inbound call
without a redeploy.
One number, one primary destination. If you set both
agent_id and
vdn_id, the result is ambiguous. Choose the level of indirection that you
want (straight-to-agent or flow-first) and set one. trunk_id governs how
the call arrives. agent_id / vdn_id govern what happens after it
arrives.Honest status
- Per-tenant SIP subdomain provisioning — shipped. The system creates it automatically at org onboarding. The engine routes by the leftmost DNS label.
- Bring-your-own DID — shipped. Import into the allocation registry with
provider: "manual"and atrunk_id. Inbound routing reads it live. - Assign to trunk / agent / flow — shipped. The registry is real, and so is the inbound resolution that reads it.
- Managed buy-a-number catalog — preview. Search works against a stub (India-only demo inventory). Live carrier purchase-and-provision is not yet built. Do not ship a self-serve “buy a number” flow on it.
Related
SIP Trunking
Bring your own carrier or a managed trunk — addressing and codecs.
Trunks (control plane)
Every trunk field, including inbound rules and AI handoff.
Inbound Calls
How the engine receives and routes a call on your number.
PBX & ACD
Front a number with a VDN, IVR, and skill-queue routing.
Build voice agents
Bind a number straight to an AI agent.
Telephony overview
How the phone network bridges into the voice stack.

