Files
go-sip/docs/evidence/sip-call-positional-cli-deployment-20261009.md
T

58 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# sip-call 新命令及独立临时线路部署(2026-10-09)
## 授权与结论
使用者确认:先提交并 push 本轮代码,核对远端提交后部署独立 `sip-call`;不外呼。范围包括一次性准备已经确认的固定配置入口,不包括业务 Agent/Dispatcher 更新、服务重启、PJSIP reload、抓包或真实 AI 调用。
已完成代码推送、独立工具部署及只读检查。没有发起呼叫,也没有执行临时线路加载/卸载或真实通话验收。
## 来源与安装位置
| 项目 | 事实 |
| --- | --- |
| 已推送源码 | `6e028d4feac47585db5ec1a2e4074498e69de41b`;部署前与 `origin/main` 一致 |
| 构建来源 | 固定上述提交的独立、干净 worktree,使用该提交固定的合同,不采用原工作区后来出现的未提交合同指针改动 |
| 构建方式 | Go 1.27.1,`make build-sip-call`,`-trimpath -buildvcs=false`;外部清单记录来源 |
| 二进制 SHA-256 | `428361822621597ca26e70281d65f4c815251a02d47c11794c1519828f03438a` |
| 登记主机 | `server.sip`,`rogee` 用户,x86_64,原生 Asterisk 22.10.1 |
| SSH 校验 | 已登记 ED25519 `SHA256:F5BqDTk+/Es2pj8vNjM0dwDMHmfcyuTI1trBOfPy6jk`,强制已知主机校验;未新增或覆盖登记 |
| 安装位置 | `/home/rogee/.local/bin/sip-call`,`rogee:rogee`,`0755` |
构建、安装和随后独立读取的二进制 hash 一致;登录 shell 的 `command -v sip-call` 指向上述位置。新帮助展示 `sip-call <线路.env> <原始号码>` 及 `-D, --debug`,不展示旧 `call` 子命令或 `--sip`。
部署准备时发现原工作区有并行产生的未提交改动,未覆盖、暂存或提交它们;部署制品仅来自已推送的固定源码。原工作区的共享合同指针及另行产生的测试修改保留。
## 一次性配置准备
在确认没有活动通话、没有运行中的独立工具、没有遗留 `sip-call-managed.conf` 后,持有与工具相同的 `.sip-call.lock`,向 `~/.config/go-sip-asterisk/pjsip.conf` 追加一次:
```ini
#tryinclude sip-call-managed.conf
```
原文件全部原字节作为前缀保留;所属用户/组及 `0600` 保持不变。写入前核对原 hash 和 metadata,临时文件同步后原子替换。安装后核对固定入口恰好一个,并再次检查原字节前缀和 metadata。
本次没有创建临时线路文件,也没有 reload 或重启 Asterisk。入口文件不存在;其实际测试线路加载与卸载仍须以后独立授权验证。
新版工具今后只创建/删除本次临时线路文件,不改写、不备份整份 `pjsip.conf`;输入 `SIP.env` 保留。结束未知、活动通道或配置变化仍明确拒绝清理,不自动重跑。
## 保留及清理范围
- 旧版安装工具及新版本来源清单保存到 `~/sip-call/tool-backups/` 下本次新建的私有目录,目录 `0700`、JSON 清单 `0600`;旧二进制 hash 核对后才替换安装文件。
- 没有创建整份 `pjsip.conf` 备份,也没有删除既有备份或历史证据。`tool-backups` 属于工具安装记录,不是每通 SIP 配置备份或运行依赖。
- 三份原有 ENV 的 hash、所属用户/组及 `0600` 均不变;`go-sip-managed.conf` 和 `asterisk.conf` 不变。
- 没有覆盖业务程序、旧数据库、恢复文件、录音、凭据或业务线路。
- 安装结束后只删除本次创建、逐文件核对 hash 的 `.deploy-6e028d4` staging 文件及其空目录;其他文件不清理。
- 私有来源、前后快照及部署结果保留在本机 `.local/sip-call-deploy-6e028d4/` 和测试机本次工具备份目录,原始私有配置不进入提交。
## 验证结果与边界
- 已提交源码的 `go vet`、相关 race 测试通过;干净固定 worktree 的相关 race 测试及 `make check` 再次通过,包括隔离 RabbitMQ/HTTPS/mTLS Mock、Proto 和固定合同检查。此前全量 race 测试通过,业务单元覆盖率 70.6%。
- 安装 hash、新帮助及登录 shell 命令位置检查通过。
- 安装前、安装后均确认原生 Asterisk 为零活动通道、零活动通话。
- 前后服务状态和进程号一致。Dispatcher 原有 `activating/auto-restart` 等待状态未由本次操作改变,不能把本次工具安装解释为业务已 ready。
- 前后没有 tcpdump/TShark 进程变化;未启动抓包,未新增工具运行中的呼叫。
- 没有发起 INVITE、调用 AI/OSS、加载临时线路、PJSIP reload、重启服务或修改拨号授权。
本地模拟和安装检查不证明实际 SIP 接通、媒体、AI 或原生 Asterisk 临时线路卸载成功。