OmniMessage IMS Frontend
SIP transport layer for OmniMessage - handles getting messages into and out of IMS networks
What it Does
This is a lightweight SIP frontend that acts as a transport layer between IMS networks and the OmniMessage backend. All message processing, routing logic, and business logic is handled by OmniMessage - this frontend simply:
- Receives SIP REGISTER messages and forwards subscriber data to OmniMessage
- Receives Mobile Originated (MO) SMS via SIP MESSAGE and forwards to OmniMessage
- Retrieves Mobile Terminated (MT) SMS from OmniMessage and sends via SIP MESSAGE
- Reports delivery status back to OmniMessage
- Handles SIP-level protocol details (headers, acknowledgments, etc.)
Architecture
The IMS frontend consists of two main components:
SIP protocol handling:
- SIP REGISTER - Extracts subscriber data and forwards to OmniMessage
- SIP MESSAGE - Receives MO SMS and forwards to OmniMessage
- SIP MESSAGE - Sends MT SMS from OmniMessage to subscribers
- SIP NOTIFY - Handles event notifications
- UAC responses - Captures delivery confirmations and forwards to OmniMessage
OmniMessage backend transport layer:
insert_location()- Sends subscriber registration data to OmniMessageinsert_message()- Sends incoming MO messages to OmniMessageget_queue()- Retrieves pending MT messages from OmniMessageprocess_message()- Sends delivery status updates to OmniMessagefrontend_register()- Registers this frontend with OmniMessage
All message processing, routing decisions, queuing, storage, and business logic happens in OmniMessage. This frontend is purely a SIP transport adapter.
Configuration
All configuration is stored in the config.yaml file.
Configuration Parameters
api_base_url - Base URL for the OmniMessage backend API
- Format:
https://hostname:port - Example:
https://10.5.198.200:8443 - Used for all backend API calls (insert_location, insert_message, get_queue, etc.)
location - Identifier for this IMS frontend instance
- Format: FQDN-style identifier
- Example:
smsc01.mnc001.mcc001.3gppnetwork.org - Used to identify this frontend in the backend system
- Should be unique across all frontends
s_cscf_sip_uri - S-CSCF SIP URI for routing messages (optional)
- Format:
sip:hostname:port - Example:
sip:127.0.0.2:5060 - If set, all outbound SIP MESSAGEs route through this S-CSCF
- If not set, messages route directly to the IMS domain
ims_domain - IMS domain for subscriber routing
- Format: IMS domain name
- Example:
ims.mnc001.mcc001.3gppnetwork.org - Used to construct SIP URIs for subscriber addressing
- Used when s_cscf_sip_uri is not configured