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 SMPPO 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 SMPPO 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).
- 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 explicadoO 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)
2021-04-06 12:06:25.356 INFO SMPP_client_1: <- 00000098000000040000000000000002000101303030303030300001013336323035343630363930000000010000010000006548656C6C6F2C205468697320697320612074657374206D6573736167652066726F6D204F7A656B6920534D5320476174657761792E20506C65617365207669736974207777772E6F7A656B692E687520666F72206D6F726520696E666F726D6174696F6E2E 2021-04-06 12:06:25.356 INFO SMPP_client_1: -> 0000001B8000000400000000000000023339373439363831303500Exemplo 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: <- 0000001180000005000000000000000100Tutorial 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.
Parâmetros do submit_sm do SMPP (Lista rápida)
parâmetros do submit_sm
- comprimento do comando
- id do comando
- status do comando
- número de sequência
- tipo de serviço
- endereço de origem
- endereço de destino
- flags de SMS
- carimbos de data/hora
- esquema de codificação de dados
- 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_npi 1 Inteiro Indicador 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_class 1 Inteiro Indica o Modo da Mensagem e o Tipo de Mensagem
protocol_id 1 Inteiro Identificador de Protocolo. Campo específico da rede.
priority_flag 1 Inteiro Designa 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_coding 1 Inteiro Define 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_length 1 Inteiro Comprimento 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
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_npi | 1 | Inteiro | Indicador 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_class | 1 | Inteiro | Indica o Modo da Mensagem e o Tipo de Mensagem |
protocol_id | 1 | Inteiro | Identificador de Protocolo. Campo específico da rede. |
priority_flag | 1 | Inteiro | Designa 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_coding | 1 | Inteiro | Define 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_length | 1 | Inteiro | Comprimento 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
- Usuário SMPP
- Como configurar um serviço SMPP
- Como criar um servidor SMPP seguro com SMPPS
- Ligação SMPP transceiver
- Como funcionam os PDUs submit_sm e deliver_sm do SMPP
- Certificado SSL SMPP seguro
- Como rastrear um SMS nos logs SMPP
- Códigos de erro SMPP status SMPP
- Introdução ao protocolo SMS
- Como configurar um limite de ligação