Si se desean recibir los acuses de recibo en tiempo real se deberá especificar la variable “dlr-url” con la URL del cliente donde quiere que se notifique es estado del envío.
El funcionamiento consiste en especificar en cada petición http la URL donde se desea que realice una petición de nuestro servidor cuando se reciba una notificación por parte de la operadora. Para ello el cliente debe disponer de un servidor http capaz de recibir esas notificaciones.
Nuestro servidor enviara las variables por el método GET tal como el cliente quiera, para ello en la URL que nos envía tiene que poner el nombre de la variable seguido de un carácter de escape que contendrá el valor, los caracteres de escape tienen la forma del carácter “%” seguido de una letra. Este seria un ejemplo de URL:
http://my.server.com/notifica.php?remitente=%p&tel=%P&estado=%d
Estos son los caracteres de escape definidos:
%i
Identificador de NRS que se entregó cuando se hizo el envío
%d
Valor del acuse de recibo
%p
Remitente del SMS
%P
Número de teléfono del receptor del mensaje SMS
%t
Fecha del envío del mensaje con formato "YYYY-MM-DD HH:MM", e.j., "1999-09-21 14:18"
El valor %d es el que nos devolverá el estado final del envío, los valores posibles son:
- 1 El mensaje ha sido entregado al destinatario.
- 2 El mensaje no se ha podido entregar al destinatario.
- 4 El mensaje ha sido entregado al SMSC, es una notificación intermedia, no un resultado final
- 16 No se ha podido entregar a la operadora final
Ejemplo de envío de SMS
Para explicar mejor el proceso, a continuación se da un ejemplo de cómo seria el envío de un sms y la recepción de su acuse de recibo.
En primer lugar enviamos el sms con la variable dlr-url donde indicaremos la URL donde queremos recibir la notificación de entrega, añadiremos a esta URL nuestro identificador de envío para poder identificar inequívocamente cuando lo recibamos. La url final para la notificación sería:
https://gateway.nrsgateway.comn/send.php?username=tu_user&password=tu_login&to=3465467445+34627455334+34627545454&text=Prueba+de+envio&from=TEST&coding=0&dlr-mask=8&dlr-url=http%3A%2F%2Fmi.server.com%2Fnotifica.php%3Fidenvio%3D7584remitente%3D%25p%26tel%3D%25P%26estado%3D%25d
Suponiendo que todos los mensajes puedan ser entregados, recibiremos al script notifica.php tres peticiones con el estado=1, remitente=TEST, idenvio=7584 y el número de teléfono correspondiente.