Un bind SMPP es una sesión autenticada entre su plataforma y el proveedor de SMS, y los TPS (transacciones o mensajes por segundo) son cuántos mensajes puede enviar por segundo en ella. Los proveedores fijan un límite de TPS por bind o por cuenta y un número máximo de binds; si lo supera, recibe errores de throttling, así que dimensione su conexión según su tráfico en hora punta, contando cada segmento.
Tipos de bind
SMPP 3.4 define tres formas de hacer bind con un SMSC, cada una abierta con su propio comando y con system_id y contraseña:
| Bind | Comando | Sentido |
|---|---|---|
| Transmitter (TX) | bind_transmitter | Usted envía mensajes (submit_sm) |
| Receiver (RX) | bind_receiver | Usted recibe informes de entrega y mensajes entrantes (deliver_sm) |
| Transceiver (TRX) | bind_transceiver | Ambos en una sola sesión |
Hoy la mayoría de las conexiones A2P usan binds transceiver. Con binds TX y RX separados, asegúrese de que siempre haya al menos un receiver conectado, o los informes de entrega se acumularán en el proveedor. Los fundamentos de SMPP están en SMPP vs HTTP API para SMS A2P.
Qué significa TPS
TPS es el número de operaciones submit_sm permitidas por segundo. Algunos puntos que generan confusión:
- Los segmentos cuentan: un SMS largo de 3 partes usa 3 transacciones.
- Por bind o por cuenta: un límite de 50 TPS puede aplicarse a cada bind o a todos los binds juntos. Pregunte cuál es el caso.
- Ráfaga o sostenido: algunos proveedores permiten ráfagas cortas por encima del límite; otros lo aplican estrictamente segundo a segundo.
- Límites por destino: los proveedores del propio proveedor pueden tener límites más bajos para algunos países o redes, así que los TPS de su cuenta no siempre están disponibles en todas partes.
Las cifras típicas van de 10 a 100 TPS por bind en cuentas A2P normales, con más para los grandes remitentes. Una campaña de 360 000 mensajes a 100 TPS tarda una hora; a 20 TPS tarda cinco.
Ventana (windowing)
SMPP es asíncrono: puede enviar varios submit_sm antes de recibir las respuestas. El tamaño de ventana es cuántas solicitudes pueden quedar pendientes a la vez. Una ventana demasiado pequeña limita la capacidad cuando la latencia es alta (con 200 ms de ida y vuelta y una ventana de 1, no puede superar 5 TPS). Una ventana demasiado grande puede sobrecargar al proveedor. Son habituales valores de 10 a 50; acuérdelos con el proveedor.
Qué ocurre cuando supera los límites
- ESME_RTHROTTLED (0x58): demasiados mensajes por segundo. Reduzca el ritmo y reintente más tarde.
- ESME_RMSGQFUL (0x14): la cola del proveedor está llena. Reintente tras una pausa.
- ESME_RALYBND (0x05) o ESME_RBINDFAIL (0x0D): se devuelven a menudo cuando abre más binds de los permitidos o con credenciales incorrectas.
Su plataforma debe reducir el ritmo ante los errores de throttling en lugar de reintentar de inmediato, lo que solo empeora la situación. La lista completa está en códigos de error SMPP habituales.
Cómo mantener los binds en buen estado
- Envíe enquire_link cada 30 a 60 segundos (acuerde el intervalo) y reconéctese automáticamente cuando falle.
- Reparta el tráfico entre los binds con un round-robin sencillo y no abra más de los permitidos.
- Use lista blanca de IP y, cuando se ofrezca, TLS o una VPN, porque SMPP 3.4 envía las credenciales en texto plano.
- Vigile la latencia de submit_sm_resp: un aumento suele preceder al throttling o a problemas de entrega. Consulte tasa de entrega y latencia de SMS.
- Para tráfico de Estados Unidos, recuerde que los límites de capacidad de los operadores por marca y campaña pueden ser inferiores a sus TPS SMPP. Consulte SMS 10DLC y toll-free.
Cómo dimensionar una solicitud
Calcule su pico por segundo, no su volumen mensual: el tráfico OTP a las 9:00 de un lunes o el lanzamiento de una campaña puede multiplicar por diez la media. Cuando solicite rutas SMS A2P a través de VoIPMatcher, indique los TPS y el número de binds que necesita. Solicite una ruta SMPP.
Preguntas frecuentes
¿Por qué falla mi bind SMPP?
Las causas más comunes son un system_id o una contraseña incorrectos, una dirección IP que el proveedor no tiene en la lista blanca o más binds abiertos de los que permite la cuenta. El proveedor responde entonces con errores como ESME_RBINDFAIL (0x0D), ESME_RINVPASWD (0x0E) o ESME_RALYBND (0x05). Revise las credenciales y las IP permitidas, cierre las sesiones colgadas y confirme el límite de binds.
¿Cuántos binds SMPP necesito?
Divida sus mensajes por segundo en hora punta entre los TPS permitidos por bind y añada un bind de redundancia. Si el proveedor fija el límite por cuenta y no por bind, los binds adicionales aportan resiliencia pero no capacidad. La mayoría de las conexiones A2P usan binds transceiver, de modo que una sola sesión lleva tanto los envíos como los informes de entrega.
¿Cuál es un buen TPS para SMS?
Las cuentas A2P normales suelen configurarse entre 10 y 100 TPS por bind, con más para los grandes remitentes. La cifra adecuada depende de su pico, no de su volumen mensual: 360 000 mensajes tardan una hora a 100 TPS y cinco horas a 20 TPS. Recuerde que cada segmento de un mensaje largo cuenta como una transacción.
¿Qué es enquire_link en SMPP?
Enquire_link es un comando de keep-alive que cualquiera de las dos partes envía para comprobar que la sesión SMPP sigue funcionando. La mayoría de las configuraciones lo envían cada 30 a 60 segundos, con el intervalo acordado con el proveedor. Si no llega respuesta, el cliente debe cerrar el bind y reconectarse automáticamente, para que los mensajes y los informes de entrega no se acumulen.
¿Necesita una ruta?
Envíe el destino, el tipo de ruta y la tarifa objetivo. Le respondemos con lo que podemos ofrecer.