Como funcionam o submit_sm e o deliver_sm do SMPP

Esta página fornece informações sobre como funciona o procedimento de envio de SMS. Você também verá o que acontece dentro da rede móvel após você ter enviado sua mensagem de SMS para o servidor SMPP usando o PDU SUBMIT_SM.

O que é o submit_sm do SMPP

O submit_sm do SMPP é a unidade de dados de protocolo (PDU) do SMPP usada para enviar uma mensagem SMS para o servidor SMPP da Ozeki.

submit_sm do SMPP

O PDU submit_sm do SMPP é o PDU enviado ao servidor SMPP, quando um cliente SMPP deseja enviar mensagens SMS usando o protocolo SMPP. Após este PDU ser recebido pelo servidor SMPP, o número de telefone é consultado no Registro de Localização Residencial (HLR) da operadora de rede móvel. A consulta ao HLR é necessária para descobrir em qual rede o telefone móvel está atualmente roaming. Uma vez que esta informação está disponível, o SMS é encaminhado para a Estação de Comutação Móvel (MSC) da rede. Esta estação é responsável por entregar o SMS ao terminal do destinatário. O passo final é realizado pela MSC. Ela encaminha o SMS para o aparelho do destinatário (Figura 1).

Figura 1 - A rota da mensagem SMS na rede móvel

Explicação do envio de SMS com submit_sm do SMPP
  • O SMS é enviado pelo cliente SMPP
  • O SMS é recebido pelo servidor SMPP
  • O servidor SMPP retorna um relatório de envio (submit_sm_resp)
  • Uma consulta ao HLR é realizada pelo SMSC
  • O SMS é encaminhado para a MSC
  • O SMS é enviado para o telefone móvel
  • O telefone móvel confirma a mensagem
  • A MSC envia um reconhecimento para o SMSC
  • O servidor SMPP no SMSC cria um relatório de entrega
  • O servidor SMPP envia o relatório de entrega para o cliente SMPP
  • O cliente SMPP reconhece o relatório de entrega

Como você pode ver na Figura 1, a segunda parte do procedimento de envio de SMS é o ato de entregar o relatório de entrega do SMS. Isso é feito pelo servidor SMPP usando o PDU deliver_sm do SMPP. O relatório de entrega é retornado ao cliente SMPP da mesma forma que um SMS padrão é retornado.

Exemplo de submit_sm do SMPP explicado

O diagrama a seguir mostra um exemplo de PDU submit_sm do SMPP enviado pelo cliente SMPP do Ozeki 10 SMS Gateway. Na figura, você pode ver um PDU de ligação SMPP chamado smpp bind_transmitter. Este é seguido pelo PDU submit_sm do SMPP e pelo PDU deliver_sm do SMPP. (Figura 2)

Figura 2 - Exemplo de PDU submit_sm do SMPP

Exemplo de submit_sm do SMPP
2021-04-06 12:06:25.356 INFO SMPP_client_1: <- 00000098000000040000000000000002000101303030303030300001013336323035343630363930000000010000010000006548656C6C6F2C205468697320697320612074657374206D6573736167652066726F6D204F7A656B6920534D5320476174657761792E20506C65617365207669736974207777772E6F7A656B692E687520666F72206D6F726520696E666F726D6174696F6E2E
2021-04-06 12:06:25.356 INFO SMPP_client_1: -> 0000001B8000000400000000000000023339373439363831303500
Exemplo de deliver_sm do SMPP
2021-04-06 12:06:27.033 INFO SMPP_client_1: -> 000000AA000000050000000000000001000101303030303030300001013336323035343630363930000400000000000003007769643A33393734393638313035207375623A30303120646C7672643A303031207375626D697420646174653A3231303430363132303620646F6E6520646174653A3231303430363132303620737461743A44454C49565244206572723A30303020746578743A44656C697665727920737563636573732E
2021-04-06 12:06:27.033 INFO SMPP_client_1: <- 0000001180000005000000000000000100
Tutorial em vídeo sobre submit_sm do SMPP

