Back to Openclaw

Voicecall

docs/cli/voicecall.md

2026.5.51.9 KB
Original Source

openclaw voicecall

voicecall is a plugin-provided command. It only appears if the voice-call plugin is installed and enabled.

When the Gateway is running, operational commands (call, start, continue, speak, dtmf, end, and status) are sent to that Gateway's voice-call runtime. If no Gateway is reachable, they fall back to a standalone CLI runtime.

Primary doc:

Common commands

bash
openclaw voicecall setup
openclaw voicecall smoke
openclaw voicecall status --json
openclaw voicecall status --call-id <id>
openclaw voicecall call --to "+15555550123" --message "Hello" --mode notify
openclaw voicecall continue --call-id <id> --message "Any questions?"
openclaw voicecall dtmf --call-id <id> --digits "ww123456#"
openclaw voicecall end --call-id <id>

setup prints human-readable readiness checks by default. Use --json for scripts:

bash
openclaw voicecall setup --json

status prints active calls as JSON by default. Pass --call-id <id> to inspect one call.

For external providers (twilio, telnyx, plivo), setup must resolve a public webhook URL from publicUrl, a tunnel, or Tailscale exposure. A loopback/private serve fallback is rejected because carriers cannot reach it.

smoke runs the same readiness checks. It will not place a real phone call unless both --to and --yes are present:

bash
openclaw voicecall smoke --to "+15555550123"        # dry run
openclaw voicecall smoke --to "+15555550123" --yes  # live notify call

Exposing webhooks (Tailscale)

bash
openclaw voicecall expose --mode serve
openclaw voicecall expose --mode funnel
openclaw voicecall expose --mode off

Security note: only expose the webhook endpoint to networks you trust. Prefer Tailscale Serve over Funnel when possible.