新通话业务 · 局数据 / ICP 数据上线前检查

新通话局数据&ICP数据检查台

icpcheck skill · rule-matrix / icp_prescan.py · 配置默认不出本机

问题代码约定

确定问题表示文件内可单独判定。待确认项缺少生效文件或组网证据,不能写成确定事实。跨文件提示仅在自身MID唯一命中时出现,仍须人工用文件行号复核,防止假活。

确定问题

  • MALFORMED_FIELD_COUNT通道配置字段数不受支持
  • ILLEGAL_TCP_KEY使用了不支持的键名
  • DUPLICATE_TCP_KEYTcpIcp 通道序号重复
  • MID_NOT_INTEGER对端MID AppMid 不是整数
  • MID_OUT_OF_RANGEMID 超出有效范围
  • VSRMP_MODULEID_RANGEvSRMP 自身MID MODULEID 超出 9..61

待确认项

  • ROOT_LAYOUT_UNSUPPORTED配置文件不在任何模块目录下
  • ACTIVE_VARIANT_UNKNOWN生效配置文件尚未确认
  • OWN_MID_VARIANT_DIFFERENCE候选配置声明了不同的自身MID
  • DUPLICATE_OWN_MID自身MID 出现在多个模块
  • SIF_IWF_GROUP_MISMATCHSIF 组号与 [iwf] 候选不一致
  • VMSIP_SRMP_APPMID昵称仅提示对端为 vSRMP,AppMid 非 1

跨文件提示

  • PEER_CHANNEL_NOT_MUTUAL通道两端 MID 未能互证
  • PID_EXT_MISMATCHPID扩展两端语义可能不一致
  • FID_INCONSISTENT同类通道 FID 不一致

推荐对账流程

1. 确定范围

记录目标模块、配置根目录、问题代码或指定通道,以及是否有运行态数据。

2. 确认生效配置

依据启动脚本、部署清单、软链接或明确路径字段,分别选中生效的通信配置和系统配置;无法选中时保留候选歧义。

3. 跨端人工对账

核对本端自身MID、对端身份、IP:port、服务端/客户端、PID扩展、组号和来源行。NickName 只能提示类型,不能证明具体实例。

4. 运行态与报告

运行态状态只能作为辅助证据,不能单独证明对端MID正确;报告分开写确定问题、已确认跨文件问题、未确认假设和配置概况。

报告中的模块统一写成「目录名(自身MID=值)」;目录名里的数字可能是 IP 或实例标签,不是模块号(MID)。boardName 也不能当作自身MID。无后缀文件与 ini_new、以及 com_config 与 sys_config 候选,均需有直接证据后才能认定为生效配置。

规则矩阵

范围规则预扫描边界
ICP 范围ICP 是自研模块间私有 TCP 长连接。SELB-ESIP、IMS SIP/RTP、HTTP、SFTP 不是 ICP 通道。用于排除无关配置。
7 字段 com_configSIF、MIF、SCMD、SCMDC、vMSIP 使用 PeerIp,AppPort,ComMode,AppMid,HandMode,GID,NickName。已知模块必须 7 字段,其他字段数报 MALFORMED_FIELD_COUNT。
通道序号非 SCMD/SCMDC 使用不同的 TcpIcpN。序号不要求连续,不得重复。ILLEGAL_TCP_KEY、DUPLICATE_TCP_KEY。
SCMD 键名SCMD/SCMDC 必须无序号 TcpIcp,允许同一键名重复。带序号不生效。覆盖普通模块的序号规则。
VIPS 8 字段除 vMSIP/vSRMP/vSCU 外,VIPS 在 HandMode 前增加 AppFid。预扫描强制 ESIP、IVPS 为 8 字段。未知模块只接受 7 或 8,不据此声明布局。
自身MID / 对端MID普通 MID 有效范围 1..255。通道 AppMid 必须等于已选对端的自身MID。相等关系需跨文件确认,预扫描不做配对结论。
SIF [iwf]MifMid/SipMid/MMDBMid 等是组号不是模块 MID。scmd_bj→MMDBMidNew、hrnm→HrnmMid 仅为样例启发。确认生效文件和对端类型前,SIF_IWF_GROUP_MISMATCH 始终待确认。
vSRMPSRMP.CMD 以 :SET-PARAMETER:MODULEID= 配自身MID,范围 9..61。只统计以冒号开头的命令。VSRMP_MODULEID_RANGE;注释行不算记录。
vMSIP→vSRMP确认对端是 vSRMP 后 AppMid 必须为 1。1 和 34 保留。仅凭 NickName 时属于待确认。不静态判断 HandMode=1。
生效文件无后缀与 ini_new 始终是两个候选。共同带 _new 不能证明可配对。ACTIVE_VARIANT_UNKNOWN 分别报告 com 与 sys。

