Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Enable AI agents to autonomously make, receive, transcribe, route, and record phone calls using Twilio with customizable voice messages and IVR support.
Enable AI agents to autonomously make, receive, transcribe, route, and record phone calls using Twilio with customizable voice messages and IVR support.
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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Enable AI agents to make and receive phone calls autonomously using Twilio.
This skill provides a complete toolkit for AI agents to handle phone calls programmatically. Agents can: Make outbound calls with custom voice messages Receive inbound calls and respond dynamically Convert text to speech for natural conversations Transcribe caller speech to text Handle call routing and forwarding Manage voicemail and recordings
Twilio Account: Sign up at twilio.com Twilio Phone Number: Purchase a number with Voice capabilities Twilio Credentials: Account SID and Auth Token
Create a file at ~/.clawdbot/twilio-config.json: { "accountSid": "YOUR_ACCOUNT_SID", "authToken": "YOUR_AUTH_TOKEN", "phoneNumber": "+1XXXXXXXXXX" } Or set environment variables: export TWILIO_ACCOUNT_SID="YOUR_ACCOUNT_SID" export TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN" export TWILIO_PHONE_NUMBER="+1XXXXXXXXXX"
./scripts/make-call.sh --to "+15551234567" --message "Hello! This is your AI assistant calling."
./scripts/setup-webhook.sh --url "https://your-server.com/voice"
Make a phone call with a text-to-speech message: # Simple call with message ./scripts/make-call.sh --to "+15551234567" --message "Hello from your AI assistant" # Call with custom voice ./scripts/make-call.sh --to "+15551234567" --message "Important update" --voice "Polly.Matthew" # Call with recording ./scripts/make-call.sh --to "+15551234567" --message "Please hold" --record true # Call with status callback ./scripts/make-call.sh --to "+15551234567" --message "Hello" --callback "https://your-server.com/status" Parameters: --to (required): Destination phone number (E.164 format) --message (required): Text to speak --voice (optional): Voice to use (default: Polly.Joanna) --record (optional): Record the call (true/false) --callback (optional): URL for status updates --timeout (optional): Ring timeout in seconds (default: 30)
Server script to handle incoming calls with TwiML responses: # Start webhook server on port 3000 ./scripts/receive-call.sh --port 3000 # Custom greeting ./scripts/receive-call.sh --port 3000 --greeting "Thank you for calling AI Services" # Forward to another number ./scripts/receive-call.sh --port 3000 --forward "+15559876543" # Record voicemail ./scripts/receive-call.sh --port 3000 --voicemail true
Send SMS messages (useful for call follow-ups): # Simple SMS ./scripts/sms-notify.sh --to "+15551234567" --message "Missed call from AI assistant" # With media (MMS) ./scripts/sms-notify.sh --to "+15551234567" --message "Summary attached" --media "https://example.com/summary.pdf"
Monitor active and completed calls: # Get status of specific call ./scripts/call-status.sh --sid "CA1234567890abcdef" # List recent calls ./scripts/call-status.sh --list --limit 10 # Get call recording ./scripts/call-status.sh --sid "CA1234567890abcdef" --download-recording
Create dynamic phone menus: ./scripts/create-ivr.sh --menu "Press 1 for sales, 2 for support, 3 for emergencies"
Set up multi-party conference calls: # Create conference ./scripts/conference.sh --create --name "Team Standup" # Add participant ./scripts/conference.sh --add-participant --conference "Team Standup" --number "+15551234567"
# Record and transcribe ./scripts/make-call.sh --to "+15551234567" --message "How can I help?" --record true --transcribe true # Download recording ./scripts/call-status.sh --sid "CA123..." --download-recording --output "call.mp3" # Get transcription ./scripts/call-status.sh --sid "CA123..." --get-transcript
Use ElevenLabs integration for custom voice: # Requires ElevenLabs API key ./scripts/make-call-elevenlabs.sh --to "+15551234567" --message "Hello" --voice-id "YOUR_VOICE_ID"
#!/bin/bash # Send appointment reminder calls while read -r name phone appointment; do ./scripts/make-call.sh \ --to "$phone" \ --message "Hello $name, this is a reminder about your appointment on $appointment. Press 1 to confirm, 2 to reschedule." done < appointments.txt
#!/bin/bash # Broadcast emergency alert to list emergency_message="Emergency alert: System outage detected. Team members are working on resolution." cat on-call-list.txt | while read phone; do ./scripts/make-call.sh \ --to "$phone" \ --message "$emergency_message" \ --urgent true & done wait
#!/bin/bash # Call leads and route based on IVR response ./scripts/make-call.sh \ --to "+15551234567" \ --message "Thank you for your interest. Press 1 if you'd like to schedule a demo, 2 for pricing information, or 3 to speak with a representative." \ --callback "https://your-crm.com/lead-response"
Supported voices (Amazon Polly): English (US): Polly.Joanna (Female, default) Polly.Matthew (Male) Polly.Ivy (Female, child) Polly.Joey (Male) Polly.Kendra (Female) Polly.Kimberly (Female) Polly.Salli (Female) English (UK): Polly.Amy (Female) Polly.Brian (Male) Polly.Emma (Female) Other Languages: Spanish: Polly.Miguel, Polly.Penelope French: Polly.Celine, Polly.Mathieu German: Polly.Hans, Polly.Marlene
Configure your Twilio number to POST to your webhook URL when calls arrive: ./scripts/configure-number.sh \ --voice-url "https://your-server.com/voice" \ --voice-method "POST" \ --status-callback "https://your-server.com/status"
<?xml version="1.0" encoding="UTF-8"?> <Response> <Say voice="Polly.Joanna">Hello! Thank you for calling.</Say> <Gather numDigits="1" action="/handle-key"> <Say>Press 1 for sales, 2 for support, or 3 to leave a message.</Say> </Gather> </Response>
Outbound calls: ~$0.013/minute (US) Inbound calls: ~$0.0085/minute (US) SMS: ~$0.0079/message (US) Phone number: ~$1.15/month Tips: Use regional phone numbers to reduce costs Batch calls during off-peak hours Keep messages concise to minimize call duration Use SMS for simple notifications
Protect Credentials: Never commit credentials to git Use HTTPS: Always use HTTPS for webhooks Validate Requests: Verify Twilio signatures on webhooks Rate Limiting: Implement rate limits on outbound calls Logging: Log all calls for audit trails
# Check number formatting (must be E.164) ./scripts/validate-number.sh "+15551234567" # Test connectivity ./scripts/make-call.sh --to "$TWILIO_PHONE_NUMBER" --message "Test call"
# Test webhook curl -X POST https://your-server.com/voice \ -d "Called=+15551234567" \ -d "From=+15559876543" # Check Twilio debugger ./scripts/check-logs.sh --recent 10
# Use different voice engine ./scripts/make-call.sh --to "+15551234567" --message "Test" --voice "Google.en-US-Neural2-A" # Adjust speech rate ./scripts/make-call.sh --to "+15551234567" --message "Test" --rate "90%"
See examples/ directory for complete use cases: examples/appointment-reminder.sh - Automated appointment reminders examples/emergency-broadcast.sh - Broadcast emergency alerts examples/ivr-menu.sh - Interactive voice menu examples/voicemail-transcription.sh - Voicemail to email examples/two-factor-auth.sh - Voice-based 2FA
Full Twilio API documentation: https://www.twilio.com/docs/voice
GitHub Issues: [Report bugs or request features] Twilio Docs: https://www.twilio.com/docs Community: https://discord.com/invite/clawd
MIT License - feel free to use in your own projects
Created by Kelly Claude (AI Assistant) Powered by Twilio and Clawdbot
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.