tools/voice-sip/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.
npx skillsauth add team-telnyx/telnyx-toolkit sip-voice-call-controlInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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:[email protected]
When setting up for a user, agents should:
Ask for:
Telnyx API Key (required)
TTS Voice (optional)
Telnyx.NaturalHD.astra — Female, warm and clear (default, recommended)Telnyx.NaturalHD.atlas — Male, deep and authoritativePolly.Amy-Neural — British femalePolly.Brian-Neural — British malePolly.Joanna-Neural — American femalePolly.Matthew-Neural — American maleAzure.en-US-JennyNeural — American femaleAzure.en-GB-RyanNeural — British male.env.example for full listVoice Model (optional)
Qwen/Qwen3-235B-A22B — Best for function calling (default)meta-llama/Meta-Llama-3.1-8B-Instruct — Fastestmeta-llama/Llama-3.3-70B-Instruct — BalancedPersonalization (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
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| TELNYX_API_KEY | Yes | — | Telnyx API key |
| VOICE_MODEL | No | Qwen/Qwen3-235B-A22B | Model for inference |
| TTS_VOICE | No | Polly.Amy-Neural | Text-to-speech voice |
| PORT | No | 3000 | Server port |
| ENABLE_TUNNEL | No | true | Create Cloudflare tunnel |
| WORKSPACE_DIR | No | ~/clawd | For memory search tool |
| Tool | Trigger Phrases | What It Does |
|------|-----------------|--------------|
| list_cron_jobs | "what reminders", "my schedule", "cron jobs" | Lists scheduled tasks |
| add_reminder | "remind me", "set a reminder" | Creates new reminder |
| remove_cron_job | "delete", "cancel" + job name | Removes a scheduled task |
| get_weather | "weather", "temperature", "forecast" | Gets current weather |
| search_memory | "what have we been working on", "projects" | Searches workspace files |
enable_thinking: falseIDENTITY.md and USER.md for contextNo response after speaking:
Slow responses (>3s):
function-calling branch (not main)Tool not executing:
openclaw CLI is in PATHWORKSPACE_DIR is set correctlyPort already in use:
pkill -f "tsx.*dev.ts"PORT in .envtools
Build cross-platform VoIP calling apps with React Native using Telnyx Voice SDK. High-level reactive API with automatic lifecycle management, CallKit/ConnectionService integration, and push notifications. Use for mobile VoIP apps with minimal setup.
tools
Build browser-based VoIP calling apps using Telnyx WebRTC JavaScript SDK. Covers authentication, voice calls, events, debugging, call quality metrics, and AI Agent integration. Use for web-based real-time communication.
tools
Build VoIP calling apps on iOS using Telnyx WebRTC SDK. Covers authentication, making/receiving calls, CallKit integration, PushKit/APNS push notifications, call quality metrics, and AI Agent integration. Use when implementing real-time voice communication on iOS.
tools
Build cross-platform VoIP calling apps with Flutter using Telnyx WebRTC SDK. Covers authentication, making/receiving calls, push notifications (FCM + APNS), call quality metrics, and AI Agent integration. Works on Android, iOS, and Web.