Voice Call

Start voice calls via the OpenClaw voice-call plugin. Supports Twilio, Telnyx, Plivo, and mock providers.

The Voice Call skill turns OpenClaw into a phone-capable AI agent. It's built as a Gateway plugin that integrates with telephony providers — Twilio, Telnyx, and Plivo — to make and receive actual phone calls. Your AI can call you to deliver urgent notifications, or you can call it for multi-turn voice conversations. The architecture is elegant: the plugin runs inside the Gateway process, handles WebSocket media streams for real-time audio, and connects to your configured STT/TTS pipeline. Outbound calls can be 'notify' mode (one-way message delivery) or 'conversation' mode (full back-and-forth). Inbound calls are controlled by policies you define — who can call, what happens when they do. Setup requires a publicly reachable webhook URL, which you can achieve via ngrok, Tailscale Funnel, or any reverse proxy. The plugin handles webhook security with host allowlists and trusted proxy IPs. A 'mock' provider exists for development and testing without burning phone credits. This is one of OpenClaw's most impressive capabilities — the moment your AI assistant picks up the phone and talks to you, it stops feeling like a chatbot and starts feeling like Jarvis. Best suited for: developers who want proactive AI notifications, hands-free interaction while driving, or building voice-first AI workflows.

Tags: voice, phone, twilio, calls, communication

Category: Communication

Use Cases

  • Urgent notification calls — AI calls you when something important happens (server down, important email)
  • Hands-free interaction while driving — call your AI to check calendar, send messages
  • Morning briefing calls — scheduled daily call with weather, calendar, and news summary
  • Two-factor confirmation — AI calls to verify before executing sensitive operations
  • Customer support prototyping — test voice AI flows before building production systems

Tips

  • Start with the 'mock' provider to verify your config before connecting a real telephony account
  • Use Tailscale Funnel for the webhook URL if you're already on Tailscale — no ngrok needed
  • Set outbound.defaultMode to 'notify' for one-shot alerts, 'conversation' for interactive calls
  • Pair with the sag (ElevenLabs) TTS skill for natural-sounding voices instead of default TTS
  • Configure webhookSecurity.allowedHosts to lock down which domains can trigger your webhook
  • Use Telnyx for lower per-minute costs; use Twilio for better documentation and ecosystem

Known Issues & Gotchas

  • Requires a publicly reachable webhook URL — won't work behind NAT without ngrok/Tailscale Funnel
  • Twilio phone numbers can get flagged/banned if used for unsolicited calls — verify your use case
  • WebSocket media streams require stable, low-latency connections; high-latency networks cause audio glitches
  • Each provider has different auth requirements — Twilio needs AccountSID + AuthToken, Telnyx needs API key + Connection ID
  • The plugin runs inside the Gateway process — a Gateway restart drops any active calls
  • Mock provider is dev-only and produces no actual audio; don't confuse working mock with working telephony

Alternatives

  • Vapi
  • ClawdTalk (Telnyx)
  • Agentic Calling (Twilio)
  • Bland.ai

Community Feedback

Been experimenting with OpenClaw recently and tried wiring it into a voice agent to see how it behaves in a real call flow. The latency is surprisingly good with Telnyx.

— Reddit r/AIAgentsStack

The voice call plugin is cool but the Twilio integration was removed for a while because numbers kept getting banned. Make sure your use case won't trip anti-spam.

— Hacker News

Unfortunately, the Twilio integration was removed due to numbers getting banned. Current voice capabilities are through the plugin system with multiple provider options.

— AnswerOverflow (Discord)

Drop in one skill file, tell your OpenClaw 'I want to call you on the phone,' and it walks you through everything — Deepgram account, Twilio number, the whole setup.

— Deepgram Blog

Configuration Examples

Twilio provider setup

{
  "plugins": {
    "entries": {
      "voice-call": {
        "enabled": true,
        "config": {
          "provider": "twilio",
          "fromNumber": "+15550001234",
          "toNumber": "+15550005678",
          "twilio": {
            "accountSid": "ACxxxxxxxx",
            "authToken": "your-auth-token"
          },
          "serve": { "port": 3334, "path": "/voice/webhook" },
          "outbound": { "defaultMode": "notify" }
        }
      }
    }
  }
}

Telnyx with Tailscale Funnel

{
  "provider": "telnyx",
  "telnyx": {
    "apiKey": "KEY...",
    "connectionId": "..."
  },
  "tailscale": {
    "mode": "funnel",
    "path": "/voice/webhook"
  },
  "outbound": { "defaultMode": "conversation" }
}

Installation

# Enable voice-call plugin in openclaw.json

Source: bundled