让 AI 智能体能够使用 Twilio 自主拨打电话和接听电话。
此技能为 AI 智能体提供了一套完整的工具包,使其能够以编程方式处理电话呼叫。智能体可以:
- 使用自定义语音消息拨打外呼电话
- 接听来电并动态响应
- 将文本转换为语音,实现自然对话
- 将呼叫者语音转录为文本
- 处理呼叫路由和转接
- 管理语音邮件和录音
在 ~/.clawdbot/twilio-config.json 创建文件:
{
"accountSid": "你的账户SID",
"authToken": "你的认证令牌",
"phoneNumber": "+1XXXXXXXXXX"
}
或者设置环境变量:
export TWILIO_ACCOUNT_SID="你的账户SID"
export TWILIO_AUTH_TOKEN="你的认证令牌"
export TWILIO_PHONE_NUMBER="+1XXXXXXXXXX"
./scripts/make-call.sh --to "+15551234567" --message "你好!这是你的 AI 助手来电。"
./scripts/setup-webhook.sh --url "https://你的服务器.com/voice"
make-call.sh - 拨出电话使用文本转语音消息拨打电话:
# 带消息的简单呼叫
./scripts/make-call.sh --to "+15551234567" --message "你好,我是你的 AI 助手"
# 使用自定义语音的呼叫
./scripts/make-call.sh --to "+15551234567" --message "重要更新" --voice "Polly.Matthew"
# 带录音的呼叫
./scripts/make-call.sh --to "+15551234567" --message "请稍候" --record true
# 带状态回调的呼叫
./scripts/make-call.sh --to "+15551234567" --message "你好" --callback "https://你的服务器.com/status"
参数:
- --to (必需):目标电话号码 (E.164 格式)
- --message (必需):要朗读的文本
- --voice (可选):使用的语音 (默认:Polly.Joanna)
- --record (可选):是否录音 (true/false)
- --callback (可选):状态更新回调 URL
- --timeout (可选):振铃超时时间 (秒,默认:30)
receive-call.sh - 处理来电用于处理来电并返回 TwiML 响应的服务器脚本:
# 在 3000 端口启动 webhook 服务器
./scripts/receive-call.sh --port 3000
# 自定义问候语
./scripts/receive-call.sh --port 3000 --greeting "感谢致电 AI 服务"
# 转接到另一个号码
./scripts/receive-call.sh --port 3000 --forward "+15559876543"
# 录制语音邮件
./scripts/receive-call.sh --port 3000 --voicemail true
sms-notify.sh - 发送短信通知发送短信消息 (适用于呼叫跟进):
# 简单短信
./scripts/sms-notify.sh --to "+15551234567" --message "来自 AI 助手的未接来电"
# 带媒体 (彩信)
./scripts/sms-notify.sh --to "+15551234567" --message "摘要已附上" --media "https://example.com/summary.pdf"
call-status.sh - 检查呼叫状态监控活跃和已完成的呼叫:
# 获取特定呼叫的状态
./scripts/call-status.sh --sid "CA1234567890abcdef"
# 列出最近的呼叫
./scripts/call-status.sh --list --limit 10
# 获取呼叫录音
./scripts/call-status.sh --sid "CA1234567890abcdef" --download-recording
创建动态电话菜单:
./scripts/create-ivr.sh --menu "按 1 联系销售,按 2 联系支持,按 3 处理紧急情况"
设置多方电话会议:
# 创建会议
./scripts/conference.sh --create --name "团队站会"
# 添加参与者
./scripts/conference.sh --add-participant --conference "团队站会" --number "+15551234567"
# 录音并转录
./scripts/make-call.sh --to "+15551234567" --message "有什么可以帮您?" --record true --transcribe true
# 下载录音
./scripts/call-status.sh --sid "CA123..." --download-recording --output "call.mp3"
# 获取转录文本
./scripts/call-status.sh --sid "CA123..." --get-transcript
使用 ElevenLabs 集成实现自定义语音:
# 需要 ElevenLabs API 密钥
./scripts/make-call-elevenlabs.sh --to "+15551234567" --message "你好" --voice-id "你的语音ID"
#!/bin/bash
# 发送预约提醒电话
while read -r name phone appointment; do
./scripts/make-call.sh \
--to "$phone" \
--message "你好 $name,这是关于您在 $appointment 预约的提醒。按 1 确认,按 2 重新安排。"
done < appointments.txt
#!/bin/bash
# 向列表广播紧急警报
emergency_message="紧急警报:检测到系统故障。团队成员正在处理。"
cat on-call-list.txt | while read phone; do
./scripts/make-call.sh \
--to "$phone" \
--message "$emergency_message" \
--urgent true &
done
wait
#!/bin/bash
# 呼叫潜在客户并根据 IVR 响应进行路由
./scripts/make-call.sh \
--to "+15551234567" \
--message "感谢您的关注。如需预约演示请按 1,获取价格信息请按 2,联系代表请按 3。" \
--callback "https://你的客户关系管理系统.com/lead-response"
支持的语音 (Amazon Polly):
英语 (美国):
- Polly.Joanna (女声,默认)
- Polly.Matthew (男声)
- Polly.Ivy (女声,童声)
- Polly.Joey (男声)
- Polly.Kendra (女声)
- Polly.Kimberly (女声)
- Polly.Salli (女声)
英语 (英国):
- Polly.Amy (女声)
- Polly.Brian (男声)
- Polly.Emma (女声)
其他语言:
- 西班牙语:Polly.Miguel, Polly.Penelope
- 法语:Polly.Celine, Polly.Mathieu
- 德语:Polly.Hans, Polly.Marlene
配置你的 Twilio 号码,使其在来电时 POST 到你的 webhook URL:
./scripts/configure-number.sh \
--voice-url "https://你的服务器.com/voice" \
--voice-method "POST" \
--status-callback "https://你的服务器.com/status"
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say voice="Polly.Joanna">你好!感谢您的来电。</Say>
<Gather numDigits="1" action="/handle-key">
<Say>按 1 联系销售,按 2 联系支持,按 3 留言。</Say>
</Gather>
</Response>
提示:
- 使用区域电话号码以降低成本
- 在非高峰时段批量呼叫
- 保持消息简洁以缩短通话时长
- 对于简单通知使用短信
# 检查号码格式 (必须是 E.164)
./scripts/validate-number.sh "+15551234567"
# 测试连通性
./scripts/make-call.sh --to "$TWILIO_PHONE_NUMBER" --message "测试呼叫"
# 测试 webhook
curl -X POST https://你的服务器.com/voice \
-d "Called=+15551234567" \
-d "From=+15559876543"
# 检查 Twilio 调试器
./scripts/check-logs.sh --recent 10
# 使用不同的语音引擎
./scripts/make-call.sh --to "+15551234567" --message "测试" --voice "Google.en-US-Neural2-A"
# 调整语速
./scripts/make-call.sh --to "+15551234567" --message "测试" --rate "90%"
查看 examples/ 目录获取完整用例:
examples/appointment-reminder.sh - 自动化预约提醒examples/emergency-broadcast.sh - 广播紧急警报examples/ivr-menu.sh - 交互式语音菜单examples/voicemail-transcription.sh - 语音邮件转电子邮件examples/two-factor-auth.sh - 基于语音的双因素认证完整的 Twilio API 文档:https://www.twilio.com/docs/voice
MIT 许可证 - 可在你自己的项目中自由使用
由 Kelly Claude (AI 助手) 创建
由 Twilio 和 Clawdbot 提供支持