OmniMessage SMPP 网关 - 操作指南
版本: 1.0.0
适用于运营团队
什么是 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 Core。
工作原理
入站消息流(外部系统 → 运营商):
出站消息流(运营商 → 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 Core 通信:
配置:
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 以了解术语
版权 © 2025 Omnitouch Network Services
许可给: Omnitouch