Informes de entrega

El software SMSEagle le permite habilitar informes de entrega para cada SMS enviado. Los informes de entrega son una función que permite recibir una confirmación de que el SMS fue recibido en el teléfono del destinatario.

Para habilitar los informes de entrega, vaya a web-GUI > menú Settings y configure “Delivery Reports” en “Yes”

Una vez que los informes de entrega estén habilitados en la web-GUI, podrá verificar si el SMS fue entregado al destinatario:

  • En la web-GUI En el menú Folders > Sent items > abra el mensaje que desea verificar. Presione “Show Details“ en la esquina superior derecha del mensaje. El campo “Modem Status” contiene información sobre el estado de entrega

  • Usando Webhooks La función CallbackURL permite definir un webhook para el cambio de estado de entrega. Los webhooks son puntos de conexión HTTP estándar implementados en su aplicación externa que aceptarán solicitudes HTTP del dispositivo SMSEagle. Los webhooks le evitan tener que enviar solicitudes continuamente al dispositivo SMSEagle preguntando por el estado del mensaje. Consulte más detalles en el capítulo Callback URL de este Manual de Usuario.

  • Usando API

Use el método “read_sms” para obtener datos de un SMS seleccionado en la carpeta sentitems. Los datos contendrán las columnas “Status” y “DeliveryDateTime”, que contienen información sobre el estado de entrega del mensaje. Para más información sobre los posibles valores de la columna “Status”, consulte la tabla “Field Description Of Response Data – Sentitems Folder” en la Referencia APIv1.

Conexión directa a la base de datos de SMSEagle

La base de datos de SMSEagle opera con el motor de base de datos PostgreSQL. Puede utilizar un acceso directo a la base de datos para leer/escribir mensajes SMS directamente desde/hacia la base de datos mediante consultas SQL.

El acceso a la base de datos para aplicaciones externas está deshabilitado por defecto. Para habilitarlo, vaya a webGUI > menú Settings y active la siguiente opción:

Una vez habilitado el acceso a la base de datos, es posible conectarse a ella desde una aplicación externa usando las siguientes credenciales:

  • Host: dirección IP de su dispositivo

  • Nombre de la base de datos: smseagle

  • Usuario: smseagleuser

  • Contraseña: postgreeagle

Inyectar SMS cortos usando SQL

El ejemplo más simple es un mensaje de texto corto (limitado a 160 caracteres):

INSERT INTO outbox (
    DestinationNumber,
    TextDecoded,
    CreatorID,
    Coding,
    Class,
    SenderID
) VALUES (
    '1234567',
    'This is a SQL test message',
    'Program',
    'Default_No_Compression',
    -1,
    'smseagle1'
);
INSERT INTO user_outbox (
    id_outbox,
    id_user
) SELECT CURRVAL(pg_get_serial_sequence('outbox','ID')), 1;

En el ejemplo anterior, el mensaje pertenecerá al usuario con id_user 1 (por defecto “admin”). Puede encontrar los valores de id_user para otros usuarios en la tabla public.»user». El campo SenderID contiene el número de identificación del módem SMSEagle. Para el módem 1 SenderID = smseagle1 y para el módem 2 SenderID = smseagle2.

Inyectar SMS largos usando SQL

Insertar mensajes multiparte es un poco más complicado, también debe construir un encabezado UDH y almacenarlo escrito en hexadecimal en el campo UDH. A menos que tenga una buena razón para hacerlo manualmente, use la API.

Para un mensaje de texto largo, el UDH comienza con 050003 seguido de un byte como referencia del mensaje (puede colocar cualquier valor hexadecimal ahí, pero debe ser diferente para cada mensaje, D3 en el siguiente ejemplo), un byte para el número de mensajes (02 en el ejemplo, debe ser único para cada mensaje que envíe al mismo número de teléfono) y un byte para el número del mensaje actual (01 para el primer mensaje, 02 para el segundo, etc.).

Por ejemplo, un mensaje de texto largo de dos partes podría verse así:

