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_transmitterbind_receiverbind_transceiverunbindsubmit_smdeliver_smenquire_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 |