Phones for agents
Phones
for agents.
Dialtone gives your agents phone numbers, outbound calling, tool access, and live session control through one clean API.
Outbound calling
Turn a prompt into a live phone call without stitching together a dialer stack.
Tool-aware agents
Wire in authenticated actions only when the agent needs them during the call.
API control
Create, connect, and poll call state from your own product or internal systems.
const response = await fetch("https://cattery.ai/api/v1/calls", {
method: "POST",
headers: {
"Authorization": "Bearer your_api_key",
"Content-Type": "application/json" },
body: JSON.stringify({
phoneNumber: "+14155550182",
prompt: "Call Acme Dental and confirm tomorrow's appointment.",
}),
})
const data = await response.json()Live Call
appointment-confirmation-01
Target
+1 (415) 555-0182
Instruction
Confirm tomorrow's 3:30 PM cleaning, ask whether x-rays are included, and log the result.
queued
Voice session prepared
connected
Answer detected on line
tool lookup
Calendar and CRM retrieved
Platform
Built for live operations.
Not a chatbot veneer. Not a contact-center skin. Dialtone is the programmable phone system that agent products have been missing.
One Request
1 POST
Prompt to dial tone
Create an ephemeral voice agent, attach the right tools, and move the session into a real call without building your own telephony backend.
LIVE ORCHESTRATION
Always reachable
Queue, connect, and monitor every outbound session with a call lifecycle your product can understand.
PHONE LAYER
Instant numbers
Give each workflow its own programmable calling surface instead of bolting telephony onto chat UI.
API CONTROL
Developer first
Simple request shape, clear status polling, and a real product path from prototype to production.
Workflow
From instruction to completed call.
The product flow stays simple on purpose. Define the job, dial once, and keep the session observable from your own app.
01
Define the job
Choose the target number and write the exact outcome you want the agent to achieve on the call.
{
"phoneNumber": "+14155550182",
"prompt": "Call the clinic and confirm the appointment.",
"tools": ["calendar", "crm"]
}02
Dial by API
Post once. Dialtone creates the session, prepares the tools, and moves the call into a live state.
agent
voice runtime ready
tools
auth attached
call
dialing target
connect
After the call is created, Dialtone keeps the server authoritative and moves the session into the connected state.
03
Track the session
Use the returned call id to watch status changes and react in your own product or workflow engine.
initiated
Session created and waiting for connect
queued
Preparing telephony transport
in_progress
Agent is on the line and executing instructions
Start Shipping
Put phones in every agent.
Dialtone turns telephony into a product surface your agents can actually use: programmable, observable, and built to look serious.