INSERT INTO outbox (
    "DestinationNumber",
    "CreatorID",
    "MultiPart",
    "UDH",
    "TextDecoded",
    "Coding",
    "Class",
    "SenderID"
) VALUES (
    '1234567',
    'Program',
    'true',
    '050003D30201',
    'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, qui',
    'Default_No_Compression',
    -1,
    'smseagle1'
)
INSERT INTO outbox_multipart (
    "ID",
    "SequencePosition",
    "UDH",
    "TextDecoded",
    "Coding",
    "Class"
) SELECT
    CURRVAL(pg_get_serial_sequence('outbox','ID')),
    2,
    '050003D30202',
    's nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
    'Default_No_Compression',
    -1;
INSERT INTO user_outbox (
    id_outbox,
    id_user
) SELECT
    CURRVAL(pg_get_serial_sequence('outbox','ID')),
    1;

Nota: Agregar UDH significa que tiene menos espacio para el texto; en el ejemplo anterior, solo puede usar 153 caracteres en un solo mensaje.

Scripts de limpieza de la base de datos

Hemos agregado algunos scripts útiles que pueden usarse para eliminar mensajes SMS de la base de datos a través de la CLI de Linux. Los scripts se encuentran en el siguiente directorio: /mnt/nand-user/scripts/

  • db_delete – script para eliminar SMS de las carpetas Inbox, SentItems anteriores a la fecha indicada. Uso: ./db_delete YYYYMMDDhhmm

  • db_delete_7days – script para eliminar SMS de las carpetas Inbox, Sentitems con más de 7 días de antigüedad. Uso: ./db_delete_7days

  • db_delete_allfolders – script para limpiar las carpetas de la base de datos PostgreSQL (Inbox, SentItems, Outbox). Diseñado especialmente para ejecutarse periódicamente mediante cron. Uso: ./db_delete_allfolders

  • db_delete_select - script para eliminar SMS de la carpeta de base de datos elegida (Inbox, Outbox, SentItems, Trash). Uso: ./db_delete_select {inbox|outbox|sentitems|trash}

Agregar el script al demonio cron del sistema

  1. Cree un archivo dentro del directorio /etc/cron.d/ con el nombre que desee (por ejemplo, pico db_cleaner)

  2. Ejemplo de contenido de este archivo: 0 0 1 * * root /mnt/nand-user/scripts/db_delete_allfolders

Esto ejecutará el script de limpieza cada día 1ro de cada mes.

Agente SNMP

“Simple Network Management Protocol (SNMP) es un protocolo estándar de Internet para la gestión de dispositivos en redes IP. Se utiliza principalmente en sistemas de gestión de redes para supervisar dispositivos conectados a la red en busca de condiciones que requieran atención administrativa” (fuente: Wikipedia).

El dispositivo SMSEagle cuenta con un agente Net-SNMP integrado. El agente SNMP proporciona acceso al árbol MIB de Linux Host del dispositivo y, adicionalmente (mediante la extensión NET-SNMP-EXTEND-MIB), permite el acceso a métricas personalizadas específicas de SMSEagle.

Las métricas SNMP disponibles que describen el estado de un dispositivo SMSEagle son:

Nombre de la métrica

Descripción

OID

GSM_Signal1

Devuelve la intensidad de la señal 3G/4G en porcentaje para el módem 1. Rango de valores: 0-100. Si el módem está desconectado de la red celular, GSM_Signal devuelve 0.

.1.3.6.1.4.1.8072.1.3.2.3.1.2.11.71.83.77.95.83.105.103.110.97.108.49

GSM_Signal[X]

Devuelve la intensidad de la señal 3G/4G en porcentaje para el módem X. Rango de valores: 0-100. Si el módem está desconectado de la red celular, GSM_Signal devuelve 0.

.1.3.6.1.4.1.8072.1.3.2.3.1.2.11.71.83.77.95.83.105.103.110.97.108.[48+X]

GSM_NetName1

