OmniMessage SMPP 网关 - 操作指南
什么是 OmniMessage SMPP 网关?
OmniMessage SMPP 网关是 OmniMessage 电信平台的多个前端协议之一。它通过使用行业标准的 SMPP(短消息点对点)协议,将您的基础设施连接到移动网络,从而实现 SMS 消息传递。
重要:此网关是无状态协议前端。它没有业务逻辑、消息处理或存储能力。所有智能来自 OmniMessage,通过 REST API 访问。与其他 OmniMessage 前端(Diameter、MAP、IMS)一样,它只是将协议消息转换为 OmniMessage 的内部格式。
关键功能
- 双向 SMPP 消息传递:通过 SMPP 发送和接收 SMS 消息
- 多个连接:同时连接多个运营商
- 高性能:每秒处理数千条消息
- 监控:内置 Prometheus 指标和网络仪表板
- 可靠性:自动重连和消息重试
- 无状态操作:所有处理委托给 OmniMessage 后端
谁应该使用本指南?
本指南适用于负责以下工作的运营团队:
- 安装和配置网关
- 监控消息流量
- 管理 SMPP 连接
- 排除故障
快速开始
第一次设置
- 访问网络仪表板:
https://your-server:8087 - 检查系统状态:导航到 SMPP → 实时状态
- 查看配置:请参见 CONFIGURATION.md
- 设置监控:请参见 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 网关 | IMS | IP 多媒体子系统 |
所有前端共享相同的架构:它们是无状态协议转换器,将所有智能委托给 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,发送给运营商,并报告状态。
文档结构
本文档组织为以下指南:
- CONFIGURATION.md - 完整的配置参考,解释所有参数
- MONITORING.md - Prometheus 指标和警报指南
- OPERATIONS.md - 日常操作程序
- TROUBLESHOOTING.md - 常见问题及解决方案
- GLOSSARY.md - 术语和定义
访问点
网络仪表板
- URL:
https://your-server:8087 - 功能:
- 查看 SMPP 连接状态
- 监控消息队列
- 查看系统日志
- 配置 SMPP 对等体
- 访问文档
Prometheus 指标
- URL:
http://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:明文协议 - 使用网络安全
- 凭据:存储在配置文件中 - 保护访问
下一步
- 查看 CONFIGURATION.md 以获取所有配置选项
- 设置 MONITORING.md 与 Prometheus
- 熟悉 OPERATIONS.md 以了解日常任务
- 收藏 TROUBLESHOOTING.md 以便快速参考
- 查看 GLOSSARY.md 以了解术语