fix vendor status customer toggles and cps
This commit is contained in:
@@ -4,11 +4,11 @@
|
||||
|
||||
## 当前状态
|
||||
|
||||
- 当前任务:需求修改/二期变更:客户网关匹配口径固化与 release artifact 脚本
|
||||
- 本次变更摘要:已按“业务前缀优先于主叫前缀,精确规则优先于空业务前缀兜底”更新需求、代码和测试用例;新增并修复 Linux release artifact 脚本;已提交 Git 并部署到 A/B/T 本地联调环境。
|
||||
- 总体状态:S30 已完成;本地 KVM 开发环境 V2 闭环原冻结 release 为 `s28-v2-20260621220924`;B 二期冻结基线为 `s42-phase2-business-prefix-20260624140000`,当前已切换到 release `s44-phase2-gateway-match-20260628225000`;切换前已生成并校验 MySQL/Redis 备份 `/data/backups/mysql/20260628T143121Z` 与 `/data/backups/redis/20260628T143122Z`;B preflight 通过,API ready 返回 ok,HTTPS 首页加载前端资产 `index-BBq8iMHt.js`;A 已加载二期 Lua 热路径 SHA1 `aff9995dbda2a2425e95a3e25b5d7ce194348ce7`,OpenSIPS 配置 SHA-256 为 `f163fa37f7aaa492e12ed496cb82f07d9b0f1030a6ed297855a22d2c4bf1c8a5`;T 服务 active,并已完成 1 通 S40 最小呼叫验收;当前仍未导入真实 80 万手机号段;阿里云迁移前需按 S30 Runbook 重新演练
|
||||
- 最后更新:2026-06-28 22:34 +08:00
|
||||
- 当前阻塞:无阻塞。遗留问题:本次未执行数据库 schema 变更;真实 80 万手机号段尚未导入;OpenSIPS dialog 残留根因仍待单独分析;真实 B 服务器浏览器登录态逐页按钮、真实录音文件播放和 Nginx/X-Accel 链路仍需用户测试复核;S40 呼叫时脚本内置 UAS 端口提示已占用,但现有 UAS 正常接起且通话/CDR/计费成功。
|
||||
- 当前任务:需求修改/二期变更:供应商启停移除、客户启停入口、落地网关 CPS 数字校验、当前通话 SIP 状态
|
||||
- 本次变更摘要:本地代码已移除供应商启停 API/前端状态展示;客户管理页面补充启用/禁用按钮和确认弹窗;落地网关 CPS 改为 1-10000 数字输入与后端校验;当前通话列表改展示 SIP 信令状态;同步更新测试用例和设计说明。
|
||||
- 总体状态:S30 已完成;本地 KVM 开发环境 V2 闭环原冻结 release 为 `s28-v2-20260621220924`;B 二期冻结基线为 `s42-phase2-business-prefix-20260624140000`,当前 release 为 `s44-phase2-gateway-match-20260628225000`;B preflight 通过,API ready 返回 ok,HTTPS 首页加载前端资产 `index-BBq8iMHt.js`;Redis `cfg:active_version=s28-v1`,A 当前 EVALSHA 脚本在 Redis 中存在;A 已加载二期 Lua 热路径 SHA1 `aff9995dbda2a2425e95a3e25b5d7ce194348ce7`,OpenSIPS 配置 SHA-256 为 `f163fa37f7aaa492e12ed496cb82f07d9b0f1030a6ed297855a22d2c4bf1c8a5`;A/B/T 目标服务均 active;已完成 1 通 S40 最小呼叫验收并确认 CDR/计费落库;B 登录依赖 Argon2id 冒烟通过;当前仍未导入真实 80 万手机号段;阿里云迁移前需按 S30 Runbook 重新演练
|
||||
- 最后更新:2026-06-29 11:29 +08:00
|
||||
- 当前阻塞:无阻塞。遗留问题:本次未连接服务器、未发布 A/B/T、未执行数据库 schema 变更或服务重启;真实 80 万手机号段尚未导入;OpenSIPS dialog 残留根因仍待单独分析;真实 B 服务器浏览器登录态逐页按钮、真实录音文件播放和 Nginx/X-Accel 链路仍需用户测试复核;S40 呼叫时脚本内置 UAS 端口提示已占用,但现有 UAS 正常接起且通话/CDR/计费成功;A/T 各有一个无关 `fwupd-refresh.service` failed unit,未处理。
|
||||
- 当前环境:A/B/T 为本地 KVM 开发服务器,通过 Tailscale 联调;开发完成后再迁移阿里云
|
||||
- 私密访问资料:`.codex-private/SERVER_ACCESS.md`,只在实际连接时读取,禁止回显
|
||||
|
||||
@@ -90,6 +90,40 @@
|
||||
|
||||
## 交接记录
|
||||
|
||||
### 2026-06-29 11:29 - 需求修改/二期变更:供应商启停移除、客户启停入口、CPS 数字校验、当前通话 SIP 状态
|
||||
|
||||
- 状态:已完成
|
||||
- 操作服务器:本地
|
||||
- 完成内容:移除供应商管理的启用/禁用 API 和前端状态列,供应商新增/编辑不再接收或返回启停字段;客户管理页面新增启用/禁用按钮、权限裁剪和确认弹窗,调用既有 `POST /customers/:id/enable|disable`;落地网关 `cpsLimit` 改为 1-10000 整数,Web 表单使用数字输入且不再接受 `120 CPS` 这类文本;当前通话 API 新增 `sipState`、`sipStatusCode`、`sipStatusText`,Web 列表改显示 SIP 信令状态;同步更新 `docs/TEST_PLAN_AND_CASES.md` 和 `SOFTSWITCH_PLATFORM_DESIGN_V2.md`。
|
||||
- 修改文件:`apps/api/src/modules/vendors/`、`apps/api/src/modules/vendor-gateways/`、`apps/api/src/modules/active-calls/`、`apps/web/src/App.jsx`、`apps/web/src/api.js`、`apps/web/src/pages/CustomersPage.jsx`、`apps/web/src/pages/VendorsPage.jsx`、`apps/web/src/pages/VendorGatewaysPage.jsx`、`apps/web/src/pages/ActiveCallsPage.jsx`、`apps/web/src/utils/formatters.js`、`apps/web/src/fixtures/devFixtures.js`、`docs/TEST_PLAN_AND_CASES.md`、`SOFTSWITCH_PLATFORM_DESIGN_V2.md`、`IMPLEMENTATION_STATUS.md`
|
||||
- 验证结果:`corepack pnpm@10.33.0 typecheck` 通过;`corepack pnpm@10.33.0 test -- apps/api/src/modules/vendors/vendors.e2e.spec.ts apps/api/src/modules/customers/customers.e2e.spec.ts apps/api/src/modules/vendor-gateways/vendor-gateways.e2e.spec.ts apps/api/src/modules/active-calls/active-calls.service.spec.ts` 实际触发 Vitest 全量选择,25 个测试文件 91 条测试通过;`corepack pnpm@10.33.0 lint` 通过;`corepack pnpm@10.33.0 build` 通过,Web 产物为 `index-CBRZZA7t.js` / `index-B2uYBtS3.css`。
|
||||
- 回滚方式:回退上述本地文件即可恢复旧行为;本次未新增数据库迁移、未连接 A/B/T、未改 Redis/OpenSIPS/RTPEngine/Worker 运行配置、未重启服务。
|
||||
- 未解决问题:本次仅完成本地代码和测试用例调整,尚未发布到 A/B/T;供应商表的数据库 `status` 字段仍保留用于历史兼容和软删除内部状态,不再作为产品启停能力暴露。
|
||||
|
||||
### 2026-06-29 10:52 - 修复 B Web 登录 500:补齐 Argon2id vendor lib
|
||||
|
||||
- 状态:已完成
|
||||
- 操作服务器:B、本地
|
||||
- 完成内容:根据 B `lisglosips@api` 日志定位 `/api/v2/auth/login` 500 根因:当前 s44 release 缺少 `packages/auth/vendor/argon2id/lib/setup.js`,导致密码校验动态 import 失败;备份当前 s44 Argon2id vendor 目录到 `/var/backups/lisglosips-auth-vendor/20260629T105135`;从已验证的旧 release 复制完整 `packages/auth/vendor/argon2id` 到当前 s44 release,设置属主 `root:lisglosips`、目录 `0750`、文件 `0640`;重启 `lisglosips@api`;修复本地 `scripts/build-release-artifact.mjs`,将 release artifact 条目从仅打包 `packages/auth/vendor/argon2id/dist` 改为打包完整 `packages/auth/vendor/argon2id`。
|
||||
- 修改文件:`scripts/build-release-artifact.mjs`、`IMPLEMENTATION_STATUS.md`;B 当前 release `/opt/lisglosips/releases/s44-phase2-gateway-match-20260628225000/packages/auth/vendor/argon2id`。
|
||||
- 安装软件及固定版本:未安装新软件。
|
||||
- 执行的关键命令:B `journalctl -u lisglosips@api`、`cp -a`、`chown`、`chmod`、`systemctl restart lisglosips@api`、`curl http://127.0.0.1:3000/api/v2/health/ready`、Argon2id hash/verify 冒烟;本地 `node scripts/build-release-artifact.mjs --release-id s-local-auth-vendor-check --check`。
|
||||
- 验证结果:B API active;API ready 返回 `ok`;当前 release 内 Argon2id hash/verify 输出 `argon2-smoke-ok`;最近 API 日志未再出现 `ERR_MODULE_NOT_FOUND` 或缺少 `setup.js`;本地 release artifact check 通过,确认 39 个 required entries 均存在。
|
||||
- 回滚方式:如需撤回本次热修复,可恢复 `/var/backups/lisglosips-auth-vendor/20260629T105135` 到 `/opt/lisglosips/releases/s44-phase2-gateway-match-20260628225000/packages/auth/vendor/argon2id` 后重启 `lisglosips@api`,但会恢复登录 500;更完整的应用回滚仍按 S30 Runbook 切回上一 release。
|
||||
- 未解决问题:尚未由浏览器完成真实账号登录复测;本地脚本已修复,但 s44 已生成 tarball 本身仍是旧 artifact,需要后续重新生成 release artifact 才能让制品与热修复一致。
|
||||
|
||||
### 2026-06-29 10:45 - A/B/T 重启后恢复本地联调环境
|
||||
|
||||
- 状态:已完成
|
||||
- 操作服务器:A、B、T、本地
|
||||
- 完成内容:按 `IMPLEMENTATION_STATUS.md`、`SOFTSWITCH_PLATFORM_DESIGN_V2.md`、二期迁移 Runbook 和 S30 Runbook 建立边界;先只读检查三机状态;确认 A `opensips`、`rtpengine`、`rtpengine-recording-daemon`、`lisglosips-redis-auth-proxy`、`lisglosips-node-exporter` active,`lisglosips-redis-hotpath-load` 为 oneshot 且上次结果 success;确认 A Lua SHA1 `aff9995dbda2a2425e95a3e25b5d7ce194348ce7` 与 `opensips.cfg` EVALSHA 一致,OpenSIPS 配置 SHA-256 为 `f163fa37f7aaa492e12ed496cb82f07d9b0f1030a6ed297855a22d2c4bf1c8a5`,`opensips -C -f /etc/opensips/opensips.cfg` 通过;确认 B current 为 `/opt/lisglosips/releases/s44-phase2-gateway-match-20260628225000`,启动关机后 inactive 的 `lisglosips@recording-worker` 与 `lisglosips@config-publisher`;确认 B MySQL、Redis、Nginx、API、CDR Worker、Recording Worker、Config Publisher 均 active;确认 T `opensips`、`rtpengine`、`apache2`、`mariadb`、`lisglosips-s28-uas` active,S28/S40 脚本存在可执行。
|
||||
- 修改文件:`IMPLEMENTATION_STATUS.md`
|
||||
- 安装软件及固定版本:未安装新软件。
|
||||
- 执行的关键命令:`systemctl is-active`、`systemctl --failed`、`readlink -f /opt/lisglosips/current`、B `systemctl start lisglosips@recording-worker lisglosips@config-publisher`、B `lisglosips-release-preflight.sh`、B `curl http://127.0.0.1:3000/api/v2/health/ready`、B `curl -k https://127.0.0.1/`、A/T `opensips -C -f /etc/opensips/opensips.cfg`、Redis `SCRIPT EXISTS`、T S40 单通呼叫、B 按 Call-ID 查询 `raw_cdrs`/`rated_cdrs`。
|
||||
- 验证结果:B API ready 返回 `ok`,HTTPS 首页返回 200 并加载 `assets/index-BBq8iMHt.js` 与 `assets/index-B2uYBtS3.css`;B preflight ok,最新备份目录显示 `/data/backups/mysql/20260629T013942Z` 与 `/data/backups/redis/20260629T013942Z`;Redis `cfg:active_version=s28-v1`,`SCRIPT EXISTS aff9995dbda2a2425e95a3e25b5d7ce194348ce7` 返回 `1`;A/B/T 目标服务最终均 active;S40 最小呼叫 `s40-01-1782701049649-q3u8wrqi@lisglosips-t` 收到 `200 OK` 与 `200 BYE`;B 新增 `raw_cdrs` 记录 `raw_4281ea422d1c4465964c6bf054a90115`,`rating_status=RATED`,生成 `rated_cdrs` 记录 `rated_b3e4b572d8f94fd6a0d6779a86a0294e`,`bill_sec=6`、客户费用 `0.012000`、供应商成本 `0.012000`。
|
||||
- 回滚方式:本次未切换 release、未改数据库 schema、未删除数据。若需撤回本次运行态启动,可在 B 执行 `sudo systemctl stop lisglosips@recording-worker lisglosips@config-publisher`;B current 仍指向 `/opt/lisglosips/releases/s44-phase2-gateway-match-20260628225000`。若后续需应用回滚,仍按 S30 Runbook 使用 `/opt/lisglosips/current/infra/server-b/s30/lisglosips-release-rollback.sh`。
|
||||
- 未解决问题:S40 脚本内置 UAS 端口 `50620` 仍提示已占用,但现有 UAS 正常接起;A/T 各有一个无关 `fwupd-refresh.service` failed unit,未在本次任务中处理;真实 80 万手机号段尚未导入;浏览器逐页权限按钮和真实录音播放仍需用户人工复测。
|
||||
|
||||
### 2026-06-28 22:34 - 需求修改/二期变更:提交并部署客户网关匹配规则
|
||||
|
||||
- 状态:已完成
|
||||
|
||||
Reference in New Issue
Block a user