Web UI 指南
本指南提供了使用 OmniSS7 Web UI(Phoenix LiveView 界面)的全面文档。
目录
概述
OmniSS7 Web UI 是一个 Phoenix LiveView 应用程序,提供实时监控和管理功能。可用页面取决于当前活动的操作模式(STP、HLR 或 SMSc)。
Web UI 架构
服务器配置
| 参数 | 值 |
|---|---|
| 协议 | HTTPS (force_ssl 启用) |
| 端口 | 8087(在 config :control_panel, ControlPanelWeb.Endpoint 下配置 → https: [port: 8087]) |
| 默认 IP | 0.0.0.0(监听所有接口) |
| 证书 | priv/cert/omnitouch.crt |
| 私钥 | priv/cert/omnitouch.pem |
| 适配器 | Bandit (Phoenix) |
访问 URL: https://[server-ip]:8087
访问 Web UI
先决条件
-
SSL 证书: 确保
priv/cert/中存在有效的 SSL 证书:omnitouch.crt- 证书文件omnitouch.pem- 私钥文件
-
应用程序运行: 使用
iex -S mix启动应用程序 -
防火墙: 确保端口
8087对 HTTPS 流量开放
按模式可用的页面
此处显示的页面标签与在 config/config.exs 中注册的标签完全相同(use_builtin_pages / use_additional_pages)。模式列指示页面通常相关的操作模式(STP/HLR/SMSc);运行时配置根据部署过滤页面列表。
| 页面 (路由) | 标签 | STP 模式 | HLR 模式 | SMSc 模式 | 描述 |
|---|---|---|---|---|---|
/application | 资源 | ✅ | ✅ | ✅ | 系统资源和监控 |
/configuration | 配置 | ✅ | ✅ | ✅ | 配置查看器 |
/license | 许可证 | ✅ | ✅ | ✅ | 许可证状态 |
/events | SS7 事件 | ✅ | ✅ | ✅ | 事件日志和 SCCP 消息捕获 |
/logs | 系统日志 | ✅ | ✅ | ✅ | 实时应用程序日志查看器 |
/client | SS7 客户端 | ✅ | ✅ | ✅ | 手动 MAP 操作测试 |
/m3ua | 对等体 | ✅ | ✅ | ✅ | M3UA 对等体 / ASP 连接状态 |
/sctp | SCTP 连接 | ✅ | ✅ | ✅ | 实时 SCTP 关联状态 |
/routing | 路由 | ✅ | ❌ | ✅ | M3UA 路由表管理 |
/routing_test | 路由测试 | ✅ | ❌ | ✅ | 路由测试和验证 |
/hlr_links | HLR 链接 | ❌ | ✅ | ❌ | HLR API 状态和订阅者管理 |
/subscribers | 活动订阅者 | ❌ | ✅ | ❌ | 实时订阅者位置跟踪 (HLR) |
/smsc_links | SMSc 链接 | ❌ | ❌ | ✅ | SMSc API 状态和队列管理 |
/smsc_subscribers | SMSc 订阅者 | ❌ | ❌ | ✅ | 实时订阅者跟踪 (SMSc) |
/camel_sessions | CAMEL 会话 | ✅ | ✅ | ✅ | 实时 CAMEL/CAP 对话监控 |
/camel_request | CAMEL 请求生成器 | ✅ | ✅ | ✅ | 交互式 CAP 请求生成器 |
/msisdn_imsi_test | MSISDN/IMSI 测试 | ✅ | ✅ | ✅ | MSISDN ↔ IMSI 查找 / 转换测试 |
M3UA 页面在导航中标记为 "对等体"(路由
/m3ua)。
路由管理
页面: /routing
模式: STP, SMSc
自动刷新: 每 5 秒
路由管理页面提供了一个选项卡界面,用于管理 M3UA 路由表。
页面布局
对等体选项卡
管理 M3UA 对等连接(其他 STP、HLR、MSC、SMSC)。
对等体表列
| 列 | 描述 | 示例 |
|---|---|---|
| ID | 唯一对等体标识符 | 1 |
| 名称 | 可读的对等体名称 | "STP_West" |
| 角色 | 连接角色 | client, server, stp |
| 点码 | 对等体的 SS7 点码 | 100 |
| 远程 | 远程 IP:端口 | 10.0.0.10:2905 |
| 状态 | 连接状态 | active, aspup, down |
| 操作 | 编辑/删除按钮 | - |
添加对等体
- 点击 对等体选项卡
- 填写 表单字段:
- 对等体 ID: 如果留空则自动生成
- 对等体名称: 描述性名称(必填)
- 角色: 选择
client、server或stp - 点码: SS7 点码(必填)
- 本地 IP: 您系统的 IP 地址
- 本地端口: 0 表示动态端口分配
- 远程 IP: 对等体的 IP 地址
- 远程端口: 对等体的端口(通常为 2905)
- 路由上下文: M3UA 路由上下文 ID
- 网络指示符:
international或national
- 点击 "添加对等体"
持久性: 对等体立即保存到 Mnesia,并在重启后保留。
编辑对等体
- 点击 对等体行上的 "编辑" 按钮
- 根据需要修改 表单字段
- 点击 "更新对等体"
注意: 如果您更改对等体 ID,旧的对等体将被删除,并创建一个新的。
删除对等体
- 点击 对等体行上的 "删除" 按钮
- 确认 删除(所有使用此对等体的路由也将被删除)
对等体状态指示器
| 状态 | 颜色 | 描述 |
|---|---|---|
active | 🟢 绿色 | 对等体已连接并正在路由消息 |
aspup | 🟡 黄色 | ASP 已启动但尚未激活 |
down | 🔴 红色 | 对等体已断开连接 |
点码路由选项卡
根据目标点码配置路由规则。
路由表列
| 列 | 描述 | 示例 |
|---|---|---|
| 目标 PC | 目标点码(zone.area.id 格式) | 1.2.3 (100) |
| 掩码 | 用于 PC 匹配的子网掩码 | /14(精确),/8(范围) |
| 对等体 ID | 此路由的目标对等体 | 1 |
| 对等体名称 | 目标对等体的名称 | "STP_West" |
| 优先级 | 路由优先级(1 = 最高) | 1 |
| 网络 | 网络指示符 | international |
| 操作 | 编辑/删除按钮 | - |
添加点码路由
- 点击 "点码路由" 选项卡
- 填写 表单字段:
- 目标点码: 以
zone.area.id(例如,1.2.3)或整数(0-16383)输入 - 掩码: 选择掩码
/14进行精确匹配,较小的值用于范围 - 对等体 ID: 从下拉菜单中选择目标对等体
- 优先级: 输入优先级(1 = 最高,默认)
- 网络指示符: 选择
international或national
- 目标点码: 以
- 点击 "添加路由"
点码格式: 您可以以两种格式输入点码:
- 3-8-3 格式:
zone.area.id(例如,1.2.3) - 整数格式:
0-16383(例如,1100)
系统会自动在格式之间转换。
理解掩码
点码是 14 位值(0-16383)。掩码指定必须匹配的最高有效位数:
| 掩码 | 匹配的 PC | 用例 |
|---|---|---|
/14 | 1(精确匹配) | 路由到特定目标 |
/13 | 2 PCs | 小范围 |
/8 | 64 PCs | 中等范围 |
/0 | 所有 16,384 PCs | 默认/回退路由 |
示例:
PC 1000 /14→ 仅匹配 PC 1000PC 1000 /8→ 匹配 PC 1000-1063(64 个连续的 PC)PC 0 /0→ 匹配所有点码(默认路由)
点码掩码参考卡
网页包含一个交互式参考,显示所有掩码值及其范围。
全局标题路由选项卡
根据 SCCP 全局标题地址配置路由规则。
要求: 必须在配置中启用全局标题路由:
config :omniss7,
enable_gt_routing: true
路由表列
| 列 | 描述 | 示例 |
|---|---|---|
| GT 前缀 | 被叫方 GT 前缀(空 = 回退) | "1234","" |
| 源 SSN | 匹配被叫方 SSN(可选) | 6(HLR),any |
| 对等体 ID | 目标对等体 | 1 |
| 对等体 | 对等体名称 | "HLR_West (1)" |
| 目标 SSN | 转发时重写 SSN(可选) | 6,preserve |
| 优先级 | 路由优先级 | 1 |
| 描述 | 路由描述 | "US numbers" |
| 操作 | 编辑/删除按钮 | - |
添加全局标题路由
- 点击 "全局标题路由" 选项卡
- 填写 表单字段:
- GT 前缀: 留空以进行回退路由,或输入数字(例如,
"1234") - 源 SSN: 可选 - 按被叫方 SSN 过滤
- 对等体 ID: 选择目标对等体
- 目标 SSN: 可选 - 转发时重写 SSN
- 优先级: 路由优先级(1 = 最高)
- 描述: 可读的描述
- GT 前缀: 留空以进行回退路由,或输入数字(例如,
- 点击 "添加路由"
回退路由: 如果 GT 前缀为空,则该路由作为不匹配任何其他路由的 GT 的捕获。
常见 SSN 值
页面包含一个参考卡,显示常见 SSN 值:
| SSN | 网络元素 |
|---|---|
| 6 | HLR(家庭位置寄存器) |
| 7 | VLR(访客位置寄存器) |
| 8 | MSC(移动交换中心) |
| 9 | EIR(设备身份寄存器) |
| 10 | AUC(认证中心) |
| 142 | RANAP |
| 145 | gsmSCF(服务控制功能) |
| 146 | SGSN |
SSN 重写
- 源 SSN: 匹配传入消息中的被叫方 SSN
- 目标 SSN: 如果设置,在转发时重写被叫方 SSN
- 空 = 保留原始 SSN
- 值 = 用此 SSN 替换
用例: 将 SSN=6(HLR)的消息路由到对等体,并在出站时重写为 SSN=7(VLR)。
路由表持久性
所有路由都存储在 Mnesia 中,并在应用程序重启后保留。
路由如何持久化
- Web UI 更改: 所有添加/编辑/删除操作立即保存到 Mnesia
- 应用程序重启: 启动时从 Mnesia 加载路由
- Runtime.exs 合并: 来自
config/runtime.exs的静态路由与 Mnesia 路由合并(无重复)
路由优先级
当多个路由匹配一个目标时:
- 更具体的优先: 更高的掩码值(更具体)优先
- 优先级字段: 较低的优先级数字先路由(1 = 最高优先级)
- 对等体状态: 仅使用到
active对等体的路由
活动订阅者
页面: /subscribers
模式: 仅 HLR
自动刷新: 每 2 秒
显示发送 UpdateLocation 请求的订阅者的实时跟踪。
页面功能
订阅者表列
| 列 | 描述 | 示例 |
|---|---|---|
| IMSI | 订阅者 IMSI | "50557123456789" |
| VLR 编号 | 当前 VLR GT 地址 | "555123155" |
| MSC 编号 | 当前 MSC GT 地址 | "555123155" |
| 更新时间 | 最后 UpdateLocation 时间戳 | "2025-10-25 14:23:45 UTC" |
| 持续时间 | 自注册以来的时间 | "2h 15m 34s" |
统计摘要
当存在订阅者时,摘要卡显示:
- 总活动: 注册的订阅者总数
- 唯一 VLR: 不同 VLR 地址的数量
- 唯一 MSC: 不同 MSC 地址的数量
清除订阅者
清除所有按钮: 从跟踪器中删除所有活动订阅者。
确认: 清除前需要确认(无法撤销)。
用例: 在网络维护或测试后清除过期的订阅者记录。
自动刷新
该页面每 2 秒 自动刷新,以显示实时订阅者更新。
SMSc 订阅者
页面: /smsc_subscribers
模式: 仅 SMSc
自动刷新: 每 2 秒
显示基于从 HLR 接收到的 alertServiceCenter 消息的订阅者的实时跟踪、消息传递状态和失败跟踪。
页面功能
订阅者表列
| 列 | 描述 | 示例 |
|---|---|---|
| MSISDN | 订阅者的电话号码 | "15551234567" |
| IMSI | 订阅者 IMSI | "001010123456789" |
| HLR GT | 发送 alertServiceCenter 的 HLR GT | "15551111111" |
| 发送的消息 | 发送的 MT-FSM 消息计数 | 5 |
| 接收的消息 | 从订阅者接收的 MO-FSM 消息计数 | 2 |
| 状态 | Active 或 Failed(颜色编码) | ● Active |
| 最后更新时间 | 最后更新时间戳 | "2025-10-30 14:23:45 UTC" |
| 持续时间 | 自最后更新以来的时间 | "15m 34s" |
状态指示器
- ● Active (绿色): 订阅者可达,最后一次成功接收 alertServiceCenter
- ○ Failed (红色): 最后一次交付尝试失败(SRI-for-SM 或缺失订阅者错误)
统计摘要
当存在订阅者时,摘要卡显示:
- 总跟踪: 跟踪的订阅者总数
- 活动: 处于活动状态的订阅者数量
- 失败: 处于失败状态的订阅者数量
- 唯一 HLR: 发送警报的不同 HLR 数量
管理订阅者
移除按钮: 从跟踪中移除单个订阅者。
清除所有按钮: 移除所有跟踪的订阅者。
确认: 清除所有需要确认后才能清除(无法撤销)。
用例:
- 在网络问题后移除过期��目
- 在开发后清除测试数据
- 监控哪些 HLR 发送警报
消息计数器
跟踪器会自动递增计数器:
- 发送的消息: 当 SRI-for-SM 成功并发送 MT-FSM 时递增
- 接收的消息: 当从订阅者接收到 MO-FSM 时递增
自动刷新
该页面每 2 秒 自动刷新,以显示实时订阅者和状态更新。
常见操作
搜索和过滤
目前,Web UI 不包括内置的搜索/过滤功能。要查找特定路由:
- 使用浏览器的查找功能 (Ctrl+F / Cmd+F)
- 搜索对等体名称、点码或 GT 前缀
批量操作
要执行批量路由更改:
- 选项 1: 使用 REST API 进行编程访问
- 选项 2: 编辑
config/runtime.exs并重启应用程序 - 选项 3: 使用 Web UI 进行单个路由更改
导出/导入
注意: Web UI 当前不支持导出或导入路由表。路由:
- 存储在 Mnesia 数据库文件中
- 在
config/runtime.exs中配置
要备份路由:
- Mnesia: 备份
Mnesia.{node_name}/目录 - 配置: 版本控制
config/runtime.exs
自动刷新行为
不同页面有不同的刷新间隔:
| 页面 | 刷新间隔 | 原因 |
|---|---|---|
| 路由管理 | 5 秒 | 路由更改不频繁 |
| 活��订阅者 | 2 秒 | 订阅者状态频繁变化 |
| M3UA 状态 | 根据页面而异 | 连接状态监控 |
WebSocket 连接: 所有页面使用 Phoenix LiveView WebSocket 连接进行实时更新。
网络中断: 如果 WebSocket 连接丢失,页面将尝试自动重新连接。
故障排除
页面未加载
- 检查 HTTPS 证书: 确保
priv/cert/omnitouch.crt和priv/cert/omnitouch.pem存在 - 验证端口 8087: 检查防火墙规则允许端口
8087上的 HTTPS 流量 - 应用程序运行: 确认应用程序正在运行,使用
iex -S mix - 浏览器控制台: 检查 SSL 证书错误(自签名证书警告)
路由未持久化
- 检查 Mnesia 存储: 验证配置中的
mnesia_storage_type: :disc_copies - Mnesia 目录: 确保 Mnesia 目录可写
- 检查日志: 在应用程序日志中查找 Mnesia 错误
自动刷新不起作用
- WebSocket 连接: 检查浏览器控制台中的 WebSocket 错误
- 网络: 验证网络连接稳定
- 页面重新加载: 尝试刷新页面 (F5)
相关文档
总结
OmniSS7 Web UI 提供直观的实时路由表管理和订阅者跟踪:
✅ 实时更新 - 自动刷新保持数据最新
✅ 持久存储 - Mnesia 确保路由在重启后存活
✅ 基于角色的 UI - 页面根据操作模式(STP/HLR/SMSc)进行调整
✅ 交互式管理 - 添加、编辑、删除路由无需重启
✅ 状态监控 - 实时连接和对等体状态
有关高级操作或自动化,请参见 API 指南。