Un informe de entrega SMS (DLR) indica el estado final de un mensaje: DELIVRD (llegó al terminal), UNDELIV (falló), EXPIRED (venció el periodo de validez), REJECTD (rechazado por la red), DELETED, UNKNOWN, o ACCEPTD y ENROUTE como estados intermedios. El estado viene acompañado de un código de error que explica los fallos, pero los códigos de error son propios de cada operador o plataforma.
Cómo le llega un DLR
Por SMPP, el acuse se solicita con el campo registered_delivery de submit_sm (el valor 1 pide un acuse tanto en caso de éxito como de fallo; el valor 2, solo en caso de fallo). El proveedor responde con submit_sm_resp y un ID de mensaje, lo que solo significa que el mensaje se aceptó, no que se entregó. Más tarde el acuse llega como un deliver_sm cuyo esm_class lo marca como acuse de entrega. Con las HTTP API, la misma información se envía a su webhook. Ambas interfaces se comparan en SMPP vs HTTP API para SMS A2P.
La especificación SMPP 3.4 propone un formato de texto para el acuse, que siguen la mayoría de las plataformas:
id:1234567890 sub:001 dlvrd:001 submit date:2610201015 done date:2610201015 stat:DELIVRD err:000 text:Your code is
El id coincide con el ID de mensaje de submit_sm_resp. Las fechas suelen tener el formato AAMMDDhhmm. Muchas plataformas envían además los mismos datos en los parámetros opcionales receipted_message_id y message_state.
Valores de estado
| Estado | Significado | ¿Final? |
|---|---|---|
| DELIVRD | Entregado en el terminal | Sí |
| UNDELIV | No se pudo entregar (número no válido, abonado ausente, restringido, bloqueado) | Sí |
| EXPIRED | El periodo de validez terminó antes de la entrega, a menudo porque el teléfono estaba apagado o sin cobertura | Sí |
| REJECTD | Rechazado por la red o por un firewall SMS, a menudo por motivos de sender ID o de contenido | Sí |
| DELETED | Eliminado del SMSC antes de la entrega | Sí |
| UNKNOWN | Estado final desconocido o no informado | Tratarlo como fallido mientras no se demuestre lo contrario |
| ACCEPTD | Aceptado por el SMSC en nombre del abonado, sin confirmación del terminal | Intermedio |
| ENROUTE | En tránsito, todavía se está intentando la entrega | Intermedio |
Algunas plataformas envían acuses intermedios y después uno final. Su sistema debe actualizar el estado del mensaje cada vez y tomar como resultado solo el estado final.
Códigos de error
El campo err lleva un código de tres dígitos, normalmente 000 en caso de éxito. En los fallos, su significado depende del operador y de cada plataforma de la cadena, así que no existe una lista universal. Las categorías habituales detrás de los códigos son: abonado desconocido o no asignado, abonado ausente, memoria del terminal llena, llamada restringida, fallo de red y bloqueo por filtro antispam o firewall. Pida a cada proveedor su tabla de códigos de error y hágala corresponder con sus propias categorías. No confunda los códigos de error del DLR con los códigos command_status de SMPP que se devuelven en el envío: estos se explican en códigos de error SMPP habituales.
Cómo leer correctamente los DLR
- La falta de DLR no es un fallo por defecto. Algunos destinos o rutas no devuelven acuses. Sepa cuáles son antes de crear alertas.
- El momento importa. Un estado EXPIRED puede llegar horas o días después, según el periodo de validez que haya fijado. Un periodo de validez corto conviene al OTP, donde un código que llega tarde no sirve.
- Los mensajes concatenados pueden generar un acuse por parte. Cuente un mensaje largo como entregado solo cuando lo estén todas sus partes. Consulte SMS largos concatenados.
- Lo que parece demasiado bueno es una señal. Una ruta con un 100% de DELIVRD y acuses instantáneos puede estar enviando DLR falsos.
Cómo usar los DLR para gestionar las rutas
Agregue los estados por país, por red y por ruta cada hora. Un aumento de UNDELIV o REJECTD en una red suele indicar un cambio en el firewall o un problema con el sender ID; un aumento de EXPIRED puede indicar congestión. Esta es la base de la monitorización de la entrega, explicada en tasa de entrega y latencia de SMS. Cuando una ruta se degrada, una ruta de respaldo le permite mover el tráfico rápidamente.
VoIPMatcher obtiene de sus carriers rutas SMS A2P con informes de entrega. Solicite una ruta SMS e indíquenos qué destinos necesitan soporte completo de DLR.
Preguntas frecuentes
¿Qué significa DLR en SMS?
DLR significa delivery report, informe o acuse de entrega. Es el mensaje de estado que se devuelve después de que una red intenta entregar un SMS, e indica al remitente si el mensaje llegó al terminal, falló, caducó o fue rechazado. Las plataformas A2P lo devuelven al remitente por SMPP o a un webhook.
¿Cómo activo los informes de entrega de SMS en mi teléfono?
En la mayoría de las aplicaciones de mensajes de Android, los informes de entrega son una opción de los ajustes de SMS de la aplicación, a menudo dentro de los ajustes avanzados. El iPhone no ofrece informes de entrega para los SMS normales. Los informes de entrega del teléfono son distintos de los DLR A2P que las empresas reciben de su proveedor de SMS, que se solicitan al enviar cada mensaje.
¿Qué es un DLR del SMSC?
Un DLR del SMSC es el acuse de entrega que genera el Short Message Service Centre del operador después de intentar entregar el mensaje. Es el único informe que refleja lo que ocurrió en la red. Los acuses creados por plataformas intermedias sin confirmación del operador no son DLR reales del SMSC y pueden ocultar tráfico no entregado.
¿Por qué no recibo informe de entrega de algunos SMS?
Algunos destinos, redes y rutas no devuelven ningún acuse, y otros solo lo devuelven en caso de fallo. Por eso, la ausencia de DLR no demuestra que un mensaje haya fallado. Pregunte a su proveedor qué destinos tienen soporte completo de DLR, registre los acuses ausentes por separado de los fallos y confírmelo con pruebas en terminales.
¿Cuánto tarda un informe de entrega?
En buenas rutas, un informe DELIVRD suele llegar a los pocos segundos de la entrega. Los estados de fallo pueden tardar mucho más: un informe EXPIRED solo llega cuando termina el periodo de validez, lo que puede ser horas o días después. Los informes que siempre llegan menos de un segundo después del envío, incluso en los fallos, indican que se generan y no son reales.
¿Necesita una ruta?
Envíe el destino, el tipo de ruta y la tarifa objetivo. Le respondemos con lo que podemos ofrecer.