mock (dev, no network), plivo (Voice API + XML transfer +
GetInput speech), telnyx (Call Control v2), twilio (Programmable Voice +
Media Streams).
The Voice Call plugin runs inside the Gateway process. If you use a
remote Gateway, install and configure the plugin on the machine running the
Gateway. Installation applies to a running Gateway automatically; if it is
offline, start it after configuration.
Quick start
1
Install the plugin
- From npm
- From a local folder (dev)
2
Configure provider and webhook
Set config under
plugins.entries.voice-call.config (see
Configuration). At minimum: provider, provider
credentials, fromNumber, and a publicly reachable webhook URL. With
multiple agents, also set agentId to the agent that should own calls.For an inbound Twilio number, set its Voice webhook to the public Voice
Call webhook URL with method POST. Set the number-level Status
Callback to the same URL with ?type=status, also using POST, so
terminal inbound call statuses reach the plugin.3
Verify setup
streaming or realtime) is active.4
Smoke test
--yes to place a short outbound
notify call:Where each section moved
Every section of the single-page version now lives on this page or on one of the five child pages below. The anchors from the single-page version still resolve here.Voice call configuration
Voice call configuration — plugin config keys, the call owner, the full config reference table, and session scope.- Configuration
- Choose the call owner
- Config reference
- Provider exposure and security notes
- Streaming connection caps
- Legacy config migrations
- Session scope
Voice call realtime and streaming
Voice call realtime and streaming — full-duplex realtime voice, hangup detection, tool and consult policy, agent voice context, and Twilio Media Streams transcription.- Realtime voice conversations
- Hangup detection
- Tool policy
- Agent voice context
- Realtime provider examples
- Google Gemini Live
- OpenAI realtime example
- Streaming transcription
- Streaming provider examples
- OpenAI streaming example
- xAI
Voice call TTS and inbound calls
Voice call TTS and inbound calls — telephony text-to-speech, inbound policy and per-number routing, the spoken output contract, conversation startup, and the stale call reaper.- TTS for calls
- TTS examples
- Core TTS only
- Override to ElevenLabs (calls only)
- OpenAI model override (deep-merge)
- Inbound calls
- Per-number routing
- Spoken output contract
- Conversation startup behavior
- Twilio stream disconnect grace
- Stale call reaper
Voice call security and interfaces
Voice call security and interfaces — webhook signature and forwarding-header security, plus the CLI, agent tool, and Gateway RPC surfaces.- Webhook security
- webhookSecurity.allowedHosts
- webhookSecurity.trustForwardingHeaders
- webhookSecurity.trustedProxyIPs
- CLI
- Agent tool
- Gateway RPC
Voice call troubleshooting
Voice call troubleshooting — fixes for setup, webhook exposure, credentials, signature verification, Google Meet dial-in, and silent realtime calls.- Troubleshooting
- Call placement fails to save its initial record
- Setup fails webhook exposure
- Provider credentials fail
- Calls start but provider webhooks do not arrive
- Signature verification fails
- Google Meet Twilio joins fail
- Realtime call has no speech
Related
- Talk mode
- Text-to-speech
- Voice wake
- Google Meet plugin - Meet calls, including Twilio sessions delegated through Voice Call
openclaw voicecall- the plugin-provided CLI command, which appears only when this plugin is installed