Especificaciones de SMPP
El Protocolo Short Message Peer to Peer (SMPP) es el estándar de facto para el envío y recepción de SMS para operadores de telecomunicaciones, agregadores de SMS y operadores de red, para intercambiar mensajes SMS entre Centros de Servicio de Mensajes Cortos (SMSC) y/o Entidades Externas de Mensajería Corta (ESME). SMPP es un protocolo TCP/IP de nivel 7 que permite un envío rápido de mensajes SMS.
La conexión entre la aplicación y el servidor SMPP de seven.io es SMPP Versión 3.4 – las versiones 3.3 o 5.0 no son compatibles.
Especificaciones de SMPP Versión 3.4 Issue 1.2
Si necesita acceso SMPP a nuestra pasarela, por favor envíenos un breve mensaje con su volumen mensual aproximado de SMS y su IP o rango de IP desde el cual desea conectarse a nuestro servidor SMPP.
Host y Puerto
Cada uno de nuestros servidores SMPP le permite la conexión regular (texto plano) o una conexión cifrada mediante TLS. Si necesita una conexión tunelizada a través de VPN, por favor escríbanos.
Nombre del host | Puerto | Puerto TLS |
---|---|---|
smpp0.seven.io | 2775 | 2776 |
PDUs Soportadas
Se soportan las siguientes Unidades de Datos de Paquete (PDU):
bind_transmitter
bind_receiver
bind_transceiver
unbind
submit_sm
deliver_sm
enquire_link
Bind y Rendimiento
Dependiendo de la configuración de su acceso SMPP, son posibles múltiples Binds. Por defecto, permitimos un máximo de conexión a través de 2 sesiones y 5 SMS/s por sesión.
Tiene tres opciones para establecer una conexión a través de SMPP. Para poder recibir informes de estado, debe establecer un Bind como transceiver o receiver.
transmitter
– enviar mensajes cortos al SMSC y recibir respuestas del SMSCreceiver
– recibir informes de estado del SMSC y devolver las respuestas correspondientestransceiver
– enviar y recibir mensajes hacia y desde el SMSC a través de una única sesión SMPP
Parámetros de enlace
Una solicitud PDU de bind_receiver, bind_transceiver o bind_transmitter de SMPP tiene un conjunto fijo de campos. Algunos campos son irrelevantes o son ignorados por nuestro servidor.
- Name
system_id
- Type
- string
- Description
Nombre de usuario – se le proporcionará
- Name
password
- Type
- string
- Description
Contraseña – se le proporcionará
- Name
system_type
- Type
- string
- Description
Se ignora
- Name
interface_version date
- Type
- timestamp
- Description
3.4
- Name
addr_ton
- Type
- timestamp
- Description
Se ignora
- Name
addr_npi
- Type
- timestamp
- Description
Se ignora
- Name
address_range
- Type
- string
- Description
Se ignora
Informes de estado
Los informes de estado SMPP se envían en el siguiente formato:
- Name
id
- Type
- string
- Description
El ID del mensaje, asignado por nuestro servidor
- Name
sub
- Type
- string
- Description
El número de SMS enviados originalmente
- Name
dlvrd
- Type
- string
- Description
El número de SMS entregados
- Name
submit date
- Type
- timestamp
- Description
Fecha y hora del envío original del SMS
- Name
done date
- Type
- timestamp
- Description
Fecha y hora del informe de estado final username.
- Name
stat
- Type
- string
- Description
Informe de estado final del SMS. Ver tabla abajo.
- Name
err
- Type
- integer
- Description
Puede contener un código de error específico de la red o un código de error del SMSC, si corresponde.
- Name
text
- Type
- timestamp
- Description
Los primeros 20 caracteres del mensaje corto
Ejemplo de informe de estado
id:c0296bc5-e4d2-4ed7-bcc9-9e9b502dd302
sub:001
dlvrd:001
submit date:221206094424
done date:22106094426
stat:DELIVRD
err:000
text:
Ejemplo de informe de estado
id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm
done date:YYMMDDhhmm stat:DDDDDDD err:E text:
Códigos de estado
DLR | Descripción |
---|---|
DELIVRD | Mensaje entregado al destino |
ACCEPTD | Mensaje aceptado por el SMSC |
EXPIRED | Período de validez del SMS expirado |
DELETED | Mensaje eliminado |
UNDELIV | Mensaje no pudo ser entregado |
UNKNOWN | Estado del SMS desconocido |
REJECTD | Mensaje rechazado |
Códigos de error
Dec | Hex | Código de error | Descripción |
---|---|---|---|
0 | 0x000000 | ESME_ROK | Ok – Mensaje aceptado |
1 | 0x000001 | ESME_RINVMSGLEN | Longitud de mensaje inválida |
2 | 0x000002 | ESME_RINVCMDLEN | Longitud de comando inválida |
3 | 0x000003 | ESME_RINVCMDID | ID de comando inválido |
4 | 0x000004 | ESME_RINVBNDSTS | Estado de enlace inválido |
5 | 0x000005 | ESME_RALYBND | Intento de enlace cuando ya está enlazado |
6 | 0x000006 | ESME_RINVPRTFLG | Marcador de prioridad inválido |
7 | 0x000007 | ESME_RINVREGDLVFLG | Marcador de entrega registrada inválido |
8 | 0x000008 | ESME_RSYSERR | Error del sistema SMSC |
10 | 0x00000a | ESME_RINVSRCADR | Dirección de origen inválida |
11 | 0x00000b | ESME_RINVDSTADR | Dirección de destino inválida |
12 | 0x00000c | ESME_RINVMSGID | ID de mensaje inválido |
13 | 0x00000d | ESME_RBINDFAIL | Error general de enlace |
14 | 0x00000e | ESME_RINVPASWD | Contraseña inválida |
15 | 0x00000f | ESME_RINVSYSID | ID de sistema inválido |
17 | 0x0000011 | ESME_RCANCELFAIL | Error de cancelación |
19 | 0x0000013 | ESME_RREPLACEFAIL | Error de reemplazo |
20 | 0x0000014 | ESME_RMSGQFUL | Demasiados mensajes en la cola |
22 | 0x0000016 | ESME_RINVSERTYP | Tipo de servicio inválido |
51 | 0x0000033 | ESME_RINVNUMDESTS | Número de dirección de destino inválido |
52 | 0x0000034 | ESME_RINVDLNAME | Nombre inválido |
64 | 0x0000040 | ESME_RINVDESTFLAG | Opción de marcador de destino inválida |
66 | 0x0000042 | ESME_RINVSUBREP | Valor inválido para enviar con opción de reemplazo |
67 | 0x0000043 | ESME_RINVESMCLASS | Valor inválido para el campo esm_class |
68 | 0x0000044 | ESME_RCNTSUBDL | No se puede enviar a un distribuidor |
69 | 0x0000045 | ESME_RSUBMITFAIL | Error general de transmisión |
72 | 0x0000048 | ESME_RINVSRCTON | Tipo de número de origen inválido |
73 | 0x0000049 | ESME_RINVSRCNPI | Marcador de plan de numeración de origen inválido |
74 | 0x000004a | ESME_RINVDSTTON | Tipo de número de destino inválido |
75 | 0x000004b | ESME_RINVDSTNPI | Marcador de plan de numeración de destino inválido |
77 | 0x000004d | ESME_RINVSYSTYP | Tipo de esm inválido |
78 | 0x000004e | ESME_RINVREPFLAG | Opción de marcador de envío con reemplazo inválida |
85 | 0x0000055 | ESME_RINVNUMMSGS | Número de mensajes inválido |
88 | 0x0000058 | ESME_RtdROTTLED | SMSC limita mensajes entrantes |
98 | 0x0000062 | ESME_RINVEXPIRY | Fecha de expiración inválida |
103 | 0x0000067 | ESME_RQUERYFAIL | Solicitud query_sm fallida |
194 | 0x00000c2 | ESME_RINVPARLEN | Longitud de parámetro inválida |
195 | 0x00000c3 | ESME_RMISSINGOPTPARAM | Parámetros opcionales faltantes |
196 | 0x00000c4 | ESME_RINVOPTPARAMVAL | Valor de parámetro opcional inválido |
254 | 0x00000fe | ESME_RDELIVERYFAILURE | Error genérico de entrega |
255 | 0x00000ff | ESME_RUNKNOWNERR | Error desconocido |
Códigos de error específicos
Además de los códigos de error SMPP estandarizados, enviamos nuestros propios códigos de error específicos:
Dec | Hex | Código de error | Descripción |
---|---|---|---|
1035 | 0x0000040b | ESME_RINVBALANCE | Saldo insuficiente para enviar el SMS |