La estructura del script de consulta SQL
Desplázate hacia abajo para ver la estructura del script de consulta SQL. Puedes renderizar un archivo de script para cada Usuario de Base de Datos de Autorespuesta, el cual es capaz de enviar mensajes SMS si siguen el script. El archivo trabaja con cada mensaje entrante y selecciona mensajes salientes de acuerdo al filtro.
Introducción
Observa el archivo de script. Puedes ver que está dividido en secciones separadas por líneas vacías (Figura 1). Puedes escribir tantas secciones como desees sin límite máximo. Las secciones se leen secuencialmente y la primera sección que coincida con el SMS entrante será usada para crear el mensaje SMS de respuesta.
La primera línea de cada sección es la condición de filtrado, y las siguientes una o más sentencias SQL son llamadas acción. Las sentencias SELECT de SQL pueden devolver uno o más mensajes de respuesta. Si la condición de filtrado coincide con los datos del mensaje entrante, llama a las sentencias para ser ejecutadas hasta que se encuentre una línea vacía. En este caso no verificará otras secciones.
Condición
Cada sección comienza con una condición que consiste en una sola fila dividida en dos partes (Figura 2)
La primera parte es el selector de objetivo de coincidencia, un solo carácter que determina qué parte del mensaje entrante debe ser filtrada (Figura 3). FONT style="font-size:15px;">Puedes seleccionar un carácter selector de objetivo de coincidencia de las siguientes opciones:
# Opciones de condición: # n - si el número de teléfono del remitente coincide con el patrón # m - si el texto del mensaje coincide con el patrón # k - si la palabra clave coincide con el patrón. (La palabra clave es la primera palabra # del mensaje. La palabra clave se convierte a mayúsculas)Figura 3 - Selectores de objetivo de coincidencia
La segunda parte es el patrón de coincidencia que es el filtro de caracteres (Figura 4). Estos ejemplos de patrón de coincidencia funcionan en el objetivo de mensaje 'm':
m.* - coincide con cualquier mensaje de texto m^abc.* - coincide si el mensaje de texto comienza con 'abc' o 'ABC' m.*abc.* - coincide si el mensaje de texto contiene 'abc' o 'ABC'Figura 4 - Ejemplos de patrón de coincidencia
Aquí puedes encontrar un tutorial de expresiones regulares para los patrones de coincidencia disponibles.
Acción
Cada filtro de condición es seguido por una acción que consiste en sentencias SQL.
Solo puedes enviar mensajes SMS con consultas SELECT de SQL, pero también puedes ejecutar sentencias INSERT y UPDATE. Ten en cuenta que el 1er parámetro del conjunto de resultados SELECT es el destinatario del mensaje a enviar, mientras que el 2do parámetro es el mensaje en sí. En la Figura 5 puedes ver algunos ejemplos.
k^RED INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red' k^BLUE SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue' k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'Figura 5 - Ejemplos de sentencias SQL donde el destinatario es el '$sender'
Las siguientes palabras son reemplazadas en las sentencias SQL:
Palabras | Valor | $originator | El número de teléfono desde el que se envió el mensaje. |
---|---|
$sender | =$originator (El $sender es otro nombre para el $originator.) |
$recipient | El número de teléfono al que se envió el mensaje. |
$receiver | =$recipient (El $receiver es otro nombre para el $recipient.) |
$messagedata | El texto del mensaje. |
$keyword | La 1ra palabra en el mensaje. Esta palabra se llama palabra clave. |
$after | El texto restante después de la palabra clave. |
$senttime | Una marca de tiempo que muestra cuándo se envió el mensaje. |
$receivedtime | Una marca de tiempo que muestra cuándo se recibió el mensaje. |
$messagetype | El tipo de mensaje, que en la mayoría de los casos es 'SMS:TEXT'. |
$id | Una cadena única. Identifica cada mensaje en Ozeki SMS Gateway. |
$operator | Nombre del proveedor de servicios. Recibe el mensaje en Ozeki SMS Gateway. |
$1 | La 1ra palabra en el mensaje. |
$2 | La 2da palabra en el mensaje. |
$3 | La 3ra palabra en el mensaje, etc... |
Cada sentencia SQL es ejecutada línea por línea hasta que el intérprete alcanza una línea vacía, donde finalmente se detiene.
(Consejo: Solo puedes obtener el contenido del mensaje de respuesta usando sentencias SELECT.)
Respuesta
El conjunto de resultados de la sentencia SELECT contiene los mensajes a ser reenviados o respondidos. El número de filas que encuentres en el conjunto de resultados determinará el número de mensajes a enviar. (Figura 6)
El conjunto de resultados puede contener los siguientes parámetros:recipient - La 1ra columna del conjunto de resultados (Obligatorio) messageData - La 2da columna del conjunto de resultados (Obligatorio) messageType - La 3ra columna del conjunto de resultados (Opcional) sender - La 4ta columna del conjunto de resultados (Opcional) operatorNames - La 5ta columna del conjunto de resultados (Opcional)
Figura 6 - El Usuario de Base de Datos de Autorespuesta de Ozeki 10 SMS Gateway enviará mensajes SMS desde los resultados.
Ejemplo
Observa un ejemplo de cómo filtrar la 1ra palabra en cada mensaje entrante y cómo realizar acciones separadas en cada uno. La acción depende de si la palabra es 'RED', 'BLUE' u otra. Los caracteres en mayúsculas y minúsculas se consideran iguales. (Figura 7)
k^RED INSERT INTO log (sender,message) VALUES ('$sender','$messagedata') SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red' #El primer filtro verifica si la palabra 'RED' era la palabra clave. #Si es verdadero, INSERTA el mensaje en la tabla 'log' #y SELECCIONA 'Red is a good colour.' como mensaje de respuesta. #Si es falso, pasa al siguiente filtro. k^BLUE SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue' #El segundo filtro verifica si la palabra 'BLUE' era la palabra clave. #Si es verdadero, SELECCIONA 'Blue is not the best option.' como mensaje de respuesta. #Si es falso, pasa al siguiente filtro. k.* SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default' #El tercer filtro aceptará cualquier otra palabra clave. #SELECCIONA 'There is no data for this keyword.' como mensaje de respuesta.Figura 7 - Ejemplo de script de consulta SQL
Observa las tablas SQL encontradas en las Figuras 8 y 9 para examinar el siguiente ejemplo:
id keyword msg ---------- ------------------------------ ------------------------------------- 1 default There is no data for this keyword. 2 red Red is a good colour. 3 blue Blue is not the best option.Figura 8 - Tabla 'autoreplymessage'
id sender message ---------- ------------------------------ ------------------------------------- 1 +3620123456 red Hello Autoreply Database User 2 +3670654321 red Good day to you RecipientFigura 9 - Tabla 'log' para mensaje entrante
More information
- Guía de instalación
- Crear diseño de base de datos
- Archivo de script de ejemplo
- Estructura del script