HLR 查询和呼叫模拟器 - 用户指南
概述
新增了两个诊断工具,以帮助运营人员在不影响实时流量的情况下排查呼叫路由问题。
HLR 查询工具
目的
HLR 查询工具通过 SS7 MAP 协议查询家庭位置寄存器 (HLR),以获取实时的用户路由信息。
访问
导航到 /hlr 或点击导航菜单中的 "HLR"。
显示内容
对于任何电话号码,HLR 查询显示:
-
MSRN (移动台漫游号码)
- 在用户漫游到 2G/3G 网络时分配的临时路由号码
- 仅在用户当前漫游时存在
- 被拨号计划用于将呼叫路由到漫游用户的当前位置
-
呼叫转移设置
- 来自 HLR 的实时呼叫转移配置
- 类型:无条件、忙碌、未应答、不可达
- 显示转移目的地号码
- 显示通知是否启用
-
拨号计划变量
- 将设置的确切通道变量
- 变量与实际呼叫处理中的变量匹配
- 显示 HLR 数据如何覆盖 Sh 数据
使用案例
诊断漫游问题
场景: 对漫游用户的来电失败或路由不正确
步骤:
- 打开 HLR 查询页面
- 输入用户的电话号码
- 点击 "查询 HLR 数据"
- 检查结果中的 MSRN
- 如果 MSRN 存在:用户正在漫游,验证 MSRN 是否有效
- 如果没有 MSRN:用户可能在 LTE/VoLTE 中(不需要 MSRN)
验证呼叫转移
场景: 呼叫转移未按预期工作
步骤:
- 打开 HLR 查询页面
- 输入用户的电话号码
- 点击 "查询 HLR 数据"
- 在结果中查找 "呼叫转移"
- 验证转移类型(无条件、忙碌等)
- 验证转移目的地号码
- 注意:HLR 数据覆盖任何 Sh/HSS 数据
测试 HLR 连接性
场景: 验证 SS7 MAP 网关是否正常工作
步骤:
- 打开 HLR 查询页面
- 输入任何已知的用户号码
- 点击 "查询 HLR 数据"
- 检查结果中的 "错误"
- 如果有错误:检查 SS7 MAP 网关连接性
- 常见错误:
- "SS7 MAP 已禁用" - 检查配置
- "超时" - 到 HLR 的网络问题
- "没有 VLR 号码" - 用户离线或不存在
信息框
HLR 查询页面包含教育信息,解释:
- MSRN 是什么以及何时使用
- HLR 中呼叫转移的工作原理
- 这如何与呼叫处理集成
- SS7 MAP 协议基础知识
呼叫模拟器工具
目的
呼叫模拟器���许您模拟完整的呼叫路由,而无需实际拨打电话或影响实时流量。
访问
导航到 /simulator 或点击导航菜单中的 "模拟器"。
特性
输入参数
-
源号码(呼叫方)
- 呼叫方的电话号码
- 对于 MT 呼叫:可以是任何号码
- 对于 MO 呼叫:必须是已配置的用户
-
目标号码(被叫方)
- 被叫方的电话号码
- 对于 MT 呼叫:必须是已配置的用户
- 对于 MO 呼叫:可以是任何号码
- 对于紧急情况:使用 "urn:service:sos" 或类似
-
源 IP 地址
- SIP 信令源的 IP 地址
- 必须在
allowed_sbc_source_ips(对于 MT)或allowed_cscf_ips(对于 MO)中 - 决定呼叫处置(MT 与 MO)
-
强制处置
- 自动:根据 IP 地址确定(正常行为)
- MT:强制移动终止(来电)
- MO:强制移动发起(去电)
- 紧急:强制紧急呼叫处理
-
选项
- 跳过 OCS 授权:绕过在线计费(更快的模拟)
- 跳过 HLR 查询:绕过 SS7 MAP 查询(更快的模拟)
输出
模拟器显示全面的结果:
-
呼叫类型横幅
- MT、MO 或紧急
- 颜色编码以便快速识别
- 显示源和目标号码
-
处理步骤(左列)
- 用户数据:来自 Sh 接口(HSS)的结果
- HLR 数据:来自 SS7 MAP 查询的结果(仅 MT)
- OCS 授权:来自在线计费的结果(仅 MO)
- 在网状态:目标是否在您的网络上(仅 MO)
-
拨号计划变量(右列)
- 将在通道上设置的每个变量
- 按字母顺序排序以便于阅读
- 颜色编码值(绿色表示正常,红色表示错误)
-
处理说明
- 逐步解释发生了什么
- 描述数据流和决策点
- 帮助理解为什么设置了某些变量
使用案例
飞行前测试
场景: 在部署到生产环境之前测试配置更改
步骤:
- 在开发/测试环境中进行配置更改
- 打开呼叫模拟器
- 测试多个场景:
- 从您的 SBC 发起的 MT 呼叫
- 从您的 CSCF 发起的 MO 呼叫
- 紧急呼叫
- 在网目标
- 不在网目标
- 验证所有变量是否正确
- 检查处理说明以获取任何问题
- 自信地部署到生产环境
调试 MT 呼叫问题
场景: 对用户的来电失败
步骤:
- 打开呼叫模拟器
- 输入目标作为问题用户
- 输入源作为测试号码
- 将源 IP 设置为您的 SBC IP
- 将强制处置保持为 "自动"
- 点击 "模拟呼叫"
- 检查��户数据部分以确认 Sh 查询成功
- 检查 HLR 数据部分以获取 MSRN 或转移
- 检查最终变量以获取
hangup_case - 如果
hangup_case为 "UNALLOCATED_NUMBER":用户未配置 - 如果变量看起来正确:问题可能出在拨号计划模板中
调试 MO 呼叫问题
场景: 用户的去电失败
步骤:
- 打开呼叫模拟器
- 输入源作为问题用户
- 输入目标作为测试号码
- 将源 IP 设置为您的 CSCF IP
- 如果测试计费,请取消选中 "跳过 OCS 授权"
- 点击 "模拟呼叫"
- 检查呼叫者数据部分以确认 Sh 查询成功
- 检查 OCS 授权部分以获取成功/失败
- 检查在网状态以验证正确路由
- 检查最终变量以获取
allocated_time或hangup_case - 如果
hangup_case为 "OUTGOING_CALL_BARRED":OCS 拒绝了呼叫
测试紧急呼叫处理
场景: 验证紧急呼叫是否正常工作
步骤:
- 打开呼叫模拟器
- 输入源作为测试用户
- 输入目标为 "urn:service:sos"
- 设置任何源 IP(紧急呼叫绕过 IP 认证)
- 点击 "模拟呼叫"
- 验证呼叫类型显示为 "紧急 (SOS)"
- 验证
hangup_case为 "none"(紧急呼叫始终继续) - 检查 OCS 和 HLR 是否被绕过
- 验证调用者数据已检索���位置信息
培训员工
场景: 教授运营人员呼叫路由的工作原理
步骤:
- 打开呼叫模拟器
- 运行各种场景并解释每个部分:
- 显示 MT 呼叫并解释 Sh + HLR 查询
- 显示 MO 呼叫并解释 OCS 授权
- 显示紧急呼叫并解释绕过行为
- 显示未经授权的 IP 并解释拒绝
- 让员工尝试不同组合
- 使用处理说明解释每个决策
- 比较不同场景之间的变量
比较 Sh 与 HLR 数据
场景: 理解 HLR 如何覆盖 Sh 数据
步骤:
- 打开 MT 呼叫的呼叫模拟器
- 取消选中 "跳过 HLR 查询"
- 点击 "模拟呼叫"
- 比较用户数据变量与 HLR 数据变量
- 检查最终变量以查看哪些值胜出
- 注意:HLR 数据始终优先:
- MSRN
call_forward_all_destinationcall_forward_not_reachable_destination
提示
- 在测试其他方面时,使用 "跳过 OCS 授权" 和 "跳过 HLR 查询" 以加快模拟速度
- 从日志中复制/粘贴电话号码到模拟器以快速测试
- 使用 "强制处置" 测试特定呼叫类型,无论 IP 如何
- 如果不确定为什么设置了某些变量,请检查处理说明
- 多次运行模拟以验证一致性
- 将模拟结果与实际呼叫日志进行比较
限制
模���器:
- 不会实际拨打电话
- 不会影响呼叫路由系统
- 不会消耗 OCS 配额(即使查询了 OCS)
- 不会生成 CDR
- 在生产系统上使用是安全的
模拟器确实:
- 如果未跳过,则查询实际的 Sh 接口(HSS)
- 如果未跳过,则通过 SS7 MAP 查询实际的 HLR
- 如果未跳过,则查询实际的 OCS
- 显示在真实呼叫中会发生的确切情况
- 使用真实的配置值
与监控的集成
这两个工具与 Prometheus 指标集成:
- 通过该工具的 HLR 查询计入
hlr_lookups_total - 呼叫模拟计入
call_simulations_total{call_type, source} - 处理时间在各自的持续时间指标中跟踪
这有助于:
- 跟踪诊断工具的使用
- 监控诊断查询的性能
- 识别重度使用诊断工具的用户
有关完整指标文档: 请参见 metrics.md 以获取所有可用指标、查询示例和监控设置。
最佳实践
-
首先使用呼叫模拟器
- 在进行配置更改之前
- 在排查特定用户问题时
- 理解呼叫流程以进行培训
-
使用 HLR 查询进行
- 快速检查漫游状态
- 验证来自 HLR 的呼叫转移
- 测试 SS7 MAP 连接性
-
记录发现
- 截取模拟器结果的屏幕截图
- 记录任何意外行为
- 与团队分享结果以进行分析
-
与日志进行比较
- 使用与失败呼叫相同的参数运行模拟
- 将模拟变量与实际呼叫日志进行比较
- 识别差异
-
定期测试
- 每周使用模拟器进行抽查
- 测试每种呼叫类型(MT/MO/紧急)
- 验证 OCS 和 HLR 集成
工具故障排除
HLR 查询问题
工具显示 "SS7 MAP 已禁用"
- 检查
config/runtime.exs中的ss7_map.enabled - 配置更改后重启应用程序
工具显示超时错误
- 检查 SS7 MAP 网关是否可达
- 检查到 HLR 的网络连接
- 检查配置中的
ss7_map.timeout_ms
工具显示 "没有 VLR 号码"
- 用户离线或在 HLR 中不存在
- 对于关闭电源的用户是正常的
- 对于不存在的号码是正常的
呼叫模拟器问题
模拟器显示 "没有 Sh 数据"
- 用户未在 HSS 中配置
- HSS 无法访问
- 检查
diameter.sh_application配置
模拟器显示 "源 IP 未授权"
- IP 不在
allowed_sbc_source_ips或allowed_cscf_ips中 - 使用 "强制处置" 来覆盖基于 IP 的认证
模拟器显示 "缺少必需参数"
- 除选项外,所有字段都是必需的
- 输入有效的电话号码
- 输入有效的 IP 地址
模拟器耗时过长
- 如果不测试 OCS,请取消选中 "跳过 OCS 授权"
- 如果不测试 HLR,请取消选中 "跳过 HLR 查询"
- 检查实际系统性能(Sh/HLR/OCS 响应时间)
支持
有关这些工具的问题:
- 检查应用程序日志以获取错误
- 验证配置(Sh、HLR、OCS)
- 测试与外部系统的连接
- 联系支持团队,提供屏幕截图和错误消息