API HTTP - acción 'sendmessage'

Este comando de API HTTP puede utilizarse para enviar un mensaje SMS a través de la Pasarela SMS. El comando puede usarse para enviar mensajes SMS de texto u otros tipos de mensajes, como SMS binarios, logos de operador, tonos de llamada, WAP PUSH, etc... Cuando utilices este comando, debes usar un nombre de usuario y contraseña de API HTTP, debes especificar el número de teléfono del destinatario y el texto del mensaje.

Descripción

Para enviar un SMS, utiliza el siguiente formato de URL:

https://127.0.0.1:9508/api?action=sendmessage&username=UUUUU&password=PPPPP&
recipient=NNNNN&messagetype=MMMMM&messagedata=DDDDD


127.0.0.1 es una IP local, por lo que debes reemplazarla por la dirección IP o el nombre de host del ordenador con la Pasarela SMS Ozeki instalada. (Nota: 127.0.0.1 es una dirección de loopback local que puede usarse cuando te conectas a la Pasarela SMS desde el mismo ordenador.) 9508 es el puerto predeterminado de la API HTTP de la Pasarela SMS Ozeki. Este número de puerto puede verse y editarse en la interfaz de usuario de Ozeki 10 SMS Gateway, haciendo clic en el botón Avanzado en la barra de herramientas.

"UUUUU" y "PPPPP" deben reemplazarse por el nombre de usuario y contraseña del usuario que has creado en la pasarela SMS.

Sustituye "NNNNN" por el número de teléfono al que deseas enviar el mensaje SMS. Puedes usar el formato de número de teléfono local o formatos de número de teléfono internacional (los números de teléfono en formato internacional siempre comienzan con un signo '+'). Si se usa el formato internacional, ten en cuenta que debes sustituir '%2B' por el carácter '+', debido a las reglas de codificación de URL.

Sustituye "MMMMM" por el tipo de mensaje. El tipo de mensaje "SMS:TEXT" debe usarse para mensajes de texto.

Los datos del mensaje contienen el mensaje que deseas enviar. Coloca los datos del mensaje en lugar de "DDDDD". Los datos del mensaje deben usar caracteres UTF-8 y deben estar codificados en URL.

También se pueden añadir otros parámetros a la solicitud.
Para una lista completa de los parámetros disponibles, consulta la tabla 'Parámetros de solicitud' a continuación:

Ejemplo de solicitud URL

https://127.0.0.1:9508/api?action=sendmessage&username=admin&password=abc123&
recipient=06203105366&messagetype=SMS:TEXT&messagedata=Hello+World

Ejemplo de respuesta

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 246

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE smsapi PUBLIC "-//OZEKI//DTD XML 1.0//EN" "http://www.ozekisms.com/DTD/smsapi.xml">
<response>
   <action>sendmessage</action>
   <data>
      <acceptreport>
         <statuscode>0</statuscode>
         <statusmessage>Mensaje aceptado para entrega</statusmessage>
         <messageid>ERFAV23D</messageid>
         <recipient>06203105366</recipient>
      </acceptreport>
   </data>
</response>

Parámetros de solicitud HTTP

Parámetro Descripción Valores posibles Ejemplo Obligatorio/Opcional*
action Especifica el comando de la API HTTP sendmessage action=sendmessage Obligatorio
username Especifica el nombre de usuario. Los parámetros de nombre de usuario y contraseña se utilizan para autenticar al usuario. Cuando envías un mensaje, se enviará en nombre del usuario autenticado. El valor debe estar codificado en URL. valor de cadena, longitud máxima de 16 caracteres username=admin Obligatorio
password Especifica la contraseña. Los parámetros de nombre de usuario y contraseña se utilizan para autenticar al usuario. Cuando envías un mensaje, se enviará en nombre del usuario autenticado. El valor debe estar codificado en URL. valor de cadena, longitud máxima de 16 caracteres password=abc123 Obligatorio
originator Especifica la dirección del remitente. Esta información se mostrará en el teléfono móvil que reciba el mensaje. Esta es la dirección del remitente. Puede ser un número de teléfono, un código corto o una dirección alfanumérica. El número de teléfono puede estar en formato local (ej. 06201234567) o en formato internacional (ej. +36201234567). Si usas una dirección alfanumérica (ej. ozeki), los caracteres deben estar codificados en UTF8 y el valor debe estar codificado en URL. valor de cadena, longitud máxima de 16 caracteres originator=%2B36201112222 Opcional
recipient Especifica el número de teléfono del destinatario. El mensaje se enviará a este número de teléfono. El número de teléfono puede especificarse en formato local (ej. 06201234567) o en formato internacional (ej. +36201234567).
Se pueden separar varias direcciones de destinatario con dos puntos (ej.: +36201234567,+36202222222) o punto y coma.
El valor debe estar codificado en URL.
valor de cadena, longitud máxima de 16 caracteres recipient=%2B36201234567 Obligatorio
messagetype Especifica el tipo de mensaje. El tipo de datos del mensaje SMS basado en la Especificación de Tipo de Mensaje Móvil. Para mensajes de texto, los datos del mensaje serán texto plano; para otros tipos de mensajes, será un documento XML.
SMS:TEXT
SMS:WAPPUSH
...
Los valores posibles se pueden encontrar en la Especificación de Tipo de Mensaje Móvil
messagetype=SMS:TEXT Opcional
messagedata Especifica el texto o los datos del mensaje SMS. El valor debe estar codificado en UTF8 y debe estar codificado en URL. valor de cadena, longitud máxima de 32768 caracteres messagedata=Hello+World Obligatorio
_charset_ Especifica el conjunto de caracteres de los datos codificados (si no se especifica, se asumirá utf-8). Los navegadores más recientes deberían establecer el valor de _charset_ automáticamente. Si tu navegador no soporta esta función, puedes configurarlo manualmente como:
utf-8
windows-1250
iso-8859-1
iso-8859-2
...
(Valores de conjuntos de caracteres soportados)
_charset_=iso-8859-2 Opcional
serviceprovider Especifica el nombre del módem GSM o la conexión del proveedor de servicios SMS IP que se utilizará para enviar el mensaje. Más información sobre la selección de conexión del proveedor de servicios está disponible en el API HTTP SMS - guía de enrutamiento SMS.

