Especificações SMPP

O Protocolo Short Message Peer to Peer (SMPP) é o padrão de fato para o envio e recebimento de SMS para operadores de telecomunicações, agregadores de SMS e operadores de rede, para trocar mensagens SMS entre Short Message Service Centers (SMSC) e/ou External Short Messaging Entities (ESME). SMPP é um protocolo TCP/IP de nível 7 que permite o envio rápido de mensagens SMS.

A conexão entre o aplicativo e o servidor SMPP da seven.io é SMPP Versão 3.4 – as versões 3.3 ou 5.0 não são suportadas.

Especificações SMPP Versão 3.4 Issue 1.2

Caso você precise de acesso SMPP ao nosso gateway, por favor, envie-nos uma breve mensagem com seu volume mensal aproximado de SMS e seu IP ou faixa de IP, a partir do qual você deseja se conectar ao nosso servidor SMPP.


Host e Porta

Cada um dos nossos servidores SMPP permite a conexão regular (texto simples) ou uma conexão criptografada via TLS. Se você precisar de uma conexão tunelada via VPN, por favor, entre em contato conosco.

HostnamePortaPorta TLS
smpp0.seven.io27752776

PDUs Suportados

As seguintes Unidades de Dados de Pacote (PDU) são suportadas:

  • bind_transmitter
  • bind_receiver
  • bind_transceiver
  • unbind
  • submit_sm
  • deliver_sm
  • enquire_link

Bind e Taxa de Transmissão

Dependendo da configuração do seu acesso SMPP, são possíveis várias conexões. Por padrão, permitimos no máximo a conexão através de 2 sessões e 5 SMS/s por sessão.

Você tem três opções para estabelecer uma conexão via SMPP. Para poder receber relatórios de status, você deve estabelecer uma conexão como transceiver ou receiver.

  • transmitter – envie mensagens curtas para o SMSC e receba respostas do SMSC
  • receiver – receba relatórios de status do SMSC e retorne as respostas correspondentes
  • transceiver – envie e receba mensagens para e do SMSC através de uma única sessão SMPP

Parâmetros de Bind

Uma solicitação PDU de bind_receiver, bind_transceiver ou bind_transmitter SMPP tem um conjunto fixo de campos. Alguns campos são irrelevantes ou são ignorados pelo nosso servidor.

  • Name
    system_id
    Type
    string
    Description

    Nome de usuário – será fornecido a você

  • Name
    password
    Type
    string
    Description

    Senha – será fornecida a você

  • Name
    system_type
    Type
    string
    Description

    Ignorado

  • Name
    interface_version date
    Type
    timestamp
    Description

    3.4

  • Name
    addr_ton
    Type
    timestamp
    Description

    Ignorado

  • Name
    addr_npi
    Type
    timestamp
    Description

    Ignorado

  • Name
    address_range
    Type
    string
    Description

    Ignorado


Relatórios de Status

Os relatórios de status SMPP são enviados no seguinte formato:

  • Name
    id
    Type
    string
    Description

    O ID da mensagem, atribuído pelo nosso servidor

  • Name
    sub
    Type
    string
    Description

    O número de SMS originalmente enviados

  • Name
    dlvrd
    Type
    string
    Description

    O número de SMS entregues

  • Name
    submit date
    Type
    timestamp
    Description

    Data e hora do envio original do SMS

  • Name
    done date
    Type
    timestamp
    Description

    Data e hora do relatório de status final username.

  • Name
    stat
    Type
    string
    Description

    Relatório de status final do SMS. Veja a tabela abaixo.

  • Name
    err
    Type
    integer
    Description

    Se aplicável, pode conter um código de erro específico da rede ou um código de erro do SMSC.

  • Name
    text
    Type
    timestamp
    Description

    Os primeiros 20 caracteres da mensagem curta

Exemplo de Relatório de Status

id:c0296bc5-e4d2-4ed7-bcc9-9e9b502dd302
sub:001
dlvrd:001
submit date:221206094424
done date:22106094426
stat:DELIVRD
err:000
text:

Exemplo de Relatório de Status

id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm 
done date:YYMMDDhhmm stat:DDDDDDD err:E text:

Códigos de Status

DLRDescrição
DELIVRDMensagem entregue ao destino
ACCEPTDMensagem aceita pelo SMSC
EXPIREDPeríodo de validade do SMS expirado
DELETEDMensagem foi deletada
UNDELIVMensagem não pôde ser entregue
UNKNOWNStatus do SMS desconhecido
REJECTDMensagem foi rejeitada

Códigos de Erro

DecHexCódigo de ErroDescrição
00x000000ESME_ROKOk – Mensagem aceita
10x000001ESME_RINVMSGLENComprimento de mensagem inválido
20x000002ESME_RINVCMDLENComprimento de comando inválido
30x000003ESME_RINVCMDIDID de comando inválido
40x000004ESME_RINVBNDSTSStatus de bind inválido
50x000005ESME_RALYBNDTentativa de bind quando já está vinculado
60x000006ESME_RINVPRTFLGMarcação de prioridade inválida
70x000007ESME_RINVREGDLVFLGFlag de entrega registrada inválida
80x000008ESME_RSYSERRErro de sistema do SMSC
100x00000aESME_RINVSRCADREndereço de origem inválido
110x00000bESME_RINVDSTADREndereço de destino inválido
120x00000cESME_RINVMSGIDID de mensagem inválido
130x00000dESME_RBINDFAILFalha geral de bind
140x00000eESME_RINVPASWDSenha inválida
150x00000fESME_RINVSYSIDID de sistema inválido
170x0000011ESME_RCANCELFAILFalha ao cancelar
190x0000013ESME_RREPLACEFAILFalha ao substituir
200x0000014ESME_RMSGQFULMuitas mensagens na fila
220x0000016ESME_RINVSERTYPTipo de serviço inválido
510x0000033ESME_RINVNUMDESTSNúmero de endereços de destino inválido
520x0000034ESME_RINVDLNAMENome inválido
640x0000040ESME_RINVDESTFLAGOpção de flag de destino inválida
660x0000042ESME_RINVSUBREPValor inválido para submit com opção de substituição
670x0000043ESME_RINVESMCLASSValor inválido para o campo esm_class
680x0000044ESME_RCNTSUBDLNão pode enviar para um distribuidor
690x0000045ESME_RSUBMITFAILFalha geral de envio
720x0000048ESME_RINVSRCTONTipo de número de origem inválido
730x0000049ESME_RINVSRCNPIFlag de plano de numeração de origem inválido
740x000004aESME_RINVDSTTONTipo de número de destino inválido
750x000004bESME_RINVDSTNPIFlag de plano de numeração de destino inválido
770x000004dESME_RINVSYSTYPTipo de esm inválido
780x000004eESME_RINVREPFLAGOpção de flag de substituição inválida
850x0000055ESME_RINVNUMMSGSNúmero de mensagens inválido
880x0000058ESME_RtdROTTLEDSMSC limitando mensagens recebidas
980x0000062ESME_RINVEXPIRYData de validade inválida
1030x0000067ESME_RQUERYFAILFalha na solicitação query_sm
1940x00000c2ESME_RINVPARLENComprimento de parâmetro inválido
1950x00000c3ESME_RMISSINGOPTPARAMParâmetros opcionais ausentes
1960x00000c4ESME_RINVOPTPARAMVALValor de parâmetro opcional inválido
2540x00000feESME_RDELIVERYFAILUREFalha genérica de entrega
2550x00000ffESME_RUNKNOWNERRErro desconhecido

Códigos de Erro Específicos

Além dos códigos de erro SMPP padronizados, enviamos nossos próprios códigos de erro específicos:

DecHexCódigo de ErroDescrição
10350x0000040bESME_RINVBALANCESaldo insuficiente para enviar o SMS