{
  "title": "Example: http://[fdaa:x:x:x:x::x]:3000",
  "content": "bash theme={null}\nfly ssh console -a my-openclaw\njson theme={null}\n{\n  \"plugins\": {\n    \"entries\": {\n      \"voice-call\": {\n        \"enabled\": true,\n        \"config\": {\n          \"provider\": \"twilio\",\n          \"tunnel\": { \"provider\": \"ngrok\" },\n          \"webhookSecurity\": {\n            \"allowedHosts\": [\"example.ngrok.app\"]\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nThe ngrok tunnel runs inside the container and provides a public webhook URL without exposing the Fly app itself. Set `webhookSecurity.allowedHosts` to the public tunnel hostname so forwarded host headers are accepted.\n\n### Security benefits\n\n| Aspect            | Public       | Private    |\n| ----------------- | ------------ | ---------- |\n| Internet scanners | Discoverable | Hidden     |\n| Direct attacks    | Possible     | Blocked    |\n| Control UI access | Browser      | Proxy/VPN  |\n| Webhook delivery  | Direct       | Via tunnel |\n\n* Fly.io uses **x86 architecture** (not ARM)\n* The Dockerfile is compatible with both architectures\n* For WhatsApp/Telegram onboarding, use `fly ssh console`\n* Persistent data lives on the volume at `/data`\n* Signal requires Java + signal-cli; use a custom image and keep memory at 2GB+.\n\nWith the recommended config (`shared-cpu-2x`, 2GB RAM):\n\n* \\~\\$10-15/month depending on usage\n* Free tier includes some allowance\n\nSee [Fly.io pricing](https://fly.io/docs/about/pricing/) for details.",
  "code_samples": [
    {
      "code": "**Option 3: SSH only**",
      "language": "unknown"
    },
    {
      "code": "### Webhooks with private deployment\n\nIf you need webhook callbacks (Twilio, Telnyx, etc.) without public exposure:\n\n1. **ngrok tunnel** - Run ngrok inside the container or as a sidecar\n2. **Tailscale Funnel** - Expose specific paths via Tailscale\n3. **Outbound-only** - Some providers (Twilio) work fine for outbound calls without webhooks\n\nExample voice-call config with ngrok:",
      "language": "unknown"
    }
  ],
  "headings": [
    {
      "level": "h3",
      "text": "Webhooks with private deployment",
      "id": "webhooks-with-private-deployment"
    },
    {
      "level": "h3",
      "text": "Security benefits",
      "id": "security-benefits"
    },
    {
      "level": "h2",
      "text": "Notes",
      "id": "notes"
    },
    {
      "level": "h2",
      "text": "Cost",
      "id": "cost"
    }
  ],
  "url": "llms-txt#example:-http://[fdaa:x:x:x:x::x]:3000",
  "links": []
}