Devuelve el nombre de la red celular en el módem 1

.1.3.6.1.4.1.8072.1.3.2.3.1.2.12.71.83.77.95.78.101.116.78.97.109.101.49

GSM_NetName[X]

Devuelve el nombre de la red celular utilizada en el módem X

.1.3.6.1.4.1.8072.1.3.2.3.1.2.12.71.83.77.95.78.101.116.78.97.109.101.[48+X]

GSM_ModemState[X] donde X es el número del módem

Devuelve la información del estado del módem: habilitado/deshabilitado

.1.3.6.1.4.1.8072.1.3.2.3.1.2.11.77.111.100.101.109.83.116.97.116.101.49 (para el 1er módem)
.1.3.6.1.4.1.8072.1.3.2.3.1.2.11.77.111.100.101.109.83.116.97.116.101.50 (para el 2do módem)

FolderOutbox_Total

Devuelve el número de mensajes SMS en la carpeta Outbox (longitud de la cola de salida)

.1.3.6.1.4.1.8072.1.3.2.3.1.2.18.70.111.108.100.101.114.79.117.116.98.111.120.95.84.111.116.97.108

FolderInbox_Total

Devuelve el número de mensajes SMS en la carpeta Inbox

.1.3.6.1.4.1.8072.1.3.2.3.1.2.17.70.111.108.100.101.114.73.110.98.111.120.95.84.111.116.97.108

FolderSent_Last24H

Devuelve el número de mensajes SMS enviados desde el dispositivo en las últimas 24 horas

.1.3.6.1.4.1.8072.1.3.2.3.1.2.18.70.111.108.100.101.114.83.101.110.116.95.76.97.115.116.50.52.72

FolderSent_Last1M

Devuelve el número de mensajes SMS enviados desde el dispositivo durante el último mes

.1.3.6.1.4.1.8072.1.3.2.3.1.2.17.70.111.108.100.101.114.83.101.110.116.95.76.97.115.116.49.77

FolderSent_Last24HSendErr

Devuelve el número de mensajes SMS enviados con error en las últimas 24h. El error ocurre cuando el módem 3G no puede enviar el mensaje SMS o el mensaje es rechazado por el operador 3G/4G (esto ocurre principalmente cuando el saldo de una tarjeta SIM de prepago se ha agotado)

.1.3.6.1.4.1.8072.1.3.2.3.1.2.25.70.111.108.100.101.114.83.101.110.116.95.76.97.115.116.50.52.72.83.101.110.100.69.114.114

Temp

Devuelve el último valor de Temperatura (en °C) del sensor interno DHT22. Requiere que el sensor esté habilitado.

.1.3.6.1.4.1.8072.1.3.2.4.1.2.4.84.101.109.112.1

Humidity

Devuelve el último valor de Humedad (en %) del sensor interno DHT22. Requiere que el sensor esté habilitado.

.1.3.6.1.4.1.8072.1.3.2.3.1.2.8.72.117.109.105.100.105.116.121

Temp[X] where X is between 1 and 4

Devuelve el último valor de Temperatura (en °C) de: Temp1: sensor de temperatura interno Temp2-Temp4: sensores de temperatura externos 1-Wire.

.1.3.6.1.4.1.8072.1.3.2.4.1.2.5.84.101.109.112.49.1 (for 1st sensor)
.1.3.6.1.4.1.8072.1.3.2.4.1.2.5.84.101.109.112.50.1 (for 2nd sensor)
etc.

SIM_State[X] where X is the no of modem

Devuelve información del estado físico de la SIM

.1.3.6.1.4.1.8072.1.3.2.3.1.2.10.83.73.77.95.83.116.97.116.101.49 (for 1st modem)
.1.3.6.1.4.1.8072.1.3.2.3.1.2.10.83.73.77.95.83.116.97.116.101.50 (for 2nd modem)

SIM_RegState[X] where X is the no of modem

Devuelve información del estado de registro de la tarjeta SIM en la red móvil.

