跳到主要内容

OmniMessage SMPP 网关 - 操作指南

什么是 OmniMessage SMPP 网关?

OmniMessage SMPP 网关是 OmniMessage 电信平台的多个前端协议之一。它通过使用行业标准的 SMPP(短消息点对点)协议,将您的基础设施连接到移动网络,从而实现 SMS 消息传递。

重要:此网关是无状态协议前端。它没有业务逻辑、消息处理或存储能力。所有智能来自 OmniMessage,通过 REST API 访问。与其他 OmniMessage 前端(Diameter、MAP、IMS)一样,它只是将协议消息转换为 OmniMessage 的内部格式。

关键功能

  • 双向 SMPP 消息传递:通过 SMPP 发送和接收 SMS 消息
  • 多个连接:同时连接多个运营商
  • 高性能:每秒处理数千条消息
  • 监控:内置 Prometheus 指标和网络仪表板
  • 可靠性:自动重连和消息重试
  • 无状态操作:所有处理委托给 OmniMessage 后端

谁应该使用本指南?

本指南适用于负责以下工作的运营团队:

  • 安装和配置网关
  • 监控消息流量
  • 管理 SMPP 连接
  • 排除故障

快速开始

第一次设置

  1. 访问网络仪表板https://your-server:8087
  2. 检查系统状态:导航到 SMPP → 实时状态
  3. 查看配置:请参见 CONFIGURATION.md
  4. 设置监控:请参见 MONITORING.md

日常操作

常见操作任务:

任务操作
检查连接状态网络 UI → SMPP → 实时状态
查看消息流量网络 UI → 队列
监控系统健康网络 UI → 日志或 Prometheus 指标
添加/修改连接网络 UI → SMPP → 客户端/服务器对等体

请参见 OPERATIONS.md 获取详细程序。

系统架构

SMPP 网关是一个无状态协议转换器,作为 OmniMessage 平台的一部分运行:

关键概念

  • SMPP 网关:仅为协议转换器 - 无消息处理、存储或业务逻辑
  • OmniMessage:处理所有消息逻辑、路由和存储的核心平台
  • API 通信:网关从 OmniMessage 检索要发送的消息,并报告交付状态

OmniMessage 集成

OmniMessage SMPP 网关是 OmniMessage 消息平台的 协议前端。它是与移动网络使用不同协议接口的多个相同前端类型之一:

前端协议目的
SMPP 网关SMPP (SMS)通过 SMPP 协议进行 SMS 消息传递
Diameter 网关Diameter基于 IMS 的消息传递
MAP 网关MAP移动网络信令
IMS 网关IMSIP 多媒体子系统

所有前端共享相同的架构:它们是无状态协议转换器,将所有智能委托给 OmniMessage 核心

工作原理

入站消息流(外部系统 → 运营商):

出站消息流(运营商 → SMPP 网关):

网关的功能

  • 接收来自运营商和外部客户端的 SMPP PDU
  • 解析和验证 SMPP 协议消息
  • 将 SMPP 格式转换为 OmniMessage 内部格式
  • 使用消息数据调用 OmniMessage REST API
  • 通过 API 轮询从 OmniMessage 接收消息
  • 将 OmniMessage 格式转换回 SMPP PDU
  • 将交付回执报告回 OmniMessage

网关不做的事情

  • ❌ 不存储或持久化消息
  • ❌ 不做路由决策(由 OmniMessage 决定)
  • ❌ 不进行速率限制(由 OmniMessage 强制执行)
  • ❌ 不进行号码验证(由 OmniMessage 验证)
  • ❌ 不进行状态跟踪(由 OmniMessage 维护状态)
  • ❌ 不处理业务逻辑(由 OmniMessage 处理所有逻辑)

OmniMessage REST API

网关通过 REST API 与 OmniMessage 核心进行通信:

配置

config :omnimessage_smpp,
api_base_url: "https://omnimessage-core.example.com:8443"

关键 API 操作

  • GET /api/message_queue?destination_smsc=<bind_name> - 检索待处理消息
  • PUT /api/messages/<id>/delivery_status - 报告交付回执
  • GET /api/system/health - 健康检查

消息格式: 队列中的消息包含所有必要的交付信息:

  • 目标号码
  • 消息正文
  • 源号码
  • 优先级
  • 有效期
  • 目标 SMSC(运营商绑定名称)

网关简单地检索这些信息,将其格式化为 SMPP,发送给运营商,并报告状态。

文档结构

本文档组织为以下指南:

访问点

网络仪表板

  • URLhttps://your-server:8087
  • 功能
    • 查看 SMPP 连接状态
    • 监控消息队列
    • 查看系统日志
    • 配置 SMPP 对等体
    • 访问文档

Prometheus 指标

  • URLhttp://your-server:4000/metrics
  • 格式: Prometheus 文本格式
  • 用途: 与 Grafana/Prometheus 集成

API 端点

  • URL:在 API_BASE_URL 中配置
  • 目的:消息队列后端集成

快速参考

常见任务

任务命令/位置
启动网关systemctl start omnimessage-smpp
停止网关systemctl stop omnimessage-smpp
重启网关systemctl restart omnimessage-smpp
查看日志journalctl -u omnimessage-smpp -f
检查状态网络 UI → SMPP → 实时状态
查看指标curl http://localhost:4000/metrics
编辑配置/opt/omnimessage-smpp/config/runtime.exs

重要文件

文件目的
/opt/omnimessage-smpp/config/runtime.exs主要配置
/opt/omnimessage-smpp/priv/cert/SSL 证书
/var/log/omnimessage-smpp/应用日志
/etc/systemd/system/omnimessage-smpp.service服务定义

安全注意事项

  • 网络 UI:使用 HTTPS 和您的 SSL 证书
  • API 通信:可以验证 SSL 或使用自签名证书
  • SMPP:明文协议 - 使用网络安全
  • 凭据:存储在配置文件中 - 保护访问

下一步

  1. 查看 CONFIGURATION.md 以获取所有配置选项
  2. 设置 MONITORING.md 与 Prometheus
  3. 熟悉 OPERATIONS.md 以了解日常任务
  4. 收藏 TROUBLESHOOTING.md 以便快速参考
  5. 查看 GLOSSARY.md 以了解术语