O vídeo a seguir demonstra como você pode configurar uma conexão de cliente SMPP e como você pode enviar mensagens SMS usando o PDU submit_sm do SMPP.

Vídeo 1 - Como configurar uma conexão de cliente SMPP e enviar mensagens SMS usando o PDU submit_sm do SMPP (Tutorial em vídeo)

Parâmetros do submit_sm do SMPP (Lista rápida)

parâmetros do submit_sm

  1. comprimento do comando
  2. id do comando
  3. status do comando
  4. número de sequência
  5. tipo de serviço
  6. endereço de origem
  7. endereço de destino
  8. flags de SMS
  9. carimbos de data/hora
  10. esquema de codificação de dados
  11. mensagem curta

Parâmetros SMPP submit_sm

Nome do Campo Tamanho (octetos) Tipo Descrição
command_length 4 Inteiro Define o comprimento total do PDU.
command_id 4 Inteiro 0x00000004
command_status 4 Inteiro 0x00000000
sequence_number 4 Inteiro Define um número de sequência único. O PDU submit_sm_resp associado ecoará este número de sequência.
service_type Var. máx. 6 C-Octet String O parâmetro service_type pode ser usado para indicar o serviço de aplicação SMS associado à mensagem. Especificar o service_type permite que o ESME aproveite serviços de mensagens avançados, como "substituir por service_type" ou controle o teleserviço usado na interface aérea.
Defina como NULL para configurações padrão do MC.
source_addr_ton 1 Inteiro Tipo de Número para o endereço de origem.
Se desconhecido, defina como NULL (Desconhecido).
source_addr_npi 1 Inteiro Indicador de Plano de Numeração para o endereço de origem.
Se desconhecido, defina como NULL (Desconhecido).
source_addr Var. máx. 21 C-Octet String Endereço do SME que originou esta mensagem.
Se desconhecido, defina como NULL (Desconhecido).
dest_addr_ton  1  Inteiro  Tipo de Número para o destino
dest_addr_npi1InteiroIndicador de Plano de Numeração para o destino
destination_addr Var. máx. 21 C-Octet String Endereço de destino desta mensagem curta. Para mensagens terminadas em móvel, este é o número de diretório do MS do destinatário.
esm_class1InteiroIndica o Modo da Mensagem e o Tipo de Mensagem
protocol_id1InteiroIdentificador de Protocolo. Campo específico da rede.
priority_flag1InteiroDesigna o nível de prioridade da mensagem
schedule_delivery_time 1 ou 17 C-Octet String A mensagem curta deve ser agendada pelo MC para entrega.
Defina como NULL para entrega imediata da mensagem.
validity_period 1 ou 17 C-Octet String O período de validade desta mensagem.
Defina como NULL para solicitar o período de validade padrão do MC.
Observação: isso é substituído pelo TLV qos_time_to_live, se especificado.
registered_delivery 1 Inteiro Indicador para sinalizar se um recibo de entrega do MC, ACK manual, ACK de entrega ou uma notificação intermediária é necessária.
replace_if_present_flag 1 Inteiro Sinaliza se a mensagem enviada deve substituir uma mensagem existente.
data_coding1InteiroDefine o esquema de codificação dos dados do usuário da mensagem curta.
sm_default_msg_id 1 Inteiro Indica a mensagem curta a ser enviada a partir de uma lista de mensagens curtas pré-definidas ('enlatadas') armazenadas no MC. Se não estiver usando uma mensagem enlatada do MC, defina como NULL.
sm_length1InteiroComprimento em octetos dos dados do usuário da short_message.
short_message Var. 0-255 Octet String Até 255 octetos de dados do usuário da mensagem curta.
O limite físico exato para o tamanho da short_message pode variar de acordo com a rede subjacente.
Observação: este campo é substituído pelo TLV message_payload, se especificado.
TLVs de Envio de Mensagem Var. TLV

More information