Pular para o conteúdo principal

OmniMessage IMS Frontend

Camada de transporte SIP para OmniMessage - lida com a entrada e saída de mensagens em redes IMS

O que Faz

Este é um frontend SIP leve que atua como uma camada de transporte entre redes IMS e o backend OmniMessage. Todo o processamento de mensagens, lógica de roteamento e lógica de negócios é tratado pelo OmniMessage - este frontend simplesmente:

  • Recebe mensagens SIP REGISTER e encaminha dados de assinantes para o OmniMessage
  • Recebe SMS Originados em Dispositivos Móveis (MO) via SIP MESSAGE e encaminha para o OmniMessage
  • Recupera SMS Terminados em Dispositivos Móveis (MT) do OmniMessage e envia via SIP MESSAGE
  • Relata o status de entrega de volta ao OmniMessage
  • Lida com detalhes do protocolo SIP (cabeçalhos, confirmações, etc.)

Arquitetura

O frontend IMS consiste em dois componentes principais:

Manipulação do protocolo SIP:

  • SIP REGISTER - Extrai dados do assinante e encaminha para o OmniMessage
  • SIP MESSAGE - Recebe SMS MO e encaminha para o OmniMessage
  • SIP MESSAGE - Envia SMS MT do OmniMessage para os assinantes
  • SIP NOTIFY - Lida com notificações de eventos
  • Respostas UAC - Captura confirmações de entrega e encaminha para o OmniMessage

Camada de transporte do backend OmniMessage:

  • insert_location() - Envia dados de registro do assinante para o OmniMessage
  • insert_message() - Envia mensagens MO recebidas para o OmniMessage
  • get_queue() - Recupera mensagens MT pendentes do OmniMessage
  • process_message() - Envia atualizações de status de entrega para o OmniMessage
  • frontend_register() - Registra este frontend com o OmniMessage

Todo o processamento de mensagens, decisões de roteamento, enfileiramento, armazenamento e lógica de negócios ocorre no OmniMessage. Este frontend é puramente um adaptador de transporte SIP.

Configuração

Toda a configuração é armazenada no arquivo config.yaml.

Parâmetros de Configuração

api_base_url - URL base para a API do backend OmniMessage

  • Formato: https://hostname:port
  • Exemplo: https://10.5.198.200:8443
  • Usado para todas as chamadas da API do backend (insert_location, insert_message, get_queue, etc.)

location - Identificador para esta instância do frontend IMS

  • Formato: identificador no estilo FQDN
  • Exemplo: smsc01.mnc001.mcc001.3gppnetwork.org
  • Usado para identificar este frontend no sistema backend
  • Deve ser único entre todos os frontends

s_cscf_sip_uri - URI SIP S-CSCF para roteamento de mensagens (opcional)

  • Formato: sip:hostname:port
  • Exemplo: sip:127.0.0.2:5060
  • Se definido, todas as mensagens SIP MESSAGE de saída são roteadas através deste S-CSCF
  • Se não definido, as mensagens são roteadas diretamente para o domínio IMS

ims_domain - domínio IMS para roteamento de assinantes

  • Formato: nome do domínio IMS
  • Exemplo: ims.mnc001.mcc001.3gppnetwork.org
  • Usado para construir URIs SIP para endereçamento de assinantes
  • Usado quando s_cscf_sip_uri não está configurado

Fluxo de Mensagens

Fluxo SIP REGISTER

Fluxo de SMS Originados em Dispositivos Móveis (MO)

Fluxo de SMS Terminados em Dispositivos Móveis (MT)