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.
Hostname | Porta | Porta TLS |
---|---|---|
smpp0.seven.io | 2775 | 2776 |
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 SMSCreceiver
– receba relatórios de status do SMSC e retorne as respostas correspondentestransceiver
– 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
DLR | Descrição |
---|---|
DELIVRD | Mensagem entregue ao destino |
ACCEPTD | Mensagem aceita pelo SMSC |
EXPIRED | Período de validade do SMS expirado |
DELETED | Mensagem foi deletada |
UNDELIV | Mensagem não pôde ser entregue |
UNKNOWN | Status do SMS desconhecido |
REJECTD | Mensagem foi rejeitada |
Códigos de Erro
Dec | Hex | Código de Erro | Descrição |
---|---|---|---|
0 | 0x000000 | ESME_ROK | Ok – Mensagem aceita |
1 | 0x000001 | ESME_RINVMSGLEN | Comprimento de mensagem inválido |
2 | 0x000002 | ESME_RINVCMDLEN | Comprimento de comando inválido |
3 | 0x000003 | ESME_RINVCMDID | ID de comando inválido |
4 | 0x000004 | ESME_RINVBNDSTS | Status de bind inválido |
5 | 0x000005 | ESME_RALYBND | Tentativa de bind quando já está vinculado |
6 | 0x000006 | ESME_RINVPRTFLG | Marcação de prioridade inválida |
7 | 0x000007 | ESME_RINVREGDLVFLG | Flag de entrega registrada inválida |
8 | 0x000008 | ESME_RSYSERR | Erro de sistema do SMSC |
10 | 0x00000a | ESME_RINVSRCADR | Endereço de origem inválido |
11 | 0x00000b | ESME_RINVDSTADR | Endereço de destino inválido |
12 | 0x00000c | ESME_RINVMSGID | ID de mensagem inválido |
13 | 0x00000d | ESME_RBINDFAIL | Falha geral de bind |
14 | 0x00000e | ESME_RINVPASWD | Senha inválida |
15 | 0x00000f | ESME_RINVSYSID | ID de sistema inválido |
17 | 0x0000011 | ESME_RCANCELFAIL | Falha ao cancelar |
19 | 0x0000013 | ESME_RREPLACEFAIL | Falha ao substituir |
20 | 0x0000014 | ESME_RMSGQFUL | Muitas mensagens na fila |
22 | 0x0000016 | ESME_RINVSERTYP | Tipo de serviço inválido |
51 | 0x0000033 | ESME_RINVNUMDESTS | Número de endereços de destino inválido |
52 | 0x0000034 | ESME_RINVDLNAME | Nome inválido |
64 | 0x0000040 | ESME_RINVDESTFLAG | Opção de flag de destino inválida |
66 | 0x0000042 | ESME_RINVSUBREP | Valor inválido para submit com opção de substituição |
67 | 0x0000043 | ESME_RINVESMCLASS | Valor inválido para o campo esm_class |
68 | 0x0000044 | ESME_RCNTSUBDL | Não pode enviar para um distribuidor |
69 | 0x0000045 | ESME_RSUBMITFAIL | Falha geral de envio |
72 | 0x0000048 | ESME_RINVSRCTON | Tipo de número de origem inválido |
73 | 0x0000049 | ESME_RINVSRCNPI | Flag de plano de numeração de origem inválido |
74 | 0x000004a | ESME_RINVDSTTON | Tipo de número de destino inválido |
75 | 0x000004b | ESME_RINVDSTNPI | Flag de plano de numeração de destino inválido |
77 | 0x000004d | ESME_RINVSYSTYP | Tipo de esm inválido |
78 | 0x000004e | ESME_RINVREPFLAG | Opção de flag de substituição inválida |
85 | 0x0000055 | ESME_RINVNUMMSGS | Número de mensagens inválido |
88 | 0x0000058 | ESME_RtdROTTLED | SMSC limitando mensagens recebidas |
98 | 0x0000062 | ESME_RINVEXPIRY | Data de validade inválida |
103 | 0x0000067 | ESME_RQUERYFAIL | Falha na solicitação query_sm |
194 | 0x00000c2 | ESME_RINVPARLEN | Comprimento de parâmetro inválido |
195 | 0x00000c3 | ESME_RMISSINGOPTPARAM | Parâmetros opcionais ausentes |
196 | 0x00000c4 | ESME_RINVOPTPARAMVAL | Valor de parâmetro opcional inválido |
254 | 0x00000fe | ESME_RDELIVERYFAILURE | Falha genérica de entrega |
255 | 0x00000ff | ESME_RUNKNOWNERR | Erro 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:
Dec | Hex | Código de Erro | Descrição |
---|---|---|---|
1035 | 0x0000040b | ESME_RINVBALANCE | Saldo insuficiente para enviar o SMS |