跳转至

openclaw voicecall

voicecall 是一个由插件提供的命令。只有在 voice-call 插件已安装并启用时它才会出现。如果 openclaw voicecall 无法识别,请在 Gateway 主机上安装并启用该插件:

openclaw plugins install @openclaw/voice-call
openclaw plugins enable voice-call

这些命令会自动应用于正在运行的 Gateway;如果它处于离线状态,请先启动它。有关提供商凭据和 webhook 配置,请参阅 语音通话插件;有关运行时验证,请参阅 应用更改并检查。

当 Gateway 运行时,操作命令(call、start、continue、speak、dtmf、end、status)会路由到该 Gateway 的 voice-call 运行时。如果没有可用的 Gateway,这些命令会回退到独立的 CLI 运行时。status 使用持久化的通话存储,而不是启动该运行时。

回退仅限传输层不可用的情况。如果 Gateway 返回请求错误或认证错误,或者在超时之前未应答,命令将以非零状态退出,并指向 openclaw gateway status;它不会启动第二个 webhook 服务器。如果独立回退无法绑定配置的 serve.port,错误信息会指出可能正在运行的 Gateway,而不是打印原始的 EADDRINUSE 失败。

子命令

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>]
子命令 描述
setup 显示提供商和 webhook 就绪检查。
smoke 运行就绪检查;仅在带 --yes 时拨打实时测试电话。
call 发起外呼语音通话。
start call 的别名,--to 为必填,--message 可选。
continue 播报消息并等待下一条响应。
speak 播报消息但不等待响应。
dtmf 向活动通话发送 DTMF 按键。
end 挂断活动通话。
status 查看活动通话(或通过 --call-id 查看单个通话)。
tail 跟踪持久化的通话记录或显式的自定义 JSONL 日志。
latency 从通话历史或自定义 JSONL 日志汇总轮次延迟。
expose 为 webhook 端点切换 Tailscale serve/funnel。

设置与冒烟测试

setup

默认打印人类可读的就绪检查。如需脚本处理,请传递 --json。

openclaw voicecall setup
openclaw voicecall setup --json

smoke

运行相同的就绪检查。仅当同时提供 --to 和 --yes 时才会拨打真实电话。

标志 默认值 描述
-t, --to <phone> (无) 用于实时冒烟测试的电话号码。
--message <text> OpenClaw voice call smoke test. 冒烟测试通话期间要播报的消息。
--mode <mode> notify 通话模式:notify 或 conversation。
--yes false 实际拨打实时外呼电话。
--json false 输出机器可读的 JSON。
openclaw voicecall smoke
openclaw voicecall smoke --to "+15555550123"        # dry run
openclaw voicecall smoke --to "+15555550123" --yes  # live notify call

Note

对于外部提供商(plivo、telnyx、twilio),setup 和 smoke 需要来自 publicUrl、隧道或 Tailscale 暴露的公网 webhook URL。回环或私有 serve 回退会被拒绝,因为运营商无法访问它们。

通话生命周期

call

发起外呼语音通话。

标志 必填 默认值 描述
-m, --message <text> 是 (无) 通话接通时要播报的消息。
-t, --to <phone> 否 配置 toNumber 要呼叫的 E.164 电话号码。
--mode <mode> 否 conversation 通话模式:notify(播报后挂断)或 conversation(保持通话)。
openclaw voicecall call --to "+15555550123" --message "Hello"
openclaw voicecall call -m "Heads up" --mode notify

start

call 的别名,但默认参数形式不同。

标志 必填 默认值 描述
--to <phone> 是 (无) 要呼叫的电话号码。
--message <text> 否 (无) 通话接通时要播报的消息。
标志 必填 默认值 描述
--mode <mode> 否 conversation 通话模式:notify 或 conversation。

continue

发送一条消息并等待响应。

标志 必填 描述
--call-id <id> 是 通话 ID。
--message <text> 是 要播报的消息。

speak

发送一条消息,但不等待响应。

标志 必填 描述
--call-id <id> 是 通话 ID。
--message <text> 是 要播报的消息。

dtmf

向活动通话发送 DTMF 数字。

标志 必填 描述
--call-id <id> 是 通话 ID。
--digits <digits> 是 DTMF 数字(例如等待时使用 ww123456#)。

end

挂断活动通话。

标志 必填 描述
--call-id <id> 是 通话 ID。

status

查看活动通话。

标志 默认值 描述
--call-id <id> (无) 将输出限制为单个通话。
--json false 打印机器可读的 JSON。
openclaw voicecall status
openclaw voicecall status --json
openclaw voicecall status --call-id <id>

日志与指标

tail

从 SQLite 中跟踪已持久化的语音通话记录:初始打印最近 --since 条记录,之后仅打印新的快照(--since 0 仅从新快照开始)。对于已存在的自定义 --file,如果其 basename 不是 calls.jsonl,启动时打印最近 --since 行非空完整行,然后流式输出新的完整行。不完整行会等待换行;文件被替换或检测到截断时,会开始新的流。缓慢的输出管道会暂停读取,而不是将日志的其余部分累积到内存中。

标志 默认值 描述
--file <path> 从插件存储解析 calls.jsonl 的路径。
--since <n> 25 开始跟踪前打印的行数。
--poll <ms> 250(最小值 50) 轮询间隔(毫秒)。

latency

从 SQLite 或使用 --file 选择的现有自定义日志中汇总回合延迟和监听等待指标。输出为 JSON,包含 recordsScanned、turnLatency 和 listenWait 摘要。

自定义日志会增量扫描,请求的历史记录没有字节上限。latency 选择最近 N 条非空记录,跳过格式错误的 JSON,并接受末尾没有换行符的最终 JSON 记录。它一次解析一条选中的记录;内存仍随最大的选中 JSON 记录和请求的指标样本数量而变化。

标志 默认值 描述
--file <path> 从插件存储解析 calls.jsonl 的路径。
--last <n> 200(最小值 1) 要分析的最近记录数。

公开 webhooks

expose

启用、禁用或更改语音 webhook 的 Tailscale serve/funnel 配置。当启用实时或流式音频时,该命令还会公开或清除该模式的 WebSocket 流路径。外部 HTTPS 端口来自 tailscale.port(默认 443);Funnel 支持 443、8443 或 10000。

标志 默认值 描述
--mode <mode> funnel off、serve(tailnet)或 funnel(公开)。
--path <path> 配置 tailscale.path 或 --serve-path 要公开的 Tailscale 路径。
--port <port> 配置 serve.port 或 3334 本地 webhook 端口。
--serve-path <path> 配置 serve.path 或 /voice/webhook 本地 webhook 路径。
openclaw voicecall expose --mode serve
openclaw voicecall expose --mode funnel
openclaw voicecall expose --mode off

Warning

仅将 webhook 端点暴露给受信任的网络。尽可能优先使用 Tailscale Serve 而非 Funnel。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw