名称: dialpad
描述: 通过 Dialpad API 发送短信和拨打电话。支持单条/批量短信、TTS语音通话以及主叫号码选择。
主页: https://developers.dialpad.com/
通过 Dialpad API 发送短信和拨打电话。
| 号码 | 用途 | 格式 |
|---|---|---|
| (415) 520-1316 | 销售团队 | 销售场景的默认号码 |
| (415) 360-2954 | 工作/个人 | 工作场景的默认号码 |
| (415) 991-7155 | 仅支持短信 | 仅限短信(不支持语音) |
使用 --from <号码> 参数来指定显示为主叫号码的号码。
必需的环境变量:
DIALPAD_API_KEY=你的_api_密钥
可选(用于通话中的 ElevenLabs TTS):
ELEVENLABS_API_KEY=你的_elevenlabs_api_密钥
从 Dialpad API 设置 获取你的 Dialpad API 密钥。
# 基础短信
python3 send_sms.py --to "+14155551234" --message "来自 Clawdbot 的问候!"
# 从特定号码发送(例如,工作电话)
python3 send_sms.py --to "+14155551234" --message "你好!" --from "+14153602954"
# 批量短信(最多 10 个收件人)
python3 send_sms.py --to "+14155551234" "+14155555678" --message "群组通知"
# 基础通话(呼叫接收方 - 对方接听后可直接与你通话)
python3 make_call.py --to "+14155551234"
# 带文本转语音问候的通话(使用 Dialpad 的机器人 TTS)
python3 make_call.py --to "+14155551234" --text "你好!这是来自 ShapeScale 的电话。"
# 从特定号码发起带 TTS 的通话
python3 make_call.py --to "+14155551234" --from "+14153602954" --text "会议提醒"
# 使用自定义语音(需要 ELEVENLABS_API_KEY)
python3 make_call.py --to "+14155551234" --voice "Adam" --text "高级语音测试"
短信:
python3 send_sms.py --to "+14155551234" --message "你的消息内容"
语音通话:
python3 make_call.py --to "+14155551234" --text "可选的 TTS 消息"
| 语音 | 风格 | 备注 |
|---|---|---|
| Eric ⭐ | 男性,流畅,可信赖 | 低成本,可用! |
| Daniel | 男性,英式,沉稳 | 预算型 |
| Sarah | 女性,成熟 | 预算型 |
| River | 男性,中性 | 预算型 |
| Alice | 女性,清晰 | 预算型 |
| Brian | 男性,低沉 | 预算型 |
| Bill | 男性,睿智 | 预算型 |
| 语音 | 风格 | 备注 |
|---|---|---|
| Adam | 男性,深沉,清晰 | 最适合专业场景 |
| Antoni | 男性,温暖 | 友好语调 |
| Bella | 女性,柔和 | 温暖,有吸引力 |
要使用特定语音,请添加 --voice "语音名称" 参数。
POST https://dialpad.com/api/v2/smsPOST https://dialpad.com/api/v2/callphone_number + user_id| 姓名 | 电话 | 用户 ID |
|---|---|---|
| Martin | (415) 360-2954 | 5765607478525952 |
| Lilla | (415) 870-1945 | 5625110025338880 |
| Scott | (415) 223-0323 | 5964143916400640 |
{
"id": "4612924117884928",
"status": "pending",
"message_delivery_result": "pending",
"to_numbers": ["+14158235304"],
"from_number": "+14155201316",
"direction": "outbound"
}
{
"call_id": "6342343299702784",
"status": "ringing"
}
| 错误 | 含义 | 操作 |
|---|---|---|
invalid_destination |
无效的电话号码 | 验证 E.164 格式 |
invalid_source |
主叫号码不可用 | 检查 --from 号码是否已分配 |
no_route |
无法送达 | 检查运营商/收件人 |
user_id required |
缺少用户 ID | 对已知号码使用 --from 参数 |
消息存储在单个支持全文搜索的 SQLite 数据库中。
~/.dialpad/sms.db # 包含消息和 FTS5 索引的单个文件
# 列出所有短信会话
python3 sms_sqlite.py list
# 查看特定会话线程
python3 sms_sqlite.py thread "+14155551234"
# 在所有消息中进行全文搜索
python3 sms_sqlite.py search "演示"
# 显示未读消息摘要
python3 sms_sqlite.py unread
# 统计信息
python3 sms_sqlite.py stats
# 将消息标记为已读
python3 sms_sqlite.py read "+14155551234"
# 从旧版存储迁移
python3 sms_sqlite.py migrate
search "关键词")from webhook_sqlite import handle_sms_webhook, format_notification, get_inbox_summary
# 存储收到的消息
result = handle_sms_webhook(dialpad_payload)
notification = format_notification(result)
# 获取收件箱摘要
summary = get_inbox_summary()
原始的基于 JSON 的存储仍然可用,但不推荐使用:
python3 sms_storage.py [list|thread|search|unread]
DIALPAD_API_KEY 环境变量ELEVENLABS_API_KEY + 用于音频播放的 webhook 设置Dialpad 不提供直接的 GET /sms 端点。请使用以下方法:
在消息发送/接收时实时接收短信事件。
# 创建 webhook 订阅
python3 create_sms_webhook.py create --url "https://你的服务器.com/webhook/dialpad" --direction "all"
# 列出已有订阅
python3 create_sms_webhook.py list
Webhook 事件:
- sms_sent — 发送短信
- sms_received — 接收短信
注意: 添加 message_content_export 权限范围以在事件中接收消息文本。
将过去的短信消息导出为 CSV 文件。
# 导出所有短信
python3 export_sms.py --output all_sms.csv
# 按日期范围导出
python3 export_sms.py --start-date 2026-01-01 --end-date 2026-01-31 --output jan_sms.csv
# 导出特定办公室的短信
python3 export_sms.py --office-id 6194013244489728 --output office_sms.csv
输出: CSV 文件,包含以下列:
- date — 时间戳
- from_number — 发送方
- to_number — 接收方
- text — 消息内容
- status — 送达状态
Dialpad 短信技能
├── send_sms.py # 发送短信(可用)
├── make_call.py # 拨打电话(可用)
├── create_sms_webhook.py # 创建 webhook 订阅(新增)
├── export_sms.py # 导出历史短信(新增)
├── sms_sqlite.py # 带 FTS5 的 SQLite 存储(推荐)
├── webhook_sqlite.py # SQLite 的 Webhook 处理器
├── sms_storage.py # 旧版 JSON 存储(已弃用)
└── webhook_receiver.py # 旧版 webhook 处理器