Cómo enviar SMS usando la API SMPP a nivel de protocolo
La API Short Message Peer-to-Peer (SMPP) es un protocolo ampliamente adoptado para intercambiar mensajes SMS entre entidades SMS como ESMEs (Entidades de Mensajes Cortos Externas) y SMSCs (Centros de Servicio de Mensajes Cortos). Para los usuarios de la plataforma Ozeki SMS Gateway, comprender las interacciones a nivel de protocolo SMPP es fundamental para optimizar el rendimiento, depurar y realizar integraciones personalizadas. Esta guía explica las PDUs (Unidades de Datos de Protocolo) de SMPP necesarias para establecer, mantener y usar una conexión API SMPP para enviar mensajes SMS.
Establecer una conexión API SMPP
Para enviar SMS a través de la API SMPP, primero debes vincular tu cliente al servidor Ozeki SMS Gateway. Existen tres tipos de vinculación: bind_transmitter, bind_receiver y bind_transceiver. Cada uno define la dirección del flujo de mensajes.
PDUs clave para la configuración de la conexión
| PDU | Dirección | Propósito | Parámetros clave |
|---|---|---|---|
bind_transmitter |
ESME → SMSC | Inicia una conexión para enviar SMS |
|
bind_receiver |
ESME → SMSC | Configura una conexión para recibir SMS | Igual que bind_transmitter |
bind_transceiver |
ESME → SMSC | Habilita mensajería bidireccional | Igual que bind_transmitter |
Tras una vinculación exitosa, la pasarela Ozeki responde con una PDU bind_resp que contiene un acuse de recibo de system_id. Si falla la autenticación, devuelve un código de error como ESME_RINVPASWD.
Mantener la conexión API SMPP
Las conexiones SMPP requieren señales de keep-alive periódicas para evitar tiempos de espera. Usa la PDU enquire_link:
| PDU | Dirección | Propósito |
|---|---|---|
enquire_link |
ESME ↔ SMSC | Verifica si la conexión está activa |
enquire_link_resp |
ESME ↔ SMSC | Confirma que está activa |
Mejor práctica: Envía enquire_link cada 30-60 segundos. Ozeki SMS Gateway termina las conexiones inactivas después de 5 minutos por defecto.
Enviar un SMS a través de la API SMPP
La PDU submit_sm se usa para enviar un solo SMS. Su estructura incluye direcciones de origen/destino y contenido del mensaje:
| Parámetro | Descripción | Ejemplo |
|---|---|---|
service_type |
Tipo de servicio (opcional) | “” (vacío) |
source_addr |
Dirección del remitente del SMS | “12345” |
destination_addr |
Número de teléfono del destinatario | “+1234567890” |
short_message |
Contenido del mensaje (UTF-8 o GSM-7) | “Hola Mundo” |
Ejemplo de flujo de trabajo submit_sm
- ESME envía
submit_sma Ozeki SMS Gateway. - La pasarela responde con
submit_sm_respque contiene unmessage_id. - La pasarela envía
deliver_smpara informes de entrega (si está habilitado). - ESME responde con
deliver_sm_resp.
Manejar respuestas y errores de la API SMPP
Ozeki SMS Gateway utiliza estas PDUs de respuesta:
| PDU | Propósito | Campos críticos |
|---|---|---|
submit_sm_resp |
Reconoce submit_sm |
message_id, command_status |
generic_nack |
Indica una PDU malformada/inválida | command_status (ej., ESME_RINVMSGLEN) |
Conclusión
Dominar las PDUs de la API SMPP como bind_transmitter, enquire_link y submit_sm garantiza una mensajería SMS confiable a través de Ozeki SMS Gateway. Al implementar un manejo robusto de errores y rutinas de keep-alive, los desarrolladores pueden construir soluciones SMS escalables con un tiempo de inactividad mínimo.