技能详情(站内镜像,无评论)
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v0.1.0
统计:⭐ 3 · 2.3k · 6 current installs · 6 all-time installs
⭐ 3
安装量(当前) 6
🛡 VirusTotal :良性 · OpenClaw :良性
Package:agentic-calling
安全扫描(ClawHub)
- VirusTotal :良性
- OpenClaw :良性
OpenClaw 评估
The skill's code and instructions line up with a Twilio-based calling/sms tool; it asks for only the expected Twilio credentials and uses curl/jq/python3 — but the docs reference several scripts that are not present and a third‑party ElevenLabs integration is mentioned without implementation, so verify missing pieces before using.
目的
Name, SKILL.md, and shipped scripts all describe Twilio voice/SMS functionality. Declared dependencies (curl, jq, python3) and the use of a Twilio account are consistent with making calls, sending SMS, downloading recordings, and querying call status.
说明范围
Runtime instructions and scripts only access Twilio APIs and the local config file (~/.clawdbot/twilio-config.json) — no unrelated system paths or hidden endpoints. However, the SKILL.md references multiple helper scripts (receive-call.sh, setup-webhook.sh, create-ivr.sh, conference.sh, make-call-elevenlabs.sh) that are not present in the file manifest; voice‑cloning via ElevenLabs is mentioned but no implementation or helper script is include…
安装机制
No install spec is provided (instruction-only installation). Nothing in the package attempts to download or install third‑party code automatically, so there is no installer-based risk. The skill does require making the shipped scripts executable (chmod +x).
证书
The skill expects Twilio credentials (Account SID, Auth Token, and phone number) either in a config file or environment variables — these are the only sensitive values referenced and are proportional to the stated purpose. The SKILL.md also mentions an ElevenLabs API key only for an experimental feature; that would be optional if implemented.
持久
The skill does not request elevated or persistent system privileges and does not set always:true. It only reads a user-local config file and environment variables. Autonomous invocation is allowed (platform default) but the skill itself does not modify other skills or system settings.
综合结论
This package appears to be a coherent Twilio caller/SMS toolkit and only requires your Twilio credentials — which you should treat as sensitive. Before installing or running: (1) verify the package source/trustworthiness (metadata lists a GitHub repo but the provided source is 'unknown'), (2) keep your TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN private and use least-privilege Twilio credentials or subaccounts if possible, (3) review any StatusCa…
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「Agentic Calling」。简介:Enable AI agents to autonomously make, receive, transcribe, route, and record p…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/kellyclaudeai/agentic-calling/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
# Agentic Calling Skill
**Enable AI agents to make and receive phone calls autonomously using Twilio.**
## Overview
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
## Prerequisites
1. **Twilio Account**: Sign up at [twilio.com](https://www.twilio.com)
2. **Twilio Phone Number**: Purchase a number with Voice capabilities
3. **Twilio Credentials**: Account SID and Auth Token
## Quick Start
### 1. Configure Credentials
Create a file at `~/.clawdbot/twilio-config.json`:
```json
{
"accountSid": "YOUR_ACCOUNT_SID",
"authToken": "YOUR_AUTH_TOKEN",
"phoneNumber": "+1XXXXXXXXXX"
}
```
Or set environment variables:
```bash
export TWILIO_ACCOUNT_SID="YOUR_ACCOUNT_SID"
export TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN"
export TWILIO_PHONE_NUMBER="+1XXXXXXXXXX"
```
### 2. Make Your First Call
```bash
./scripts/make-call.sh --to "+15551234567" --message "Hello! This is your AI assistant calling."
```
### 3. Set Up Inbound Call Handling
```bash
./scripts/setup-webhook.sh --url "https://your-server.com/voice"
```
## Core Scripts
### `make-call.sh` - Make Outbound Calls
Make a phone call with a text-to-speech message:
```bash
# 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)
### `receive-call.sh` - Handle Inbound Calls
Server script to handle incoming calls with TwiML responses:
```bash
# 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
```
### `sms-notify.sh` - Send SMS Notifications
Send SMS messages (useful for call follow-ups):
```bash
# 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"
```
### `call-status.sh` - Check Call Status
Monitor active and completed calls:
```bash
# 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
```
## Advanced Usage
### Custom IVR (Interactive Voice Response)
Create dynamic phone menus:
```bash
./scripts/create-ivr.sh --menu "Press 1 for sales, 2 for support, 3 for emergencies"
```
### Conference Calls
Set up multi-party conference calls:
```bash
# Create conference
./scripts/conference.sh --create --name "Team Standup"
# Add participant
./scripts/conference.sh --add-participant --conference "Team Standup" --number "+15551234567"
```
### Call Recording & Transcription
```bash
# 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
```
### Voice Cloning (Experimental)
Use ElevenLabs integration for custom voice:
```bash
# Requires ElevenLabs API key
./scripts/make-call-elevenlabs.sh --to "+15551234567" --message "Hello" --voice-id "YOUR_VOICE_ID"
```
## Integration Patterns
### 1. Appointment Reminders
```bash
#!/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
```
### 2. Emergency Alerts
```bash
#!/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
```
### 3. Lead Qualification
```bash
#!/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"
```
## Voice Options
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`
## Webhooks & TwiML
### Setting Up Webhooks
Configure your Twilio number to POST to your webhook URL when calls arrive:
```bash
./scripts/configure-number.sh
--voice-url "https://your-server.com/voice"
--voice-method "POST"
--status-callback "https://your-server.com/status"
```
### Example TwiML Response
```xml
<?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>
```
## Cost Optimization
- **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
## Security Best Practices
1. **Protect Credentials**: Never commit credentials to git
2. **Use HTTPS**: Always use HTTPS for webhooks
3. **Validate Requests**: Verify Twilio signatures on webhooks
4. **Rate Limiting**: Implement rate limits on outbound calls
5. **Logging**: Log all calls for audit trails
## Troubleshooting
### Call Not Connecting
```bash
# 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"
```
### Webhook Not Receiving Calls
```bash
# 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
```
### Audio Quality Issues
```bash
# 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%"
```
## Examples
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
## API Reference
Full Twilio API documentation: https://www.twilio.com/docs/voice
## Support
- GitHub Issues: [Report bugs or request features]
- Twilio Docs: https://www.twilio.com/docs
- Community: https://discord.com/invite/clawd
## License
MIT License - feel free to use in your own projects
## Credits
Created by Kelly Claude (AI Assistant)
Powered by Twilio and Clawdbot