模块例外

SCMD / SCMDC 键名

每条通道键名都必须是无序号 TcpIcp。带通道序号的键名不生效。

VIPS 的 PID扩展

VIPS 的 HandMode=0 表示强制 PID扩展;普通 7 字段里 0 为非扩展、16 为扩展。因此 VIPS-SIF 可一侧 0、一侧 16,语义仍一致。

SIF 与 IVPS 的服务端

指南实测要求 IVPS 做服务端。SIF 做服务端时连接可能显示正常但业务不通(假活)。报告前必须确认两端生效文件。

自身MID 重复例外

默认同一网元内自研模块自身MID唯一。系统不配套网管且无接入规划时,部分模块可同 MID,但仍不推荐。静态无法判定网元边界,故始终待确认。

必须保留的指南歧义

NickName 可自定义,不能证明对端实例。FID 依赖外部规划。ESIP 示例文字与配置条目 MID 不一致。LSAM 客户端文件以 icpconfig.json 为准。

代码词典

MALFORMED_FIELD_COUNT

通道配置字段数不受支持

SIF/MIF/SCMD/SCMDC/vMSIP 必须 7 字段;ESIP/IVPS 必须 8 字段;未知模块仅接受 7 或 8。

ILLEGAL_TCP_KEY

使用了不支持的键名

普通模块使用 TcpIcpN;SCMD/SCMDC 必须无序号 TcpIcp(带序号不生效)。

DUPLICATE_TCP_KEY

TcpIcp 通道序号重复

序号不要求连续,同一文件内不得重复。

MID_NOT_INTEGER

对端MID AppMid 不是整数

对照规划表修正 AppMid / 自身MID。

MID_OUT_OF_RANGE

MID 超出有效范围

对端MID / 自身MID 须在 1..255;vSRMP MODULEID 另有 9..61。

VSRMP_MODULEID_RANGE

vSRMP 自身MID MODULEID 超出 9..61

对照 SRMP.CMD :SET-PARAMETER:MODULEID= 与规划。9..25 只是指南实测子集。

ROOT_LAYOUT_UNSUPPORTED

配置文件不在任何模块目录下

根目录散文件无法归属模块。支持多级嵌套目录(日期/网元/模块/文件),模块按配置文件所在目录识别;粘贴模式请指定模块类型。

ACTIVE_VARIANT_UNKNOWN

生效配置文件尚未确认

无后缀与 ini_new 始终是两个候选。仅 _new、或多个候选、或缺少规范名,均不能自行选定。后缀相同不能证明 SIF 的 com 与 sys 可配对。

OWN_MID_VARIANT_DIFFERENCE

候选配置声明了不同的自身MID

确认生效文件后再比对 MID。

DUPLICATE_OWN_MID

自身MID 出现在多个模块

需确认网元范围,以及系统不配套网管且无接入规划时的例外。静态无法判定网元边界。

SIF_IWF_GROUP_MISMATCH

SIF 组号与 [iwf] 候选不一致

样例昵称仅提示键名(scmd_bj→MMDBMidNew、hrnm→HrnmMid)。须先确认生效文件和对端模块类型。

VMSIP_SRMP_APPMID

昵称仅提示对端为 vSRMP,AppMid 非 1

仅在组网确认该对端后要求 AppMid=1(1/34 保留)。NickName 不能证明组网。不静态判断 HandMode=1。

PEER_CHANNEL_NOT_MUTUAL

通道两端 MID 未能互证

预扫描不做配对结论。页面仅在自身MID唯一命中时提示互证缺失,仍须人工用 file:line 确认,防止假活。

PID_EXT_MISMATCH

PID扩展两端语义可能不一致

普通 7 字段两端均 0 或均 16。VIPS HandMode=0 为强制扩展,可与对端 16 语义一致。vMSIP-vSRMP 的 HandMode=1 不静态判断。

FID_INCONSISTENT

同类通道 FID 不一致

FID 权威值依赖指南未收录的规划文档。缺少规划时只做一致性提示,不能编造正确值。