Which voice AI APIs can call a cell phone.
Updated August 22, 2026
“Voice AI API” covers three different products. Only one of them can ring a real mobile number. This page is the integration map: which APIs place an outbound PSTN call, whose caller ID shows up, and when DialMCP is the shorter path.
Three kinds of “voice AI”
- Outbound PSTN. The API originates a call on the public telephone network. Landlines and cell phones both ring. This is what Vapi, Bland, Retell, Twilio Voice, ElevenLabs Agents, LiveKit SIP, VOYP, AgentCall, and DialMCP do.
- WebRTC / in-app voice. The model talks inside a browser or SDK. No phone rings. Most “Realtime” playgrounds start here.
- Inbound / “call the AI”. You dial a number and talk to the model. ChatGPT Voice and 1-800-ChatGPT are this shape. Useful, and the inverse of placing a call for you.
Cell vs landline is a consent question in the US (TCPA treats wireless differently), not a connectivity question. If the provider can dial E.164 over PSTN, it can reach a cell phone. Some stacks look up line type before they dial — DialMCP does; see Safety.
APIs that can place the call
- Twilio Voice — yes, PSTN in and out. Caller ID is a Twilio or verified number you provision. REST / TwiML; you bring the model.
-
Vapi — yes, including batch and scheduled. Caller ID is
an imported Twilio / Vonage / Telnyx number, or a free Vapi number.
REST
/callwith an assistant and destination. -
Bland — yes. Caller ID is a Bland or BYOT Twilio number;
optional dialing pools. REST
POST /v1/callswith an E.164phone_number. -
Retell — yes (Retell-managed numbers: 15 countries).
Caller ID is a Retell-managed or imported number. Create-phone-call API
with
from_numberandto_number. - ElevenLabs Agents — yes, via Twilio or SIP. Caller ID is a purchased Twilio number, or a Twilio-verified caller ID (outbound only). Dashboard outbound call, or the Agents API after import.
- LiveKit — yes, if you attach a SIP trunk. Caller ID is the trunk provider’s number. Create a SIP participant. Infrastructure, not a turnkey agent.
- OpenAI Realtime — not by itself. SIP docs cover inbound. Outbound needs Twilio (or similar) in front; caller ID is whatever that layer presents.
-
VOYP — yes. Caller ID is VOYP’s telephony; credits
required. Remote MCP at
api.voyp.app/mcp/stream, API key or OAuth2. -
AgentCall — yes. Caller ID is a number you provision
through AgentCall. Hosted MCP at
api.agentcall.co/mcpwith an API key; 60 tools. -
DialMCP — yes, US and Canada. Caller ID is
your SMS-verified mobile number. Remote MCP at
mcp.dialmcp.com/mcp. OAuth, no API key.
Sources, checked August 22, 2026: Vapi outbound calling, Bland Send Call, Retell outbound, Twilio Voice, ElevenLabs Twilio, LiveKit outbound, OpenAI Realtime SIP, Twilio + Realtime outbound, VOYP MCP, AgentCall MCP.
What the table does not say
- Vapi, Bland, and Retell are the volume platforms. Their docs lead with campaigns, batch customers, CPS limits, and spam-label remediation. That is the right tool if you are building a contact-center product. It is the wrong default if you wanted one assistant to call one clinic.
- Twilio, LiveKit, and OpenAI Realtime are layers. They will call a cell phone once you assemble STT, LLM, TTS, a number, and the outbound originate. Budget a week, not an afternoon.
- ElevenLabs can present an existing number if that number is a Twilio Verified Caller ID — outbound only, no inbound on that ID. That is the closest “use my real number” option among the business stacks.
- VOYP and AgentCall already speak MCP, so they sit in the same client as DialMCP. VOYP is credits-plus-key (or OAuth2). AgentCall provisions its own numbers and adds SMS, OTP, and inbound agents — a phone stack, not a single personal caller ID.
Where DialMCP sits
DialMCP is a hosted remote MCP server. It does not
sell minutes, provision a pool, or expose a REST dialer. You connect
Claude, Codex, Cursor, ChatGPT connectors, Gamut, or any Streamable HTTP
+ OAuth client to https://mcp.dialmcp.com/mcp
and ask it to place one call. Details:
install,
clients,
OAuth and SMS verification.
- The callee sees your verified mobile number, not a rented DID.
- Four tools:
place_call,get_call,end_call,list_calls. The call is async so a multi-minute hold does not trip the client timeout. - Disclosure, calling hours, rate limits, and opt-outs are enforced server-side. They are not prompt text.
- US and Canada only. Free during the launch pilot.
If you needed a programmable blast dialer, use Vapi, Bland, or Retell. If you needed raw telephony, use Twilio. If you needed the assistant you already live in to call a cell phone from a number the other person can call back, that is the DialMCP job. Walkthrough: how to make a phone call with an AI assistant. Shape comparison: AI phone call app vs. agent.
A short decision path
- If you only wanted to talk to a model, stop. Use ChatGPT Voice or 1-800-ChatGPT. No voice API will place the outbound call.
- If you are wiring a contact center or campaign, pick Vapi, Bland, Retell, or ElevenLabs and import a number.
- If you are assembling your own stack, start from Twilio Voice or LiveKit SIP, then hang a model on it. OpenAI Realtime is the model, not the phone network.
- If the agent already speaks MCP and you want one personal outbound call, connect DialMCP — or VOYP / AgentCall if you specifically want their credits, number provisioning, or SMS tools.
https://mcp.dialmcp.com/mcp, verify your
number once, and call place_call.
Connect DialMCP.