跳到主要内容

OmniMessage SMPP 网关

产品概述​

OmniMessage SMPP 网关是 OmniMessage 平台的多个前端协议之一。

它通过使用行业标准的 SMPP(短消息点对点)协议,将您的基础设施连接到移动网络,从而实现短信消息传递。

重要:该网关是无状态协议前端。与其他 OmniMessage 前端(Diameter、MAP、IMS)一样,它仅仅是将协议消息转换为 OmniMessage 的 API 以进行路由和处理。

关键功能​

  • 双向 SMPP 消息传递:作为 SMSc 或 ESME(客户端或服务器)通过 SMPP 发送和接收短信
  • 多连接:同时连接到多个运营商
  • 高性能:每秒处理数千条消息
  • 本地消息缓存:在 API 中断期间继续接受消息并自动重试
  • 送达回执(DLR):为每条提交的消息将 SMPP 送达回执发送回互联绑定
  • 监控:内置 Prometheus 指标和网络仪表板
  • 可靠性:自动重连和消息重试
  • 无状态操作:所有处理委托给 OmniMessage 后端

谁应该使用本指南?​

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

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

快速开始​

首次设置​

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

日常操作​

常见的操作任务:

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

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

系统架构​

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

关键概念:

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

OmniMessage 集成​

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

前端协议目的
SMPP 网关SMPP (短信)通过 SMPP 协议进行短信消息传递
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,发送给运营商,并报告状态。

文档结构​

本文档分为以下指南:

访问点​

网络仪表板​

  • 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
检查状态网络界面 → 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服务定义

安全注意事项​

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

下一步​

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