跳到主要内容

MAP 客户端配置指南

← 返回主文档

本指南提供了使用 OmniSS7 作为 MAP 客户端 发送 MAP 协议请求到网络元素的详细配置。

MAP 客户端 Web UI

目录

  1. 什么是 MAP 客户端模式?
  2. 启用 MAP 客户端模式
  3. 可用的 MAP 操作
  4. 通过 API 发送请求
  5. 指标和监控
  6. 故障排除

什么是 MAP 客户端模式?

MAP 客户端模式 允许 OmniSS7 作为 应用服务器进程 (ASP) 连接到 M3UA 对等体 (STP 或 SGP),并发送/接收 MAP (移动应用部分) 消息以提供如下服务:

  • HLR 查询:SRI (发送路由信息)、SRI-for-SM、认证信息
  • 位置更新:更新位置、取消位置
  • 用户管理:提供漫游号码 (PRN)、插入用户数据

网络架构


启用 MAP 客户端模式

编辑 config/runtime.exs 并配置 MAP 客户端设置。有关完整的配置参考,请参见 配置参考中的 M3UA 连接参数

基本配置

config :omniss7,
# 启用 MAP 客户端模式
map_client_enabled: true,

# MAP 客户端的 M3UA 连接(作为 ASP 连接到远程 STP/SGP)
map_client_m3ua: %{
mode: "ASP", # M3UA 模式:"ASP"(客户端)或 "SGP"(服务器)
callback: {MapClient, :handle_payload, []}, # 处理传入消息的回调
process_name: :map_client_asp, # 注册的进程名称
local_ip: {10, 0, 0, 100}, # 本地 IP 地址
local_port: 2905, # 本地 SCTP 端口
remote_ip: {10, 0, 0, 1}, # 远程 STP/SGP IP
remote_port: 2905, # 远��� STP/SGP 端口
routing_context: 1 # M3UA 路由上下文
}

生产配置示例

config :omniss7,
# 为生产启用 MAP 客户端
map_client_enabled: true,

# 生产 M3UA 连接
map_client_m3ua: %{
mode: "ASP",
callback: {MapClient, :handle_payload, []},
process_name: :map_client_asp,
local_ip: {10, 0, 0, 100},
local_port: 2905,
remote_ip: {10, 0, 0, 1}, # 生产 STP IP
remote_port: 2905,
routing_context: 1
}

config :control_panel,
web: %{
listen_ip: "0.0.0.0",
port: 443,
hostname: "ss7-gateway.example.com",
enable_tls: true,
tls_cert: "/etc/ssl/certs/gateway.crt",
tls_key: "/etc/ssl/private/gateway.key"
}

可用的 MAP 操作

MAP 客户端 API

1. 为 SM 发送路由信息 (SRI-for-SM)

查询 HLR 以确定 SMS 投递的服务 MSC。有关 HLR 如何处理 SRI-for-SM 请求的详细信息,请参见 HLR 指南中的 SRI-for-SM

API 端点: POST /api/sri-for-sm

请求:

{
"msisdn": "447712345678",
"serviceCenter": "447999123456"
}

响应:

{
"result": {
"imsi": "234509876543210",
"locationInfoWithLMSI": {
"networkNode-Number": "447999555111"
}
}
}

cURL 示例:

curl -X POST http://localhost/api/sri-for-sm \
-H "Content-Type: application/json" \
-d '{
"msisdn": "447712345678",
"serviceCenter": "447999123456"
}'

2. 发送路由信息 (SRI)

查询 HLR 以获取语音通话路由信息。

API 端点: POST /api/sri

请求:

{
"msisdn": "447712345678",
"gmsc": "447999123456"
}

响应:

{
"result": {
"imsi": "234509876543210",
"extendedRoutingInfo": {
"routingInfo": {
"roamingNumber": "447999555222"
}
}
}
}

3. 提供漫游号码 (PRN)

请求服务 MSC 的临时漫游号码 (MSRN)。

API 端点: POST /api/prn

请求:

{
"msisdn": "447712345678",
"gmsc": "447999123456",
"msc_number": "447999555111",
"imsi": "234509876543210"
}

4. 发送认证信息

请求 HLR 的认证向量以进行用户认证。

API 端点: POST /api/send-auth-info

请求:

{
"imsi": "234509876543210",
"vectors": 5
}

响应:

{
"result": {
"authenticationSetList": [
{
"rand": "0123456789ABCDEF0123456789ABCDEF",
"xres": "ABCDEF0123456789",
"ck": "0123456789ABCDEF0123456789ABCDEF",
"ik": "FEDCBA9876543210FEDCBA9876543210",
"autn": "0123456789ABCDEF0123456789ABCDEF"
}
]
}
}

5. 更新位置

向 HLR 注册用户的当前位置。有关 UpdateLocation 处理和 InsertSubscriberData 序列的详细信息,请参见 HLR 指南中的位置更新

API 端点: POST /api/updateLocation

请求:

{
"imsi": "234509876543210",
"vlr": "447999555111"
}

MAP 操作摘要


通过 API 发送请求

使用 Swagger UI

Swagger UI 提供了一个交互式界面,用于发送 SS7 请求。

访问 Swagger UI:

  1. 导航到 http://your-server/swagger
  2. 浏览可用的 API 端点
  3. 点击任何端点以展开其详细信息

发送请求:

  1. 点击您想使用的端点(例如,/api/sri-for-sm
  2. 点击“试用”按钮
  3. 在请求体中填写所需参数
  4. 点击“执行”
  5. 查看下面的响应

API 响应代码

  • 200 - 成功,结果返回在响应体中
  • 400 - 错误请求,参数无效
  • 504 - 网关超时,SS7 网络在 10 秒内没有响应

MAP 客户端指标

可用指标

请求指标:

  • map_requests_total - 发送的 MAP 请求总数

    • 标签:operation(值:srisri_for_smprnauthentication_info 等)
  • map_request_errors_total - MAP 请求错误的总数

    • 标签:operation
  • map_request_duration_milliseconds - MAP 请求持续时间的直方图

    • 标签:operation
  • map_pending_requests - 当前待处理的 MAP 请求数量(仪表)

示例 Prometheus 查询

# 最近一小时的 SRI-for-SM 请求总数
increase(map_requests_total{operation="sri_for_sm"}[1h])

# SRI 请求的平均响应时间
rate(map_request_duration_milliseconds_sum{operation="sri"}[5m]) /
rate(map_request_duration_milliseconds_count{operation="sri"}[5m])

# 所有 MAP 操作的错误率
sum(rate(map_request_errors_total[5m])) by (operation)

# 当前待处理请求
map_pending_requests

故障排除 MAP 客户端

问题:请求超时

症状:

  • API 返回 504 网关超时
  • HLR/MSC 没有响应

检查:

  1. 验证 M3UA 连接是否处于活动状态:

    # 在 IEx 控制台中
    :sys.get_state(:map_client_asp)
  2. 检查与 STP 的网络连接

  3. 验证路由上下文和 SCCP 地址

  4. 检查日志中的 SCCP 错误


问题:SCCP 错误

症状:

  • API 返回 SCCP 错误响应
  • 日志显示 "SCCP unitdata service" 消息

常见 SCCP 错误代码:

  • 无翻译:在 STP 路由表中未找到全局标题
  • 子系统故障:目标子系统 (HLR SSN 6) 不可用
  • 网络故障:网络拥塞或故障

解决方案:

  • 联系 STP 管理员以验证路由配置
  • 验证目标全局标题是否可达
  • 检查目标子系统是否正常运行

相关文档


OmniSS7 由 Omnitouch 网络服务提供