跳到主要内容

OmniMessage IMS 前端

OmniMessage 的 SIP 传输层 - 处理 IMS 网络中的消息进出

功能

这是一个轻量级的 SIP 前端,充当 IMS 网络与 OmniMessage 后端之间的传输层。所有消息处理、路由逻辑和业务逻辑均由 OmniMessage 处理 - 该前端仅仅:

  • 接收 SIP REGISTER 消息并将订阅者数据转发给 OmniMessage
  • 通过 SIP MESSAGE 接收移动发起 (MO) 短信并转发给 OmniMessage
  • 从 OmniMessage 检索移动终止 (MT) 短信并通过 SIP MESSAGE 发送
  • 向 OmniMessage 报告交付状态
  • 处理 SIP 层级的协议细节(头部、确认等)

架构

IMS 前端由两个主要组件组成:

SIP 协议处理:

  • SIP REGISTER - 提取订阅者数据并转发给 OmniMessage
  • SIP MESSAGE - 接收 MO 短信并转发给 OmniMessage
  • SIP MESSAGE - 从 OmniMessage 向订阅者发送 MT 短信
  • SIP NOTIFY - 处理事件通知
  • UAC 响应 - 捕获交付确认并转发给 OmniMessage

OmniMessage 后端传输层:

  • insert_location() - 将订阅者注册数据发送到 OmniMessage
  • insert_message() - 将传入的 MO 消息发送到 OmniMessage
  • get_queue() - 从 OmniMessage 检索待处理的 MT 消息
  • process_message() - 向 OmniMessage 发送交付状态更新
  • frontend_register() - 将此前端注册到 OmniMessage

所有消息处理、路由决策、排队、存储和业务逻辑均在 OmniMessage 中进行。 该前端纯粹是一个 SIP 传输适配器。

配置

所有配置存储在 config.yaml 文件中。

配置参数

api_base_url - OmniMessage 后端 API 的基础 URL

  • 格式:https://hostname:port
  • 示例:https://10.5.198.200:8443
  • 用于所有后端 API 调用(insert_location、insert_message、get_queue 等)

location - 此 IMS 前端实例的标识符

  • 格式:FQDN 风格的标识符
  • 示例:smsc01.mnc001.mcc001.3gppnetwork.org
  • 用于在后端系统中识别此前端
  • 应在所有前端中唯一

s_cscf_sip_uri - 用于路由消息的 S-CSCF SIP URI(可选)

  • 格式:sip:hostname:port
  • 示例:sip:127.0.0.2:5060
  • 如果设置,所有出站 SIP MESSAGE 通过此 S-CSCF 路由
  • 如果未设置,消息直接路由到 IMS 域

ims_domain - 用于订阅者路由的 IMS 域

  • 格式:IMS 域名
  • 示例:ims.mnc001.mcc001.3gppnetwork.org
  • 用于构造订阅者寻址的 SIP URI
  • 当未配��� s_cscf_sip_uri 时使用

消息流

SIP REGISTER 流程

移动发起 (MO) 短信流程

移动终止 (MT) 短信流程