El valor debe coincidir con la cadena especificada en el formulario de configuración de la conexión del proveedor de servicios.
valor de cadena, longitud máxima de 16 caracteres serviceprovider=Vodafone Opcional
sendondate Especifica la fecha y hora en que se debe enviar el mensaje.

El valor debe usar el siguiente formato de fecha: YYYY-MM-DD hh:mm:ss. El valor debe estar codificado en URL
valor de fecha en formato YYYY-MM-DD hh:mm:ss sendondate=2018-12-12+10%3A07%3A05 Opcional
responseformat Después de que la pasarela envíe el mensaje SMS, la pasarela devolverá una página web indicando que el mensaje se ha enviado correctamente. El contenido de la página web se formatea según el parámetro responseformat. Puedes tener una respuesta de texto HTML para que sea fácil de leer para humanos o puedes tener formato XML para que sea fácil de procesar para software. xml (predeterminado)
html
urlencoded
responseformat=xml Opcional
continueurl Después de que la pasarela envíe el mensaje SMS, la pasarela devolverá una página web indicando que el mensaje se ha enviado correctamente. El contenido de la página web se formatea según el parámetro responseformat. Si el parámetro responseformat está configurado como html, la página web puede contener un enlace "Continuar". Si especificas la URL en este parámetro, se mostrará el enlace continuar y apuntará a la URL especificada. El valor de la URL debe estar codificado en URL.

La URL que especifiques puede contener palabras clave que se reemplazarán por información de estado correspondiente al mensaje enviado. Más información sobre las palabras clave posibles se puede encontrar en la guía "Palabras clave de URL de envío".
valor de cadena, longitud máxima de 1024 caracteres continueurl=192.168.1.23

o

continueurl=http%3A%2F%2Fwww.ozekisms.
com%2Findex.php%3Fowpn%3D159

Nota: el segundo ejemplo contiene una URL codificada en URL.
Opcional
redirecturl Después de que la pasarela envíe el mensaje SMS, por defecto la pasarela devolverá una página web indicando que el mensaje se ha enviado correctamente. Opcionalmente puedes pedir a la pasarela que redirija automáticamente el navegador a una URL que especifiques. Si especificas una URL en el parámetro redirect, la respuesta HTTP devuelta por la pasarela SMS contendrá una URL de redirección en el encabezado HTTP. Esto indicará al navegador web que siga el enlace que has especificado. El valor de la URL debe estar codificado en URL.

La URL que especifiques puede contener palabras clave que se reemplazarán por información de estado correspondiente al mensaje enviado. Más información sobre las palabras clave posibles se puede encontrar en la guía "Palabras clave de URL de envío".
valor de cadena, longitud máxima de 1024 caracteres redirecturl=192.168.1.23

o

redirecturl=http%3A%2F%2F192.168.1.23
%2Findex.php%3Fowpn%3D159

Nota: el segundo ejemplo contiene una URL codificada en URL.
Opcional
reporturl Puedes configurar una página web para procesar información sobre eventos "entregado a la red" y "entregado al dispositivo". Si especificas una URL en el parámetro reporturl, tu página web será llamada cuando ocurran estos eventos. El valor de la URL que especifiques en el parámetro reporturl debe estar codificado en URL.

