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