Telephony for agents
Phone numbers
for AI agents.
Dialtone is the telephony API for AI agents. Give agents their own phone numbers, let them place and receive calls, attach tools, and keep every session observable from your product.
Agent-owned lines
Give each agent its own phone number, caller identity, and routing surface through one API.
Live call execution
Turn instructions into real phone calls with voice, tools, and session state managed for you.
API-native control
Create calls, attach tools, poll status, and fetch results from your own agent runtime.
Every interface your agent speaks
API
REST endpoints
MCP
Tool protocol
SDK
Native clients
CLI
Terminal access
Set up Dialtone (http://localhost:3000/setup.md) and then call Acme Dental, confirm tomorrow's appointment, and write the result back to the CRM.Live Call
ops-agent-checkin-01
Target
+1 (415) 555-0182
Instruction
Call the supplier, confirm Monday delivery, ask whether the revised quote was approved, and log the answer.
queued
Voice agent prepared
connected
Answer detected on line
tool action
CRM and calendar available
Platform
The phone layer your agents were missing.
Your agents can search, write, and browse. Now they can call. Real numbers, live conversations, and structured outcomes through one API.
Capability
dial()
Describe the goal, pass the number. Dialtone puts your agent on a live call with a real person and returns a structured transcript and outcome when it ends.
PHONE LAYER
Numbers for agents
Provision and manage phone numbers your agents can use for outbound calls, inbound routes, and account signups.
CALL EXECUTION
Calls with context
Pass the goal, the target number, and the right tools. Dialtone handles the voice session and call lifecycle.
OBSERVABILITY
Calls that report back
Every call returns transcripts, structured outcomes, and a full event timeline. Your agent knows exactly what happened and what to do next.
Workflow
A phone call is just another action.
Keep the control plane in your own agent. Provision the line, start the call, and consume the result like any other agent action.
01
Provision a line
Assign a phone number or caller identity the agent should use when it reaches out to the real world.
agent
voice runtime ready
tools
auth attached
line
caller identity set
connect
Dialtone keeps the server authoritative while the agent moves from request to live call and back to a structured result.
02
Start the call
Post the target, the goal, and any connected tools. Dialtone spins up the voice agent and places the call.
{
"phoneNumber": "+14155550182",
"fromPhoneNumberId": "agent_line_primary",
"prompt": "Call the clinic, confirm the visit, and update the CRM.",
"tools": ["calendar", "crm"]
}03
Handle the result
Poll or subscribe. When the call ends, your agent gets the full transcript, a structured outcome, and every event along the way.
initiated
Session created and waiting for connect
queued
Preparing telephony transport
in_progress
Agent is on the line and executing instructions
Start Calling
Give your agent a phone line now.
Dialtone makes telephony an API primitive for AI agents: numbers, calls, routing, and results in one agent-friendly surface.
npm install dialtone