58 lines
4.5 KiB
Markdown
58 lines
4.5 KiB
Markdown
# 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 临时线路卸载成功。
|