Como configurar o campo Registered Delivery no SMPP
O que é o campo Registered Delivery?
O campo Registered Delivery no SMPP é uma máscara de bits de 1 byte em PDUs como submit_sm
e data_sm
que controla
recibos de entrega e confirmações. Ele permite que remetentes acompanhem o status de entrega de mensagens por meio de recibos gerados pelo SMSC. As principais funções incluem:
- Solicitar recibos de entrega final (sucesso/falha)
- Habilitar notificações intermediárias de entrega
- Gerenciar confirmações de SME (Entidade de Mensagem Curta)
Estrutura do campo e máscara de bits
Definido no SMPP v3.4, o campo usa a seguinte estrutura de máscara de bits:
Bit | Descrição |
---|---|
0 | Recibo de entrega do SMSC (0 = desativado, 1 = ativado) |
1 | Confirmação de SME originada (0 = desativado, 1 = ativado) |
2 | Notificação intermediária (0 = desativado, 1 = ativado) |
3-7 | Reservado |
Valores comuns
Valor (Hex) | Binário | Descrição |
---|---|---|
0x00 | 00000000 | Nenhum recibo solicitado |
0x01 | 00000001 | Apenas recibo de entrega do SMSC |
0x03 | 00000011 | Recibo do SMSC + confirmação de SME |
0x05 | 00000101 | Recibo do SMSC + notificações intermediárias |
Casos de uso
1. Recibos de entrega básicos
registered_delivery: 0x01 // Solicitar status de entrega final
2. Mensagens de alta confiabilidade
registered_delivery: 0x05 // Recibo + notificações intermediárias
3. Comunicação bidirecional
registered_delivery: 0x03 // Confirmar entrega no SMSC e SME
Exemplos de PDUs SMPP
Exemplo 1: Sem recibos (0x00)
0000001D // Comprimento do comando (29 bytes) 00000004 // ID do comando (SubmitSM) 00000001 // Número de sequência 00 // TON de origem 00 // NPI de origem 736F7572636500 // Endereço de origem ("source") 00 // TON de destino 00 // NPI de destino 36353433323100 // Endereço de destino ("654321") 00 // Classe ESM 00 // ID do protocolo 00 // Flag de prioridade 00 // Horário de agendamento de entrega 00 // Período de validade 00 // Registered Delivery (0x00: Sem recibos) 00 // Replace-if-Present 00 // Codificação de dados (DCS=0x00) 00 // ID padrão da mensagem SM 07 // Comprimento SM (7 septets) C8329BFD06DDDF72 // Conteúdo ("Hello!")
Exemplo 2: Recibo de entrega do SMSC (0x01)
0000001D // Comprimento do comando (29 bytes) 00000004 // ID do comando (SubmitSM) 00000002 // Número de sequência ... 00 // Período de validade 01 // Registered Delivery (0x01: Recibo do SMSC) 00 // Replace-if-Present ...
Exemplo 3: Notificações intermediárias (0x05)
0000001D // Comprimento do comando (29 bytes) 00000004 // ID do comando (SubmitSM) 00000003 // Número de sequência ... 05 // Registered Delivery (0x05: Recibo do SMSC + intermediários) ...
Formato do recibo de entrega
SMSCs retornam recibos via PDUs deliver_sm
com um conteúdo formatado como:
id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:STATUS err:EEE
Exemplo de recibo para uma mensagem entregue:
id:1896384752 sub:001 dlvrd:001 submit date:2310151430 done date:2310151431 stat:DELIVRD err:000
Interações com outros campos
- esm_class: O bit 6 (flag de recibo de entrega) deve estar alinhado com as configurações de registered_delivery
- validity_period: Determina por quanto tempo o SMSC tentará entregar antes de enviar um recibo de falha
- message_id: Crítico para correlacionar recibos com mensagens originais
Armadilhas comuns
- Habilitar recibos, mas não escutar PDUs
deliver_sm
- Assumir que todos os SMSCs suportam confirmações de SME (0x02)
- Incompatibilidade entre flags
registered_delivery
eesm_class
- Ignorar limites de taxa do SMSC para geração de recibos
Alguns provedores cobram extra por recibos de entrega. Confirme os preços antes de habilitar.
Conclusão
O campo Registered Delivery é essencial para rastrear o status de entrega de SMS no SMPP. Embora o tratamento básico de recibos (0x01) seja amplamente suportado,
recursos avançados como notificações intermediárias exigem testes específicos com o SMSC. Sempre implemente análise robusta de recibos e correlacione mensagens
usando message_id
. Para comportamento detalhado, consulte a Seção 5.2.17 do SMPP v3.4 e a documentação do seu provedor.
More information
- Como configurar o campo Tipo de serviço SMPP
- Como configurar os campos de número de telefone SMPP
- Como configurar o campo Classe ESM do SMPP
- Como configurar o campo PID do SMPP
- Como configurar o campo de prioridade do SMPP
- Como configurar o campo de tempo agendado do SMPP
- Como configurar o campo de período de validade do SMPP
- Como configurar o campo de entrega registrada do SMPP
- Como configurar o campo Substituir se presente do SMPP
- Como configurar o campo sm_default_msg_id
- Como configurar o campo DCS do SMPP
- Como calcular o campo de comprimento SM do SMPP
- Como inserir dados no campo SM SMPP