Skip to content

openclaw voicecall 是语音通话插件提供的 CLI 工具,可完成从设置检查到实际通话全流程操作。子命令 setup 和 smoke 用于就绪检查;call/start 发起外呼,continue/speak 控制对话,dtmf 发送按键,end 挂断,status 查看通话状态。需要先安装插件并启用公用 webhook(仅外部提供商需要)。tail 和 latency 子命令可实时跟踪和汇总通话延迟指标。expose 子命令用于控制 Tailscale serve/funnel 暴露 webhook。

openclaw voicecall 命令参考:语音通话插件 CLI 配置与调试

voicecall 是由插件提供的命令,仅在安装并启用语音通话插件后才会出现

Gateway 运行时,操作类命令(callstartcontinuespeakdtmfendstatus)会路由到该 Gateway 的语音通话运行时。如果无法连接到 Gateway,会回退到独立的 CLI 运行时。

子命令一览

bash
openclaw voicecall setup    [--json]
openclaw voicecall smoke    [-t <phone>] [--message <text>] [--mode <m>] [--yes] [--json]
openclaw voicecall call     -m <text> [-t <phone>] [--mode <m>]
openclaw voicecall start    --to <phone> [--message <text>] [--mode <m>]
openclaw voicecall continue --call-id <id> --message <text>
openclaw voicecall speak    --call-id <id> --message <text>
openclaw voicecall dtmf     --call-id <id> --digits <digits>
openclaw voicecall end      --call-id <id>
openclaw voicecall status   [--call-id <id>] [--json]
openclaw voicecall tail     [--file <path>] [--since <n>] [--poll <ms>]
openclaw voicecall latency  [--file <path>] [--last <n>]
openclaw voicecall expose   [--mode <m>] [--path <p>] [--port <port>] [--serve-path <p>]
Subcommand说明
setup显示提供商和 webhook 就绪检查。
smoke运行就绪检查;仅在提供 --yes 时才会拨打真实测试电话。
call发起外呼语音通话。
startcall 的别名,--to 为必选,--message 可选。
continue说一句话并等待响应。
speak说一句话但不等待响应。
dtmf向生效通话发送 DTMF 按键。
end挂断生效通话。
status查看生效通话(或通过 --call-id 查看某一通话)。
tail实时跟踪 calls.jsonl 日志(在提供商测试时有用)。
latencycalls.jsonl 中汇总轮次延迟指标。
expose切换 Tailscale serve/funnel 以暴露 webhook 端点。

就绪检查与测试

setup

默认输出人类可读的就绪检查结果。加上 --json 可输出机器可读的 JSON。

bash
openclaw voicecall setup
openclaw voicecall setup --json

smoke

运行相同的就绪检查,但不会拨打真实电话,除非同时提供了 --to--yes 两个标志。

Flag默认值说明
-t, --to &lt;phone&gt;(无)真实拨测的目标电话号码。
--message &lt;text&gt;OpenClaw voice call smoke test.拨测时要播放的语音消息。
--mode &lt;mode&gt;notify通话模式:notify(通知后挂断)或 conversation(保持通话)。
--yesfalse是否真正发起外呼。
--jsonfalse输出机器可读的 JSON。
bash
openclaw voicecall smoke
openclaw voicecall smoke --to "+15555550123"        # 仅检查,不拨号
openclaw voicecall smoke --to "+15555550123" --yes  # 真实拨测(notify 模式)

注意:使用外部提供商(twiliotelnyxplivo)时,setupsmoke 需要一个通过 publicUrl、隧道或 Tailscale 暴露的公开 webhook URL。回环地址或私有 serve 会被拒绝,因为运营商无法访问。

通话生命周期

call

发起一次外呼语音通话。

