跳到主要内容

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注册用户的当前位置。有关更新位置处理和插入用户数据序列的详细信息,请参见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网络服务提供