Skip to content

Telnyx inbound calls reach webhook but are never answered in voice-call plugin #58231

Description

@KonsultDigital

Hi — I’m testing the bundled @openclaw/voice-call plugin with Telnyx and could use a sanity check on whether inbound answering is currently supported in stable, or whether I’m missing a required Telnyx/OpenClaw setting.

Environment

  • OpenClaw version: 2026.3.28 initially, then updated after testing
  • Install type: package install
  • Provider: telnyx
  • Public webhook exposed via:
    • Cloudflare DNS
    • nginx reverse proxy
    • Hookdeck as ingress relay
  • Public webhook URL:
    • https://konnie.konsult.digital/voice/webhook

What’s working

I verified the transport path end-to-end:

  • Telnyx sends webhook events to Hookdeck
  • Hookdeck forwards to OpenClaw
  • OpenClaw returns 200
  • Public GET to webhook returns 405 Method Not Allowed
  • Manual POST to webhook returns 200 OK

I also verified real Telnyx events in Hookdeck, including:

  • call.initiated
  • call.hangup

So the webhook path itself appears healthy.

OpenClaw config shape

Configured under:

plugins.entries.voice-call.config

Relevant fields used:

{
  "enabled": true,
  "provider": "telnyx",
  "fromNumber": "+61...",
  "toNumber": "+61...",
  "inboundPolicy": "open",
  "publicUrl": "https://konnie.konsult.digital/voice/webhook",
  "webhookSecurity": {
    "allowedHosts": ["konnie.konsult.digital"]
  },
  "serve": {
    "bind": "127.0.0.1",
    "port": 3336,
    "path": "/voice/webhook"
  },
  "telnyx": {
    "apiKey": "[redacted]",
    "connectionId": "[redacted]",
    "publicKey": "[redacted]"
  }
}

I also tested earlier with skipSignatureVerification: true, before switching to the Telnyx public key.

Telnyx setup

  • Using a Voice API Application
  • Number is assigned to that application
  • Webhook API version is v2
  • Hookdeck preserves Telnyx signature headers
  • Hookdeck destination forwards successfully to OpenClaw

Actual problem

When calling the Telnyx number:

  • the phone rings
  • Hookdeck shows call.initiated
  • OpenClaw responds 200
  • but the call is never answered
  • later Hookdeck shows call.hangup

OpenClaw also creates the ~/.openclaw/voice-calls/ directory, but no calls.jsonl file is written.

Additional debugging

I inspected the bundled runtime code and found the Telnyx provider normalizes these events:

  • call.initiated
  • call.ringing
  • call.answered
  • call.bridged
  • call.transcription
  • call.hangup
  • call.dtmf.received

I also found Telnyx provider methods for:

  • outbound call initiation
  • hangup
  • speak
  • transcription_start
  • transcription_stop

But I could not find a Telnyx provider method that issues an explicit answer command such as /actions/answer.

That makes me wonder whether inbound Telnyx answering is currently incomplete in this build, even though inbound events are parsed.

Question

Is inbound answering for Telnyx Call Control v2 currently expected to work in the bundled voice-call plugin?

If yes, what additional condition is required for OpenClaw to actually answer the inbound call.initiated event?

If no, is this a known limitation/regression?

Repro summary

  1. Enable bundled voice-call plugin
  2. Configure provider: "telnyx"
  3. Expose webhook publicly
  4. Set inboundPolicy: "open"
  5. Point Telnyx → Hookdeck → OpenClaw webhook
  6. Call the Telnyx number
  7. Observe:
    • call.initiated webhook received
    • HTTP 200
    • no answer action occurs
    • eventual call.hangup

Happy to test a patch or provide more redacted payload details if helpful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingchannel: voice-callChannel integration: voice-call

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions