Como configurar o campo Período de Validade no SMPP
O que é o Campo Período de Validade?
O Período de Validade no SMPP (Short Message Peer-to-Peer Protocol) é um campo de string terminado em nulo em PDUs como submit_sm
que define
por quanto tempo um SMSC tentará entregar uma mensagem antes de descartá-la. Este campo é crítico para:
- Evitar tentativas indefinidas para mensagens não entregáveis
- Gerenciar recursos de armazenamento do SMSC
- Lidar com conteúdo sensível ao tempo (ex: OTPs, promoções)
Formato e Estrutura do Campo
O período de validade utiliza o mesmo formato de tempo absoluto que o tempo de entrega agendado (especificação SMPP v3.4):
YYMMDDhhmmssnnp
Onde os componentes correspondem ao formato de tempo de entrega agendado. Atalhos de formato relativo também são suportados:
Formato | Exemplo | Descrição |
---|---|---|
Absoluto | 231215235959000+ |
15 de dezembro de 2023, 23:59:59 UTC+0 |
Relativo | 000003000000000R |
3 dias a partir do tempo de envio |
-
NULL
: Usa o período de validade padrão do SMSC (geralmente 24-72 horas)-
00
: Período de validade padrão do SMSC (sistemas legados)
Principais Formatos de Período de Validade
1. Formato de Tempo Absoluto
YYMMDDhhmmssnnp // Formato completo 231215143000000+ // 15 de dezembro de 2023, 14:30:00 UTC+0
2. Formato de Tempo Relativo
00000X000000000R // X = Dias (00-99) 000003000000000R // 3 dias de validade
Casos de Uso
1. Expiração de OTP (Validade Curta)
validity_period: "000000010000000R" // 1 hora de validade
2. Campanha Promocional (Validade Estendida)
validity_period: "000007000000000R" // 7 dias de validade
3. Expiração à Meia-Noite (Tempo Absoluto)
validity_period: "231215235959000+" // Expira em 15 de dezembro de 2023, 23:59:59 UTC+0
Exemplos de PDUs SMPP
Exemplo 1: Validade de 24 Horas (Formato Relativo)
0000001D // Comprimento do Comando (29 bytes) 00000004 // ID do Comando (SubmitSM) 00000001 // Número de Sequência ... 00 // Flag de Prioridade 00 // Tempo de Entrega Agendado 303030303234303030303030305200 // "00002400000000R" (24 horas) 00 // Entrega Registrada ...
Exemplo 2: Tempo de Expiração Absoluto
0000002A // Comprimento do Comando (42 bytes) 00000004 // ID do Comando (SubmitSM) 00000002 // Número de Sequência ... 00 // Tempo de Entrega Agendado 3233313231323332353935393030302B00 // "231212235959000+" (12 de dezembro de 2023, 23:59:59 UTC+0) ...
Interações com Outros Campos
- scheduled_delivery_time: A contagem regressiva do período de validade começa a partir do tempo agendado, se definido
- priority_flag: Mensagens de alta prioridade podem substituir as configurações de período de validade em alguns SMSCs
- registered_delivery: Recebimentos de entrega são enviados mesmo após a expiração do período de validade
Armadilhas Comuns
- Usar formato relativo sem o sufixo 'R'
- Definir períodos de validade maiores que os limites do SMSC (ex: máximo de 30 dias)
- Incompatibilidade de fusos horários entre tempo agendado e período de validade
- Assumir que todos os SMSCs suportam formato relativo (verifique com o provedor)
Muitos SMSCs convertem períodos relativos em timestamps absolutos ao receber a mensagem. A contagem regressiva continua mesmo se o SMSC reiniciar.
Período de Validade vs Padrões do SMSC
Valor do Período de Validade | Comportamento do SMSC |
---|---|
NULL ou 00 | Usa o padrão do SMSC (varia por provedor) |
Valor explícito | Respeita o valor (dentro dos limites do SMSC) |
Timestamp no passado | Mensagem descartada imediatamente |
Conclusão
O campo Período de Validade é essencial para controlar o ciclo de vida da mensagem no SMPP. Enquanto timestamps absolutos fornecem precisão, formatos relativos oferecem simplicidade para casos de uso comuns. Sempre coordene as configurações de validade com as políticas do SMSC e teste casos extremos (ex: transições de horário de verão). Para implementações detalhadas, consulte a Seção 5.2.18 do SMPP v3.4 e a documentação do GSM 03.40.
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