BroadNet
Protocolos e API Checklist gratuito

Lista de Verificação de Integração SMPP

Uma lista de verificação de campo para integrar o SMPP v3.4/v5.0: tipos de bind, TLV opcionais, tratamento de relatórios de entrega, keepalives enquire_link, throttling, TLS, e um plano de testes pré-produção.

33 pontos de verificação5 min de leituraAtualizado em
Receber o PDF por e-mail
Em resumo

O SMPP (Short Message Peer-to-Peer) é o protocolo binário que a maioria dos agregadores e operadoras disponibiliza para mensagens A2P de alto débito. Uma integração limpa tem menos a ver com escrever PDUs e mais com acertar nos pormenores operacionais: escolher o modo de bind correto, respeitar os limites de janela e throttle, analisar os relatórios de entrega de forma fiável, manter a sessão viva, e proteger o transporte. Trabalhe de cima para baixo — cada grupo é um ponto de controlo que pode validar antes de promover um bind para produção.

O checklist

Avance item por item e marque conforme concluir.

DiagramaUma sessão SMPP entre a sua plataforma e BroadNet
A sua plataforma (ESME)
BroadNet SMSC
Uma conexão TCP/TLS persistente
  1. bind_transceiverAbrir e autenticar a sessão
  2. bind_transceiver_respSessão aceita
  3. submit_smEnviar uma mensagem
  4. submit_sm_respAceito, ID da mensagem devolvida
  5. deliver_smRelatório de entrega ou mensagem recebida
  6. deliver_sm_respConfirmado
  7. enquire_linkKeepalive em modo ocioso
01

Configuração de sessão e bind

Escolha o modo de bind correto para a direção do seu tráfego e confirme a versão de protocolo negociada antes de enviar uma única mensagem.

  • Confirme a versão do SMPP — v3.4 para a maioria das rotas, v5.0 onde o fornecedor suporte o estado de congestionamento e TLVs melhorados.A v5.0 é compatível com versões anteriores; não assuma que as funcionalidades estão disponíveis até o bind_resp o confirmar.
  • Escolha o tipo de bind correto por sessão.transmissor (apenas MT), recetor (apenas DLR/MO), ou transcetor (ambos numa única sessão). Prefira o transcetor para reduzir a metade o número de ligações onde o fornecedor o permita.
  • Configure o system_id, password, system_type e address_range exatamente como aprovisionados.Um address_range incompatível bloqueia silenciosamente o encaminhamento de MO/DLR em binds de recetor.
  • Acorde por escrito com o fornecedor o número de binds concorrentes e o TPS por bind.Abrir mais binds do que os aprovisionados é a causa mais comum de uma conta limitada (throttled) ou suspensa.
  • Trate explicitamente os códigos de estado do bind_resp — repita a tentativa em ESME_RALYBND e recue em ESME_RBINDFAIL.Nunca repita um bind falhado em ciclo contínuo; use recuo exponencial com jitter.
02

Submissão de mensagens (submit_sm)

  • Configure corretamente source_addr_ton / source_addr_npi e dest_addr_ton / dest_addr_npi para sender IDs alfanuméricos vs numéricos.Remetente alfanumérico → TON 5 (alfanumérico); MSISDN internacional → TON 1, NPI 1.
  • Escolha o data_coding correto: GSM de 7 bits (0), 8 bits (4), ou UCS-2 (8) para Unicode.Misturar codificações sem configurar o data_coding causa mojibake e segmentação incorreta.
  • Implemente a concatenação de mensagens longas via UDH ou os TLVs opcionais SAR (sar_msg_ref_num, sar_total_segments, sar_segment_seqnum).Escolha um método e mantenha-o consistente; algumas rotas rejeitam UDH, outras rejeitam os TLVs SAR.
  • Solicite relatórios de entrega com registered_delivery = 1 apenas onde os consuma.Solicitar DLRs que não são processados desperdiça débito e pode gerar avisos por parte do fornecedor.
  • Respeite a semântica de validity_period e schedule_delivery_time para o seu caso de uso (OTP = validade curta).Os OTP de curta duração devem transportar um validity_period apertado para que as mensagens obsoletas não sejam entregues tarde.
03

Parâmetros opcionais (TLVs) que vale a pena configurar

  • message_payload — para cargas úteis que excedam o limite do campo short_message.Não preencha simultaneamente short_message e message_payload; os fornecedores rejeitam isso.
  • TLVs sar_* — concatenação baseada em normas sem bytes UDH no corpo.
  • dest_addr_subunit / source_addr_subunit — onde a rota o exija para o encaminhamento ao telemóvel.
  • Transporte metadados fornecidos pelo cliente apenas em TLVs aprovados pelo fornecedor.TLVs personalizados fora do intervalo acordado são frequentemente removidos ou causam erros de análise a jusante.
04

Tratamento de relatórios de entrega (DLR)

Os relatórios de entrega chegam como PDUs deliver_sm e são a espinha dorsal da sua reconciliação e dos relatórios de qualidade.

  • Analise o recibo a partir do campo short_message do deliver_sm: id, sub, dlvrd, data de submissão, data de conclusão, stat, err.O campo `stat` (DELIVRD, UNDELIV, EXPIRED, REJECTD, etc.) é o seu estado final.
  • Correlacione os DLR com a sua submissão usando o formato de message_id do fornecedor, não apenas o texto do recibo.O message_id pode ser devolvido em hexadecimal no submit_resp mas em decimal no DLR — normalize ambos.
  • Trate os recibos intermédios (não finais) separadamente dos estados finais.O bit 0x04 do esm_class marca um relatório de entrega; só os valores finais de `stat` devem fechar uma mensagem.
  • Devolva sempre um deliver_sm_resp — um DLR não confirmado é reenviado e pode bloquear a janela.Responda prontamente mesmo que o processamento a jusante seja assíncrono.
  • Associe os códigos de erro da operadora a uma taxonomia normalizada (assinante ausente, telemóvel ocupado, bloqueado por spam, número inválido).Os códigos de erro em bruto variam por rota; uma taxonomia normalizada torna a qualidade comparável entre rotas.
05

Keepalive e controlo de fluxo

  • Envie enquire_link num temporizador de inatividade (normalmente 30–60s) e trate uma resposta enquire_link_resp em falta como uma sessão morta.É a única forma fiável de detetar uma ligação TCP semiaberta.
  • Implemente a janela SMPP: limite os PDUs pendentes sem confirmação e pause as submissões quando a janela estiver cheia.Disparar submit_sm às cegas para além da janela é o que desencadeia o ESME_RTHROTTLED.
  • Recue perante o ESME_RTHROTTLED (0x58) em vez de repetir a tentativa imediatamente.Acrescente jitter para que as tempestades de reconexão não se sincronizem entre trabalhadores.
  • Respeite unbind / unbind_resp para um encerramento controlado; reconecte com recuo em caso de desconexões inesperadas.
06

Segurança do transporte (TLS)

  • Use SMPP sobre TLS onde o fornecedor o disponibilize; desative os binds em texto simples em produção.O SMPP não tem encriptação nativa — o TLS é o controlo ao nível do transporte.
  • Fixe (pin) ou valide a cadeia de certificados do servidor e imponha TLS 1.2+.Rejeite certificados expirados ou autoassinados; não desative a verificação 'para funcionar'.
  • Restrinja os binds a IPs de origem numa lista de permissões em ambos os lados.A lista de IPs permitidos é um controlo padrão da operadora e uma forma rápida de conter fugas de credenciais.
  • Rode as credenciais SMPP com regularidade e guarde-as num gestor de segredos, nunca no código.
07

Plano de testes pré-produção

  • Envie para um MSISDN de teste real em cada rota-alvo e confirme a receção no telemóvel de ponta a ponta.
  • Verifique o ciclo completo do DLR para os resultados entregue, não entregue, expirado e rejeitado.
  • Teste mensagens longas (multissegmento) e conteúdo Unicode (UCS-2) em cada rota.
  • Faça testes de carga no TPS aprovisionado e confirme o comportamento controlado no limite da janela/throttle.
  • Simule uma ligação interrompida a meio da janela e confirme uma reconexão limpa sem submissões duplicadas.A idempotência na repetição impede a faturação duplicada e a entrega duplicada ao telemóvel.
  • Confirme a monitorização: estado do bind, ocupação da janela, latência de submissão/DLR, e taxas de códigos de erro alertam todas.
Referências

Normas e referências regulatórias citadas neste guia. A BroadNet é membro associado da GSMA e membro do MEF e opera mensagens de nível de operadora desde 2003.

Receber o PDF

Envie-me “Lista de Verificação de Integração SMPP” por e-mail.

Enviaremos para o seu e-mail um PDF limpo e pronto para imprimir desta checklist, para você partilhar com a equipa ou guardar para a sua RFP. Um engenheiro de mensagens só entrará em contacto se você pedir — sem spam de vendas.

  • PDF para impressão, uma página por secção
  • Todo o conteúdo desta página, formatado para partilhar
  • Opcional: uma conversa com um engenheiro da BroadNet

Prefere não informar seu e-mail? Use Imprimir / salvar como PDF acima — a checklist completa está nesta página.

Linha direta · resposta no prazo de um dia útil

Envie-me “Lista de Verificação de Integração SMPP”

Diga-nos para onde enviar. Enviaremos o PDF por e-mail e só entraremos em contacto se você pedir.

  1. 1Quem
  2. 2Necessidade
  3. 3Contexto

Respondemos no prazo de um dia útil; os orçamentos no prazo de dois dias úteis.