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

目录
什么是 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 操作

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:
- 导航到
http://your-server/swagger - 浏览可用的 API 端点
- 点击任何端点以展开其详细信息
发送请求:
- 点击您想使用的端点(例如,
/api/sri-for-sm) - 点击“试用”按钮
- 在请求体中填写所需参数
- 点击“执行”
- 查看下面的响应
API 响应代码
- 200 - 成功,结果返回在响应体中
- 400 - 错误请求,参数无效
- 504 - 网关超时,SS7 网络在 10 秒内没有响应
MAP 客户端指标
可用指标
请求指标:
-
map_requests_total- 发送的 MAP 请求总数- 标签:
operation(值:sri、sri_for_sm、prn、authentication_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 没有响应
检查:
-
验证 M3UA 连接是否处于活动状态:
# 在 IEx 控制台中
:sys.get_state(:map_client_asp) -
检查与 STP 的网络连接
-
验证路由上下文和 SCCP 地址
-
检查日志中的 SCCP 错误
问题:SCCP 错误
症状:
- API 返回 SCCP 错误响应
- 日志显示 "SCCP unitdata service" 消息
常见 SCCP 错误代码:
- 无翻译:在 STP 路由表中未找到全局标题
- 子系统故障:目标子系统 (HLR SSN 6) 不可用
- 网络故障:网络拥塞或故障
解决方案:
- 联系 STP 管理员以验证路由配置
- 验证目标全局标题是否可达
- 检查目标子系统是否正常运行
相关文档
OmniSS7 由 Omnitouch 网络服务提供