OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  dialpad:通过 Dialpad API 发送短信并进行语音通话

dialpad:通过 Dialpad API 发送短信并进行语音通话

 
  skill ·  2026-02-21 12:33:52 · 3 次点击  · 0 条评论  

名称: dialpad
描述: 通过 Dialpad API 发送短信和拨打电话。支持单条/批量短信、TTS语音通话以及主叫号码选择。
主页: https://developers.dialpad.com/


Dialpad 技能

通过 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 "语音名称" 参数。

API 能力

短信

  • 端点: POST https://dialpad.com/api/v2/sms
  • 最大收件人: 每个请求 10 个
  • 最大消息长度: 1600 个字符
  • 速率限制: 每分钟 100-800 次请求(取决于套餐等级)

语音通话

  • 端点: POST https://dialpad.com/api/v2/call
  • 必需参数: phone_number + user_id
  • 功能: 外呼,文本转语音
  • 主叫号码: 必须是你的 Dialpad 账户下已分配的号码

已知用户(自动检测)

姓名 电话 用户 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 与 FTS5)

消息存储在单个支持全文搜索的 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

功能特性

  • 全文搜索 通过 FTS5 (search "关键词")
  • 快速查询 在联系人、时间戳、方向字段上建立索引
  • ACID 事务 — 并发写入时不会损坏数据
  • 未读跟踪 提供每个联系人的未读计数
  • 非规范化的联系人统计 用于即时列表视图

Webhook 集成

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 存储(已弃用)

原始的基于 JSON 的存储仍然可用,但不推荐使用:

python3 sms_storage.py [list|thread|search|unread]

要求

  • Python 3.7+
  • 无外部依赖(仅使用标准库)
  • 有效的 DIALPAD_API_KEY 环境变量
  • 对于 ElevenLabs TTS:需要 ELEVENLABS_API_KEY + 用于音频播放的 webhook 设置

读取短信消息

Dialpad 不提供直接的 GET /sms 端点。请使用以下方法:

1. 实时方式:短信 Webhook

在消息发送/接收时实时接收短信事件。

# 创建 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 权限范围以在事件中接收消息文本。

2. 历史方式:统计导出 API

将过去的短信消息导出为 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 处理器
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor