SMPP (Short Message Peer-to-Peer) é o protocolo do setor de telecom usado para trocar SMS entre aplicações, gateways de SMS, agregadores e SMSCs de operadoras. Ele funciona sobre uma conexão TCP persistente, chamada bind, e transporta mensagens, relatórios de entrega e respostas recebidas em pacotes binários compactos chamados PDUs. A versão 3.4 é a que a maioria das rotas usa.
O que é SMPP?
O protocolo SMPP é um padrão aberto, criado nos anos 1990, para enviar e entregar mensagens curtas fora da sinalização própria da rede móvel. Ele define dois papéis: o ESME (External Short Messaging Entity), que é o cliente, como a sua plataforma ou gateway; e o SMSC (Short Message Service Center), que é o servidor, como a central de mensagens de uma operadora ou de um agregador. Quase toda rota wholesale de SMS A2P é entregue via SMPP. A versão 3.4 é o padrão de fato; a versão 5.0 existe, mas é bem menos comum.
Como funciona o SMPP?
O cliente abre uma conexão TCP com o servidor (a porta 2775 é o padrão mais comum), se autentica com um system ID e uma senha e mantém a sessão aberta. A partir daí, mensagens, recibos de entrega e pacotes de keep-alive circulam nos dois sentidos por esse bind até que um dos lados o feche.
- Bind. O cliente envia uma requisição de bind com suas credenciais e o tipo de bind.
- Envio. Cada mensagem sai como um PDU
submit_smcom endereço de origem (sender ID), número de destino, codificação de dados e texto. O servidor responde comsubmit_sm_resp, contendo um ID de mensagem ou um código de erro. - Entrega. Recibos de entrega e respostas originadas no celular voltam como PDUs
deliver_sm, que o cliente confirma. - Keep-alive. PDUs
enquire_linka cada 30 a 60 segundos mantêm a sessão saudável e detectam links caídos. - Unbind. Qualquer um dos lados encerra a sessão de forma limpa com
unbind.
Os códigos de erro nas respostas (por exemplo destino inválido ou limitação de taxa) estão listados em códigos de erro SMPP, e os estados dos recibos de entrega em códigos de status DLR de SMS.
Quais são os tipos de bind SMPP?
| Tipo de bind | Sentido | Uso típico |
|---|---|---|
| Transmitter (TX) | O cliente só envia mensagens | Conexões de envio separadas |
| Receiver (RX) | O cliente só recebe DLRs e respostas | Conexões de recebimento separadas |
| Transceiver (TRX) | Os dois sentidos em uma conexão | A configuração mais comum nas rotas atuais |
Os provedores limitam o número de binds por conta e as mensagens por segundo (TPS) por bind. Veja binds SMPP e TPS.
O que é um servidor SMPP?
Um servidor SMPP é o lado que aceita binds: um SMSC de operadora, a plataforma de um agregador ou um gateway que revende rotas para os próprios clientes. Um revendedor muitas vezes cumpre os dois papéis: servidor SMPP para os seus clientes e conexões cliente SMPP com as suas rotas de fornecimento. Softwares de gateway como Kannel e Jasmin podem cumprir esses papéis. As ferramentas para testar cada lado estão em ferramentas de cliente e servidor SMPP.
SMPP em telecom: para que é usado?
- Conectar plataformas A2P e provedores de CPaaS a agregadores e operadoras.
- Interconexões de SMS entre carriers no wholesale.
- Remetentes de alto volume (bancos, provedores de OTP) que precisam de vazão e recibos rápidos.
- Receber SMS em short codes e números longos.
Veja o que é um agregador de SMS A2P para entender onde o SMPP fica na cadeia.
SMPP vs HTTP API
O SMPP mantém uma conexão aberta e envia mensagens em sequência sem esperar, então lida com alto volume com pouco overhead e devolve os recibos em tempo real. Uma HTTP API é mais fácil de integrar (uma requisição por mensagem, webhooks para os relatórios) e serve para apps com volume moderado. Revendedores e plataformas normalmente escolhem SMPP; equipes de produto normalmente começam com HTTP. Comparação completa: SMPP vs HTTP para SMS e o que é uma API de SMS.
Principais parâmetros SMPP para acertar
- TON/NPI do endereço de origem: informa ao servidor se o remetente é alfanumérico, internacional ou nacional.
- data_coding: 0 para o alfabeto GSM padrão na maioria das rotas, 8 para UCS-2 (Unicode). Veja GSM-7 vs Unicode.
- registered_delivery: precisa estar ativado para pedir recibos de entrega.
- Mensagens longas: enviadas com UDH ou parâmetros SAR. Veja SMS longo concatenado.
- Segurança: o SMPP 3.4 não tem criptografia embutida, então as conexões normalmente passam por VPN, lista de IPs liberados ou túnel TLS.
Como conseguir rotas SMPP
A VoIPMatcher busca rotas de SMS A2P via SMPP junto às suas carriers e as gerencia, com binds e TPS dimensionados para o seu tráfego. Solicite uma rota SMPP.
Perguntas frequentes
Qual porta o SMPP usa?
O SMPP funciona sobre TCP, e a porta 2775 é o padrão mais usado. Na prática, cada provedor fornece seu próprio host, porta, system ID e senha, e a porta pode ser outra. As conexões normalmente são restritas por lista de IPs liberados e, como o SMPP 3.4 não tem criptografia embutida, muitos links passam por VPN ou túnel TLS.
Qual é a diferença entre SMPP 3.4 e SMPP 5.0?
O SMPP 3.4 é a versão que quase todas as rotas de SMS usam. O SMPP 5.0 acrescentou recursos como mensagens de broadcast, informações de controle de congestionamento e mais parâmetros opcionais, mas a adoção ficou limitada. Quando um provedor fala em SMPP sem citar a versão, considere 3.4 e confirme detalhes como suporte a TLV e formato dos recibos antes de integrar.
O SMPP é seguro?
Não por si só. O SMPP 3.4 envia credenciais e conteúdo das mensagens sem criptografia, então deve rodar sobre VPN, túnel TLS ou pelo menos uma conexão privada com lista estrita de IPs liberados. Use senhas fortes e únicas por bind e restrinja cada conta aos endereços de origem e destinos de que ela precisa.
O que é um ESME no SMPP?
ESME significa External Short Messaging Entity: o lado cliente de uma conexão SMPP. É a aplicação, plataforma ou gateway que faz bind em um SMSC ou servidor SMPP para enviar mensagens e receber recibos de entrega. Uma plataforma revendedora atua como SMSC para os seus clientes e como ESME em relação às suas rotas de fornecimento.
Preciso de SMPP para enviar SMS?
Não. A maioria das aplicações envia SMS por uma HTTP API, que é mais simples de integrar. O SMPP é preferido quando você envia alto volume, precisa de recibos com baixa latência, revende rotas para outros clientes ou se conecta diretamente com carriers e agregadores. Muitos provedores oferecem os dois, então você pode começar com HTTP e migrar para SMPP depois.
Precisa de uma rota?
Envie o destino, o tipo de rota e a tarifa alvo. Respondemos com o que podemos entregar.