OpenClaw voice calls: giving your agent a phone number
The @openclaw/voice-call plugin places and answers real phone calls via Twilio, Telnyx, or Plivo. Setup, the realtime-vs-streaming choice, how it differs from voice notes in chat, and the install form that matches a pinned OpenClaw.
Three different things get called “OpenClaw voice,” and they’re set up separately. Voice notes in chat channels come from the media stack: send a Telegram or WhatsApp audio message, and the agent transcribes and answers. Real phone calls come from the @openclaw/voice-call plugin, which places and answers calls through a Twilio, Telnyx, or Plivo number. And since 2026.7.1 a configured WhatsApp agent can ring you to speak an urgent message. This guide sorts out which one you want and what each takes.
Voice notes in chat: the one most people mean
If the goal is “talk to my agent instead of typing,” you don’t need a phone number at all. Inbound audio on chat channels runs through tools.media: add a model with the audio capability (OpenAI, Groq, Deepgram, and half a dozen other speech providers are supported, or a local whisper CLI), flip tools.media.audio.enabled, and voice notes become text the agent reads (size cap: 20MB). Sensible details are handled: Telegram frames transcripts as machine-generated untrusted text, WhatsApp transcribes authorized group voice notes before mention-gating. Outbound, the agent can reply in kind, with native voice messages on Telegram, WhatsApp, Matrix, and Feishu via the TTS stack (WhatsApp’s render as push-to-talk notes, capped at 60 seconds).
Phone calls: the voice-call plugin
The @openclaw/voice-call plugin gives your agent an actual phone presence: “place outbound and accept inbound voice calls via Twilio, Telnyx, or Plivo, with optional realtime voice and streaming transcription.” You bring a provider account and an E.164 number; install is openclaw plugins install @openclaw/voice-call plus a gateway restart, and config lives under plugins.entries."voice-call".config: provider, from-number, credentials, and a webhook server (port 3334, /voice/webhook by default) that must be publicly reachable, via a real URL, a tunnel, or the built-in openclaw voicecall expose Tailscale toggle.
One thing to know if your install is not on the latest OpenClaw release: use the install command exactly as printed above. It picks the newest build of the plugin that matches the OpenClaw you are running. If you see a message about a required OpenClaw version instead, the command was a different form that insists on the plugin’s latest build, which can ask for a newer OpenClaw than you are running.
Two pipeline modes, mutually exclusive: streaming (turn-based: the provider streams caller audio to a transcription service, and the agent replies through TTS; Twilio only for the streaming leg) and realtime (full-duplex conversation via Google Gemini Live or OpenAI voice models; Twilio and Telnyx). Inbound is off by default, with policy options disabled, allowlist, pairing, or open, and sane defaults bound the blast radius: one concurrent outbound call, five minutes max per call unless you raise them. The agent gets a voice_call tool (initiate, continue, speak, DTMF, end), and you get a CLI with a smoke test and a latency report. Costs are the provider’s, not OpenClaw’s: expect a few dollars a month for the number plus per-minute call and speech-API rates, priced on Twilio’s (or your provider’s) sheet, not in OpenClaw’s docs.
WhatsApp calling: the third thing
Newer and narrower: with channels.whatsapp.actions.calls, the MeowCaller component, and telephony TTS configured, a WhatsApp-connected agent “can now call the requester and speak a short task-completion or urgent message” (added in 2026.7.1). It’s outbound notification-by-voice inside WhatsApp, with no phone number rental, not a general phone line.
Choosing between them
Voice notes cover the daily “hands are full, talking is easier” case, cost nothing beyond transcription tokens, and take minutes to set up on a channel you already run. The phone plugin earns its setup when the other party is a phone: the agent making a reservation call, an alert line that rings you, a number relatives can actually dial. It’s also the piece with the most operational surface (a public webhook, a telephony account, per-minute billing), so treat it as the advanced tier, and start with provider: "mock" and the smoke test before pointing a real number at your agent.