openclaw/docs/plugins/voice-call.md
Peter Steinberger 54a986072f
docs(plugins): remove obsolete Gateway restart guidance (#146516)
* docs(plugins): remove obsolete Gateway restart guidance

* docs(plugins): simplify apply hints and update Session Share guidance
2026-09-12 16:48:13 -07:00

10 KiB

summary read_when title sidebarTitle
Place outbound and accept inbound voice calls via Twilio, Telnyx, or Plivo, with optional realtime voice and streaming transcription
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 call plugin Voice call

Voice calls for OpenClaw via a plugin: outbound notifications, multi-turn conversations, full-duplex realtime voice, streaming transcription, and inbound calls with allowlist policies.

Providers: 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

```bash openclaw plugins install @openclaw/voice-call ``` ```bash PLUGIN_SRC=./path/to/local/voice-call-plugin openclaw plugins install "$PLUGIN_SRC" cd "$PLUGIN_SRC" && pnpm install ```
Use the bare package to follow the current release tag. Pin an exact
version only when you need a reproducible install. Check the installation's
application result; see [Apply changes and inspect](/plugins/manage-plugins#apply-changes-and-inspect).
Set config under `plugins.entries.voice-call.config` (see [Configuration](/plugins/voice-call/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.
```bash openclaw voicecall setup openclaw voicecall setup --json ```
Checks plugin enablement, provider credentials, webhook exposure, agent
ownership, and that only one audio mode (`streaming` or `realtime`) is active.
```bash openclaw voicecall smoke openclaw voicecall smoke --to "+15555550123" ```
Both are dry runs by default. Add `--yes` to place a short outbound
notify call:

```bash
openclaw voicecall smoke --to "+15555550123" --yes
```
For Twilio, Telnyx, and Plivo, setup must resolve to a **public webhook URL**. If `publicUrl`, the tunnel URL, the Tailscale URL, or the serve fallback resolves to loopback or private network space, setup fails instead of starting a provider that cannot receive carrier webhooks.

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.

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.