Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Voice interface using Telnyx Call Control API. Answer phone calls with AI, function calling, and natural conversation. Use for hands-free assistant access, phone-based reminders, or voice-controlled tools. Requires Node.js and Telnyx API key.
Voice interface using Telnyx Call Control API. Answer phone calls with AI, function calling, and natural conversation. Use for hands-free assistant access, phone-based reminders, or voice-controlled tools. Requires Node.js and Telnyx API key.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Voice interface for OpenClaw using Telnyx Call Control API. Call via SIP and have natural conversations with your AI assistant.
Your Phone (SIP) β Telnyx Call Control β Webhooks β This Server β Commands back β β STT/TTS/Media LLM + Tool Execution This is not WebRTC β it's server-side SIP call handling. Telnyx handles all audio; we just receive webhooks and send commands.
cd skills/sip-voice-call-control npm install
cp .env.example .env Edit .env: TELNYX_API_KEY=KEY_your_api_key_here
npm run start Console shows: ποΈ Assistant Voice Server ready on port 3000 π Dial: sip:openclaw@yourconnection.sip.telnyx.com
When setting up for a user, agents should:
Ask for: Telnyx API Key (required) Get from: https://portal.telnyx.com/#/app/auth/v2 Needs Voice API + Inference permissions TTS Voice (optional) Telnyx.NaturalHD.astra β Female, warm and clear (default, recommended) Telnyx.NaturalHD.atlas β Male, deep and authoritative Polly.Amy-Neural β British female Polly.Brian-Neural β British male Polly.Joanna-Neural β American female Polly.Matthew-Neural β American male Azure.en-US-JennyNeural β American female Azure.en-GB-RyanNeural β British male See .env.example for full list Voice Model (optional) Qwen/Qwen3-235B-A22B β Best for function calling (default) meta-llama/Meta-Llama-3.1-8B-Instruct β Fastest meta-llama/Llama-3.3-70B-Instruct β Balanced Personalization (assistant name, user name, timezone) is pulled automatically from workspace files (IDENTITY.md, USER.md).
cat > .env << 'EOF' TELNYX_API_KEY=<user_api_key> VOICE_MODEL=Qwen/Qwen3-235B-A22B TTS_VOICE=Telnyx.NaturalHD.astra EOF
The server must run persistently to receive calls. Use nohup to keep it alive: cd /path/to/sip-voice-call-control nohup npm run start > sip-voice-call-control.log 2>&1 & Or from an agent: // Use nohup to keep process alive after session ends exec({ command: "cd /path/to/sip-voice-call-control && nohup npm run start > sip-voice-call-control.log 2>&1 &", background: true }) Important: Without nohup, the process will die when the parent session ends. Always use nohup or a process manager for production. To check if running: ps aux | grep "tsx.*dev" | grep -v grep To stop: pkill -f "tsx.*dev.ts" To view logs: tail -f /path/to/sip-voice-call-control/sip-voice-call-control.log
Poll the process logs and give the user the SIP dial-in: π Dial: sip:openclaw@<connection>.sip.telnyx.com
VariableRequiredDefaultDescriptionTELNYX_API_KEYYesβTelnyx API keyVOICE_MODELNoQwen/Qwen3-235B-A22BModel for inferenceTTS_VOICENoPolly.Amy-NeuralText-to-speech voicePORTNo3000Server portENABLE_TUNNELNotrueCreate Cloudflare tunnelWORKSPACE_DIRNo~/clawdFor memory search tool
ToolTrigger PhrasesWhat It Doeslist_cron_jobs"what reminders", "my schedule", "cron jobs"Lists scheduled tasksadd_reminder"remind me", "set a reminder"Creates new reminderremove_cron_job"delete", "cancel" + job nameRemoves a scheduled taskget_weather"weather", "temperature", "forecast"Gets current weathersearch_memory"what have we been working on", "projects"Searches workspace files
Low-latency β 500ms-1.5s response time with enable_thinking: false Barge-in β Interrupt the assistant anytime by speaking Function calling β Native tool support with Qwen Auto-setup β Cloudflare tunnel and Call Control app created automatically Personalization β Reads IDENTITY.md and USER.md for context
No response after speaking: Check Telnyx API key has Voice API + Inference permissions Verify webhook URL is reachable (tunnel must be active) Slow responses (>3s): Ensure using function-calling branch (not main) Check model availability on your Telnyx account Tool not executing: Ensure openclaw CLI is in PATH Check WORKSPACE_DIR is set correctly Port already in use: Kill existing server: pkill -f "tsx.*dev.ts" Or change PORT in .env
Telnyx Call Control: https://developers.telnyx.com/docs/voice/call-control Telnyx Inference: https://developers.telnyx.com/docs/inference See ARCHITECTURE.md for technical details
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.