The Voice AI Stack Has a Gap
Voice AI is exploding. Platforms like Retell AI, Bland AI, Synthflow, and NLPearl let you build conversational AI agents that sound human. Custom solutions using OpenAI's Realtime API, ElevenLabs, or Deepgram give you full control over the voice pipeline. But they all share the same gap: they need phone numbers.
A voice AI agent without a phone number is like a website without a domain. The AI model handles the conversation — the phone number handles the connection. Someone needs to provision the number, manage the carrier, route the call, record it, and deliver status events. That's infrastructure, and it's what AgentCall provides.
What Voice AI Platforms Need
Whether you're using Retell AI, Bland AI, or building your own voice agent, the requirements are the same:
- Phone number provisioning: Each voice agent needs a callable number. Local numbers for a regional presence, toll-free for business, or SIM for mobile verification.
- Outbound calling: Initiate calls programmatically with a single API request. Schedule callbacks, trigger follow-ups, or connect agents to customers.
- Inbound routing: Route incoming calls to the right agent based on the number dialed. No shared IVR — each agent gets its own number.
- Call recording: Compliance-ready recording for insurance, healthcare, legal, and quality assurance. Recordings delivered via webhook URL.
- Status webhooks: Real-time events for call initiated, ringing, answered, completed, and failed. Your orchestrator needs to know what's happening.
- Carrier abstraction: Switch between Telnyx and Twilio without changing application code. Normalize status codes, webhook formats, and pricing across carriers.
AgentCall as the Voice Transport Layer
AgentCall sits between your voice AI and the phone network. It handles the carrier complexity so your voice agent focuses on the conversation.
Initiate an Outbound Call
import AgentCall from 'agentcall';
const client = new AgentCall({ apiKey: 'ac_live_...' });
// Initiate a call with recording enabled
const call = await client.calls.initiate({
from: 'num_abc123', // Your provisioned number
to: '+14155551234', // Customer's number
record: true, // Enable call recording (Pro only)
webhookUrl: 'https://my-voice-agent.com/call-events',
});
console.log(call.id); // call_xyz789
console.log(call.status); // "initiated"Handle Call Events
// Your webhook receives real-time call events:
// POST https://my-voice-agent.com/call-events
// Call started
// { "event": "call.initiated", "data": { "callId": "call_xyz789", ... } }
// Call answered — connect your voice AI here
// { "event": "call.answered", "data": { "callId": "call_xyz789", ... } }
// Call completed — recording URL included
// {
// "event": "call.completed",
// "data": {
// "callId": "call_xyz789",
// "duration": 147,
// "recordingUrl": "https://api.telnyx.com/recordings/rec_abc.mp3"
// }
// }Call Recording for Compliance
Call recording is a Pro-only feature at $0.01 per minute. When enabled, AgentCall instructs the carrier to record the call and delivers the recording URL via webhook when the call completes. Recordings are stored on the carrier's infrastructure (Telnyx or Twilio) with their enterprise-grade security.
This matters for industries with regulatory requirements:
- Insurance: Record customer calls for claims documentation and compliance audits.
- Healthcare: Record appointment scheduling and follow-up calls (with patient consent).
- Legal: Document client intake calls and consultation summaries.
- Sales: Record sales calls for training, quality assurance, and dispute resolution.
How AgentCall Compares to Direct Carrier Integration
You could integrate directly with Twilio or Telnyx. Many voice AI platforms do. But there are tradeoffs:
- Vendor lock-in: Direct Twilio integration means Twilio's pricing, Twilio's webhook format, Twilio's status codes. AgentCall abstracts the carrier — switch from Telnyx to Twilio per-number without changing code.
- Agent isolation: Twilio doesn't have a concept of “agents.” You manage number-to-agent mapping yourself. AgentCall enforces isolation at every layer.
- Built-in billing: AgentCall meters usage per-agent with Stripe Billing. If you're building a platform where customers have their own voice agents, per-tenant billing is handled for you.
Architecture Example: Voice AI + AgentCall
// Simplified architecture:
//
// Customer calls +15551234567 (AgentCall number)
// │
// ▼
// AgentCall receives the call
// → Sends "call.initiated" webhook to your server
// │
// ▼
// Your server connects the call to your Voice AI
// (Retell AI, Bland AI, custom LLM + TTS/STT)
// │
// ▼
// Voice AI handles the conversation
// │
// ▼
// Call ends → AgentCall sends "call.completed" webhook
// → Recording URL delivered if recording was enabled
// → Duration and billing automatically trackedPricing for Voice
Voice minutes on AgentCall cost $0.035/minute. Call recording adds $0.01/minute. A 5-minute recorded call costs $0.225 total. Numbers start at $2/month for local or $8/month for SIM.
The free tier includes 10 voice minutes — enough to test your integration before committing to the Pro plan.
FAQ
Does AgentCall handle the AI conversation itself?
No. AgentCall is the phone infrastructure layer — it provisions numbers, routes calls, handles recording, and delivers events. The conversational AI (speech-to-text, LLM, text-to-speech) is handled by your chosen voice AI platform. Think of AgentCall as the phone line, not the brain.
Can I use AgentCall with Retell AI or Bland AI?
Yes. AgentCall provides the phone numbers and call management that voice AI platforms need. Provision numbers through AgentCall, route incoming calls to your voice AI via webhooks, and let AgentCall handle recording and billing.
What carriers does AgentCall support?
AgentCall currently supports Telnyx and Twilio as underlying carriers. You can assign different carriers to different numbers. The API normalizes carrier-specific differences so your code stays the same regardless of which carrier a number uses.