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()- 将订阅者注册数据发送到 OmniMessageinsert_message()- 将传入的 MO 消息发送到 OmniMessageget_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 时使用