3.0 KiB
接通通话时长:开发、部署与 SaaS 对接说明
共享契约固定版本:bfa3380a5e01f4bfaea918383fceed81548252d1(已推送 sip-contracts/main)。本项目源码 8340efd889e039584cf492138d9c2cc7ccf55c06 从 feat/connected-call-duration 快进合入并推送 main;登记测试机 server.sip 已安装此固定版本。
SaaS 应从 call.execute.result.payload.connected_duration_ms 读取接通后的时长,单位毫秒。原 duration_ms 保留既有含义,不能作为接通时长。answered_at 为原始外呼通道首次 Up 事件时间;接通时长从该事件计到同一通道的 ChannelDestroyed 事件。确认未接通并结束时为 answered_at=null、connected_duration_ms=0;缺少可核验时间证据时为 null,不得把未知当成零或从录音长度推断。接通后的媒体/业务失败也可能报告 outcome=failed,SaaS 不应仅凭 outcome 推算时长。字段在所有新结果中均出现。SaaS 开发人员应按上述共享版本调整解析、展示及测试;发布顺序和生产收到消息尚未验证。
已验证:Schema、正反例与离线来源检查;结果生成、原通道 Up/Destroyed 计时、无证据/未接通边界的单元测试;make check、make release-check-local、go test -race ./... 和 ./scripts/coverage.sh 通过,业务覆盖率 73.1%。上述测试核验为本地隔离环境;实际 Asterisk 事件时间及 SaaS 收取仍需独立现场验证。
2026-10-12 固定测试机部署
- 合入前和合入后的
make check、make release-check-local均通过;远端origin/main=8340efd889e039584cf492138d9c2cc7ccf55c06已核对,工作区干净。部署入口为python3 deploys/production/production.py deploy --debug,不带--reset-state或--defer-saas-readiness。 - 部署前后原生 Asterisk PID 均为
777461,0 活动通道、0 重启;Dispatcher SQLite 布局 4,inbox 为空,未确认 outbox 为 0;没有清库或修改旧通话、录音及恢复事实。新 Agent PID3034209、Dispatcher PID3034221,两者及 Asterisk 均 enabled+active、0 重启;Debug 开、Capture 关,未发现运行中的 tcpdump。安装后的业务制品 SHA-2563ec30b6c1c51cc6314ad56a5d64d7321cef24556aad433b0a4c3efdec8dc2ab2、独立 probe SHA-2562b5f4b03d13f0b0e2e9b73ad8e85f2e9b6bf432c249a98125cc4e0db71346b55,均经本机固定源码独立构建逐项核对。 - 状态核验
ok=true、MQ 独立检查通过,但 SaaS 探测为saas_pending(tasks阶段连接不可用,http_status=0),business_ready=false,没有把等待记作就绪。未主动投递消息、试拨、抓包或调用额外 AI/OSS;尚无新结果到 SaaS、实际接通时长或生产签收证据。没有直接给 SaaS 开发人员发送消息,需将本说明与共享契约版本转交并等其确认对接。 - 本文件后续更新只记录部署事实,不改变服务器固定的
8340efd业务制品;不以文档提交号冒充已安装版本。