Skip to main content

openclaw voicecall

voicecall is a plugin-provided command. It only appears when the voice-call plugin is installed and enabled. When the Gateway is running, operational commands (call, start, continue, speak, dtmf, end, status) route to that Gateway’s voice-call runtime. If no Gateway is reachable, they fall back to a standalone CLI runtime.

Subcommands

Setup and smoke

setup

Prints human-readable readiness checks by default. Pass --json for scripts.

smoke

Runs the same readiness checks. Places a real phone call only when both --to and --yes are present.
For external providers (plivo, telnyx, twilio), setup and smoke require a public webhook URL from publicUrl, a tunnel, or Tailscale exposure. A loopback or private serve fallback is rejected because carriers cannot reach it.

Call lifecycle

call

Initiate an outbound voice call.

start

Alias for call with a different default flag shape.

continue

Speak a message and wait for a response.

speak

Speak a message without waiting for a response.

dtmf

Send DTMF digits to an active call.

end

Hang up an active call.

status

Inspect active calls.

Logs and metrics

tail

Tail the voice-call JSONL log. Prints the last --since lines on start, then streams new lines as they are written.

latency

Summarize turn-latency and listen-wait metrics from calls.jsonl. Output is JSON with recordsScanned, turnLatency, and listenWait summaries.

Exposing webhooks

expose

Enable, disable, or change the Tailscale serve/funnel configuration for the voice webhook.
Only expose the webhook endpoint to networks you trust. Prefer Tailscale Serve over Funnel when possible.