.1.3.6.1.4.1.8072.1.3.2.3.1.2.13.83.73.77.95.82.101.103.83.116.97.116.101.49 (for 1st modem)
.1.3.6.1.4.1.8072.1.3.2.3.1.2.13.83.73.77.95.82.101.103.83.116.97.116.101.50 (for 2nd modem)

Valores de resultado

  • Usando OID

Los valores de resultado para cada métrica personalizada están disponibles y pueden obtenerse del OID indicado en la tabla anterior.

  • Usando nombre textual

Alternativamente, los valores de resultado para cada métrica personalizada pueden obtenerse usando nombres textuales del árbol OID en: NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»[METRIC NAME]»

For example:
Result value for parameter GSM_Signal1:
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»GSM_Signal1»

Si su herramienta SNMP elegida no puede acceder a los objetos NET-SNMP-EXTEND-MIB, puede descargar las definiciones MIB desde: https://www.smseagle.eu/download/NET-SNMP-EXTEND-MIB.txt

Lectura de valores de resultado Para probar la lectura de los valores de los parámetros desde el agente SNMP, puede usar cualquier herramienta disponible para el protocolo SNMP (por ejemplo: la biblioteca NET-SNMP para Linux o iReasoning MiB-Browser para Windows).

Ejemplo de lectura del valor GSM_Signal1 con la biblioteca NET-SNMP

a) Comando para leer el valor de resultado:

snmpget -v 2c -c public localhost .1.3.6.1.4.1.8072.1.3.2.3.1.2.11.71.83.77.95.83.105.103.110.97.108.49

Resultado:

NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»GSM_Signal1» = STRING: 54

Comentario: El valor de intensidad de señal 3G/4G es del 54%

Ejemplo de lectura del valor GSM_NetName1 con la biblioteca NET-SNMP

a) Comando para leer el valor de resultado:

snmpget -v 2c -c public localhost .1.3.6.1.4.1.8072.1.3.2.3.1.2.12.71.83.77.95.78.101.116.78.97.109.101.49

Resultado:

NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»GSM_NetName1» = STRING: PLAY

Comentario: La red actualmente utilizada en la tarjeta SIM #1 es PLAY

Ejemplo de lectura del valor FolderOutbox_Total usando la biblioteca NET-SNMP (y el nombre textual de la métrica)

a) Comando para leer el valor de resultado:

snmpget -v 2c -c public ip-of-smseagle “NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»FolderOutbox_Total»”

Resultado:

NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»FolderOutbox_Total» = STRING: 0

Comentario: El número de mensajes SMS en espera en la cola de salida es 0

Ejemplo de lectura del tiempo de actividad del sistema desde un host Linux usando la biblioteca NET-SNMP

a) Comando para leer el valor de resultado:

snmpget -v 2c -c public ip-of-smseagle system.sysUpTime.0

Resultado:

DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (216622) 0:36:06.22

Comentario: El sistema Linux ha estado activo durante 36 minutos, 6.22 segundos

Ejemplo de exploración de los parámetros de extensión de SMSEagle en el árbol MIB usando la biblioteca NET-SNMP

a) Comando para leer el valor de resultado:

snmpwalk -v 2c -c public ip-of-smseagle .1.3.6.1.4.1.8072.1.3.2.3.1.2

Resultado:

NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»GSM_Signal1» = STRING: 54

NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»GSM_NetName1» = STRING: PLAY

NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»GSM_NetName2» = STRING: PLAY

NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»FolderInbox_Total» = STRING: 15

NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»FolderSent_Last1M» = STRING: 19

NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»FolderOutbox_Total» = STRING: 0

NET-SNMP-EXTEND-MIB::nsExtendOutputFull.»FolderSent_Last24H» = STRING: 0
NET-SNMP-EXTEND-MIB::nsExtendOutputFull.» FolderSent_Last24HSendErr» = STRING: 0

Ejemplo de navegación por los parámetros de extensión de SMSEagle en el árbol MIB usando mib-browser

Configuración del control de acceso SNMP v3