Flag是否必选默认值说明
-m, --message &lt;text&gt;(无)接通后播放的语音消息。
-t, --to &lt;phone&gt;配置项 toNumberE.164 格式的电话号码。
--mode &lt;mode&gt;conversation通话模式:notify(播完即挂)或 conversation(保持通话)。
bash
openclaw voicecall call --to "+15555550123" --message "Hello"
openclaw voicecall call -m "Heads up" --mode notify

start

call 的别名,参数形状稍有不同。

Flag是否必选默认值说明
--to &lt;phone&gt;(无)电话号码。
--message &lt;text&gt;(无)接通后播放的语音消息。
--mode &lt;mode&gt;conversation通话模式:notifyconversation

continue

说一句话并等待响应(适合连续对话)。

Flag是否必选说明
--call-id &lt;id&gt;通话 ID。
--message &lt;text&gt;要播放的语音消息。

speak

说一句话但不等待响应。

Flag是否必选说明
--call-id &lt;id&gt;通话 ID。
--message &lt;text&gt;要播放的语音消息。

dtmf

向生效通话发送 DTMF 按键。

Flag是否必选说明
--call-id &lt;id&gt;通话 ID。
--digits &lt;digits&gt;DTMF 按键序列(例如 ww123456# 表示等待)。

end

挂断生效通话。

Flag是否必选说明
--call-id &lt;id&gt;通话 ID。

status

查看生效通话列表或某一通话的详细信息。

Flag默认值说明
--call-id &lt;id&gt;(无)只查看指定通话。
--jsonfalse输出机器可读的 JSON。
bash
openclaw voicecall status
openclaw voicecall status --json
openclaw voicecall status --call-id <id>

日志与指标

tail

实时跟踪 calls.jsonl 日志。启动时先打印最近 --since 行,再持续输出新写入的行。

Flag默认值说明
--file &lt;path&gt;来自插件存储的路径calls.jsonl 文件路径。
--since &lt;n&gt;25跟踪前先打印的行数。
--poll &lt;ms&gt;250(最小 50)轮询间隔(毫秒)。

latency

calls.jsonl 中汇总轮次延迟和监听等待指标。输出为 JSON,包含 recordsScannedturnLatencylistenWait 统计。

Flag默认值说明
--file &lt;path&gt;来自插件存储的路径calls.jsonl 文件路径。
--last &lt;n&gt;200(最小 1)分析最近的记录数。

暴露 Webhook 端点

expose

启用、禁用或更改语音 webhook 的 Tailscale serve/funnel 配置。

Flag默认值说明
--mode &lt;mode&gt;funnel可选值:off(关闭)、serve(仅在 tailnet 内)、funnel(公开)。
--path &lt;path&gt;配置项 tailscale.path--serve-pathTailscale 暴露路径。
--port &lt;port&gt;配置项 serve.port3334本地 webhook 端口。
--serve-path &lt;path&gt;配置项 serve.path/voice/webhook本地 webhook 路径。
bash
openclaw voicecall expose --mode serve
openclaw voicecall expose --mode funnel
openclaw voicecall expose --mode off

安全警告:只将 webhook 端点暴露给你信任的网络。在可能的情况下,优先使用 Tailscale Serve 而非 Funnel。

相关文档

常见问题

为什么 openclaw voicecall smoke 没有实际拨打电话?

smoke 命令默认只运行就绪检查,不会拨号。必须同时提供 --to &lt;phone&gt;--yes 两个标志才会发起真实外呼。例如:openclaw voicecall smoke --to "+15555550123" --yes

怎么把呼叫目标号码传给 openclaw voicecall call

可以在命令中直接传入 -t--to 参数指定 E.164 格式号码。如果省略,则使用配置项 toNumber 中的默认值。例如:openclaw voicecall call --to "+8613800138000" --message "测试"

openclaw voicecall expose 报错 "tailscale" 相关怎么办?

确认本机已安装并登录 Tailscale。expose 命令需要 Tailscale 正常运行,并且您有权限启用了 serve/funnel。可以先手动运行 tailscale serve 验证基础功能。如果仍需外部公开 webhook,可以使用 funnel 模式。