La URL que especifiques puede contener palabras clave que se reemplazarán por información de estado correspondiente al mensaje enviado.

Un buen ejemplo de cómo usar la opción de URL de informe se puede encontrar en la guía cómo enviar un SMS programado y usar la funcionalidad reporturl.
valor de cadena, longitud máxima de 1024 caracteres reporturl=http%3A%2F%2Fwww.ozekisms.
com%2Fproc.php%3Freporttype%3D%24reporttype
%26messageid%3D%24messageid

Nota: esta es la versión codificada en URL de la siguiente URL. Antes de que esta URL sea llamada por la pasarela SMS, los parámetros $reporttype y $messageid se reemplazarán por los valores apropiados:

http://192.168.1.23/proc.php?reporttype=$reporttype&
messageid=$messageid

se llamará como:
http://192.168.1.23/proc.php?reporttype=deliveredtonetwork& messageid=ERFAV23D

La lista de palabras clave que puedes usar en reporturl son:
$reporttype
$messageid
$statuscode
$statusmessage
$fromstation
$fromconnection
$fromaddress
$tostation
$toconnection
$toaddress
$text
$createdate
$submitdate
$receiveddate
Opcional
messagecount Especifica el número exacto de mensajes que deseas enviar. Si se establece, se necesita indexación para los parámetros 'recipient', 'messagetype' y 'messagedata'. El tutorial detallado sobre 'messagecount' se puede encontrar aquí. número
(valor predeterminado:
1)
messagecount=6 Opcional
maxresponse Este número especifica el máximo de mensajes sobre los cuales recibirás retroalimentación. Si excedes este número, tus mensajes se enviarán, pero no recibirás retroalimentación sobre ellos. Por defecto, este parámetro está configurado en 500 mensajes. número maxresponse=1000 Opcional
vp Especifica el período de validez para tu mensaje.

El valor debe usar el siguiente formato de fecha: YYYY.MM.DD hh:mm:ss. El valor debe estar codificado en URL.
Lee este tutorial para más información.
valor de fecha en formato YYYY.MM.DD hh:mm:ss vp=2019.01.28.+10%3A07%3A05 Opcional

* Obligatorio = Parámetro obligatorio, Opcional = Parámetro opcional

Parámetros de respuesta
(formato de respuesta xml)

Parámetro Descripción Valores posibles Ejemplo
acceptreport Contiene la respuesta para la solicitud de envío para una única dirección de destinatario. Si se especifican varios destinatarios, se incluirá un acceptreport en la respuesta para cada destinatario. El orden de los acceptreports coincidirá con el orden de las direcciones de destinatario.  
<acceptreport>
   <statuscode>0</statuscode>
   <statusmessage>Mensaje aceptado
   para entrega</statusmessage>
   <messageid>ERFAV23D</messageid>
   <recipient>06203105366</recipient>
</acceptreport>
acceptreport.statuscode Contiene un valor entero para indicar éxito o fallo. Si el valor es 0, significa que el mensaje fue aceptado para entrega. Si el valor es mayor que 0, significa que hubo un error y el mensaje no fue aceptado para entrega. Valor entero, mayor o igual a 0. Menor que 32768. <statuscode>0</statuscode>
acceptreport.statusmessage Contiene una representación textual del código de estado. Si el mensaje fue aceptado, el valor será "Mensaje aceptado para entrega". Si el mensaje no fue aceptado para entrega, puedes encontrar el mensaje de error en este campo. valor de cadena, longitud máxima de 1024 caracteres <statusmessage>Mensaje aceptado para entrega</statusmessage>
acceptreport.messageid Contiene una referencia de mensaje que puede usarse para rastrear el mensaje en la pasarela SMS. Esta referencia de mensaje también se usa para identificar informes de entregado a la red y entregado al dispositivo o para consultar información sobre el mensaje. valor de cadena, longitud máxima de 16 caracteres <messageid>ERFAV23D</messageid>
acceptreport.recipient Contiene la dirección del destinatario. valor de cadena, longitud máxima de 16 caracteres <recipient>06203105366</recipient>

Resumen

Este artículo trataba sobre la acción 'sendmessage' de la API HTTP. Con esta acción, puedes enviar mensajes SMS de texto y muchos otros tipos de mensajes a cualquier destinatario a través de la Pasarela SMS Ozeki. Has visto ejemplos de respuestas y algunas solicitudes HTTP más con descripción, valores posibles y ejemplos.

Si deseas saber más sobre el estado de entrega de tus mensajes, no dudes en hacer clic en la página sobre estados de entrega de SMS. Si deseas obtener una plantilla de URL, visita la página correspondiente.

Si deseas utilizar esta solución en situaciones reales, descarga la Pasarela SMS Ozeki y comienza a usarla ahora mismo!

More information