Por defecto, los dispositivos SMSEagle utilizan el control de acceso SNMP v2. El uso de v3 puede reforzar la seguridad, sin embargo no es obligatorio. Para cambiar fácilmente al control de acceso SNMP v3 hemos preparado un script de shell especial ubicado en el directorio /mnt/nand-user/smseagle.

  1. Inicie sesión vía SSH usando la cuenta root

  2. Navegue a: cd /mnt/nand-user/smseagle/

  3. Script de configuración: ./snmpv3

  4. El script puede ejecutarse con los siguientes parámetros:

    1. add

    2. del

    3. enablev2

    4. disablev2

  5. Para añadir un USUARIO v3, por favor ejecute:

./snmpv3 add USERNAME PASSWORD ENCRYPTIONPASSWORD

  1. Para eliminar un USUARIO, por favor ejecute:

./snmpv3 del

  1. Para desactivar la política de acceso v2, ejecute:

./snmpv3 disablev2

  1. Para activar la política de acceso v2, ejecute:

./snmpv3 enablev2

Reenvío de registros a un servidor externo

Nuestros dispositivos ejecutan rsyslog para la gestión de registros. Aquí describimos cómo configurar reglas adicionales para el demonio rsyslog: rsyslogd. Este es solo un breve extracto del sitio web del manual de rsyslog. La información completa está disponible en: http://www.rsyslog.com/

La configuración de Rsyslogd se gestiona mediante un archivo de configuración ubicado en /etc/rsyslog.conf

  • Al final del archivo de configuración añada:

    *.* action(type=»omfwd» target=»SERVER_IP» port=»PORT» protocol=»PROTOCOL»

action.resumeRetryCount=»10»

queue.type=»linkedList» queue.size=»10000»)

donde: SERVER_IP – dirección IP (o FQDN) del servidor receptor PORT – puerto en el servidor receptor PROTOCOL uno de los valores: tcp, udp

  • Ejemplo:

*.* action(type=»omfwd» target=»192.168.0.250» port=»10514» protocol=»tcp»

action.resumeRetryCount=»10»

queue.type=»linkedList» queue.size=»10000»)

Comprobación automática de actualizaciones de software

El software de SMSEagle está en proceso de mejora continua. Escuchamos a nuestros clientes, y las nuevas versiones se basan en las sugerencias/solicitudes de nuestros clientes. Las actualizaciones de software se publican con frecuencia y ofrecen acceso a nuevas funciones y correcciones de problemas reportados. La interfaz web le ofrece la posibilidad de comprobar automáticamente si hay nuevas actualizaciones de software. Esto se puede hacer de dos maneras:

Comprobación manual

Para comprobar manualmente si hay actualizaciones de software disponibles, vaya al menú Settings > pestaña Updates. Haga clic en el botón «Check for software update now». En la parte superior aparecerá un globo en rojo con información sobre si el sistema está actualizado.

Comprobación automática

Para iniciar las comprobaciones automáticas de actualizaciones de software, vaya al menú Settings > pestaña Updates, y marque la opción “Automatically check for software updates”. Esto activará comprobaciones periódicas (una vez al mes) de actualizaciones de software disponibles. Si hay una nueva actualización disponible, aparecerá un mensaje “Update Available” en el menú Settings> Sysinfo, junto al número de versión actual del software.

Si selecciona “Notify Admin about new software version by SMS”, el dispositivo enviará adicionalmente un SMS a la cuenta de administrador predeterminada (si el número de teléfono está introducido en la cuenta) con una notificación sobre la nueva actualización de software.

Captura de pantalla de “General settings-Maintenance”

Aviso: Su dispositivo SMSEagle debe tener conectividad HTTPS con la dirección updates.smseagle.eu para que esta función funcione.

Base de conocimientos y portal de soporte

Puede encontrar más información y consejos útiles sobre la configuración del dispositivo SMSEagle en nuestra base de conocimientos y portal de soporte en línea en: https://support.smseagle.eu