Deploy

Voice numbers

A voice number connects a phone number to an agent. When someone dials it, they reach the agent, hear its greeting, and start a voice conversation.

The mapping

A voice number maps a phone_number to a bot_id. You can override the spoken voice (tts_voice) and set a per-number greeting, so the same agent can answer different lines with different openers. Create and manage these mappings in the dashboard or over the Voice API.

Any agent can be bound to a number, whichever type it is. The call connects when the agent also has a voice: either a voice configured on the agent itself, or the per-number override above. Without one, calls to the number are rejected, so check the Call-ready marker on the agent's Voice tab after you bind a number. See Voice agents.

Inbound calls

Once a number is bound, inbound calls are handled automatically: the agent answers, greets the caller, and the call becomes a voice conversation you can read and trace with the Conversations API (filter by channel=voice).

Outbound

Outbound calls are placed with the Calls API; caller ID and routing are resolved from the agent's outbound voice-number configuration, so you only pass the agent and the number to dial.

SMS

A number can also handle SMS - inbound texts are answered by the same agent as voice; there's no separate SMS agent. Each number has an SMS toggle on its row in Phone numbers; turn it off and texts to that number are ignored (dropped, not billed). A number that isn't SMS-capable at the carrier won't receive texts regardless of the toggle.