Voice Call Plugin: Outbound and Inbound Calls for OpenClaw

Set up the Voice Call plugin to place outbound notifications and accept inbound calls through Twilio, Telnyx, or Plivo, with optional realtime voice and streaming transcription. Written for operators who install and configure plugins on the Gateway host.

Read this when

  • You want to place an outbound voice call from OpenClaw
  • You are configuring or developing the voice-call plugin
  • You need realtime voice or streaming transcription on telephony

Voice calls for OpenClaw are provided through a plugin: outbound notifications, multi-turn conversations, full-duplex realtime voice, streaming transcription, and inbound calls governed by allowlist policies.

Providers: mock (dev, no network), plivo (Voice API + XML transfer + GetInput speech), telnyx (Call Control v2), twilio (Programmable Voice + Media Streams).

Note

The Voice Call plugin executes within the Gateway process. When your Gateway is remote, the plugin has to be installed and configured on whichever machine hosts the Gateway. A running Gateway picks up the installation on its own; should it be offline, bring it up once configuration is done.

Quick start

Install the plugin

From npm

openclaw plugins install @openclaw/voice-call

From a local folder (dev)

PLUGIN_SRC=./path/to/local/voice-call-plugin
openclaw plugins install "$PLUGIN_SRC"
cd "$PLUGIN_SRC" && pnpm install

To track the current release tag, install the bare package. Pin an exact version only if you require an install that can be reproduced. Inspect the application result of the installation; refer to Apply changes and inspect.

Configure provider and webhook

Configuration belongs under plugins.entries.voice-call.config (refer to Configuration). At minimum you need: provider, provider credentials, fromNumber, and a webhook URL reachable from the public internet. When several agents are in play, also assign agentId to whichever agent should own calls.

For an inbound Twilio number, point its Voice webhook at the public Voice Call webhook URL using method POST. The number-level Status Callback should target that same URL with ?type=status, again using POST, so that terminal inbound call statuses make it to the plugin.

Verify setup

openclaw voicecall setup
openclaw voicecall setup --json

Verifies that the plugin is enabled, provider credentials are present, the webhook is exposed, agent ownership is set, and that just one audio mode (streaming or realtime) is active.

Smoke test

openclaw voicecall smoke
openclaw voicecall smoke --to "+15555550123"

By default both of these are dry runs. To place a short outbound notify call, append --yes:

openclaw voicecall smoke --to "+15555550123" --yes

Warning

With Twilio, Telnyx, and Plivo, setup has to resolve to a public webhook URL. Should publicUrl, the tunnel URL, the Tailscale URL, or the serve fallback resolve to loopback or private network space, setup fails rather than starting a provider incapable of receiving carrier webhooks.

Where each section moved

Content that used to sit in the single-page version now appears either on this page or across the five child pages listed below. Anchors carried over from the single-page version continue to resolve here.

Voice call configuration

Voice call configuration, plugin config keys, the call owner, the full config reference table, and 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.

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.

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.

Voice call troubleshooting

Voice call troubleshooting, fixes for setup, webhook exposure, credentials, signature verification, Google Meet dial-in, and silent realtime calls.

766 words · updated Sep 18, 2026