3.0 KiB
3.0 KiB
S57 UI、查询与号码库发布报告(2026-08-27)
发布结论
- 代码提交:
c36709f366422b9dc5d37156d42d6e2f78bea051 - B 发布目录:
/opt/lisglosips/releases/s57-ui-number-library-20260827T124730Z - 配置/回滚备份:
/var/backups/lisglosips-s57/20260827T124730Z - 数据备份:
/data/backups/mysql/20260827T124730Z、/data/backups/redis/20260827T124730Z - 发布前检查:MySQL、Redis、Nginx、API、CDR Worker、录音 Worker、HEP、Prometheus、Grafana 均为 active,API ready 与 Nginx 配置检查通过。
- 第一次切换因发布脚本误检查不存在的
/health路径得到 404,自动回滚成功;修正为/health/ready后重新发布并通过,没有遗留半切换状态。
生产数据结果
| 数据表 | 生产数量 |
|---|---|
| 行政城市 | 371 |
| 手机前 7 位号段 | 517,258 |
| 城市区号 | 321 |
| 运营商前三位规则 | 70 |
- 数据文件上传前后 SHA256 一致。
- 生产干跑:
phone.dat2502 版本,有效号段 517,258,行政区未匹配 0。 - 导入器拒绝向非空号码库重复写入,并在导入前由发布流程完成 MySQL/Redis 备份。
- Prisma 并行计数和首屏 25 条直查共 85 ms。
生产接口证据
以下耗时来自 B 的 API 完成日志:
| 接口 | 状态 | 服务端耗时 |
|---|---|---|
/api/v2/active-calls |
200 | 首次 46 ms,后续 4-6 ms |
/api/v2/number-library/cities?take=25&skip=0 |
200 | 9 ms |
/api/v2/number-library/phone-segments?take=25&skip=0 |
200 | 74 ms |
/api/v2/cdrs 最近一周 |
200 | 7 ms |
/api/v2/recordings 最近一周 |
200 | 5 ms |
/api/v2/audit-logs 最近一周 |
200 | 5 ms |
当前通话页面已显示“控制面:就绪”,空闲时返回 0 路真实 dialog,不再出现 OpenSIPS control plane unavailable。
浏览器验收
- 登录态下 Dashboard 只保留两个趋势模块,“客户消费 TOP 10”和“失败响应码分布”已删除。
- 客户网关页标题和列表按内容高度从顶部连续排列,截图所示大面积空白消失。
- 号码库首屏 25 条,显示 1-25 / 371;手机号码库显示 1-25 / 517,258,上一页/下一页状态正确。
- 话单、质检、操作日志日期均默认
2026-08-21至2026-08-27;请求转换为上海时区自然日对应的 UTC 起止值。 - 页面 DOM 均有真实业务内容,没有框架错误覆盖层;关键请求均在 API 日志中返回 200。
本地质量门禁
- ESLint:通过。
- TypeScript project build/typecheck:通过。
- Web production build:通过。
- Vitest:27 个测试文件、98 个测试全部通过。
- 号码库导入器本地与生产干跑:均为未匹配 0。
回滚
如需回滚代码和 API 配置:恢复 /var/backups/lisglosips-s57/20260827T124730Z/api.env,将 /opt/lisglosips/current 指回该目录内 previous-release 记录的版本,并重启 lisglosips@api。号码库数据回滚应使用本次发布前 MySQL 备份,不应直接无条件清空四张表。