Extras
Informes de entrega
El software de 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 la web-GUI > menú Settings y establezca “Delivery Reports” en “Yes”

Una vez que los informes de entrega estén habilitados en la web-GUI, puede 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 endpoints HTTP estándar implementados en su aplicación externa que aceptarán solicitudes HTTP del dispositivo SMSEagle. Los webhooks le evitan tener que enviar continuamente solicitudes 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 la 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 valores posibles de la columna “Status”, consulte la documentación de la API.
Conexión directa a la base de datos de SMSEagle
La base de datos de SMSEagle funciona sobre 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 la web-GUI > menú Settings y habilite la siguiente opción:

Una vez habilitado el acceso a la base de datos, es posible conectarse a la base de datos desde una aplicación externa utilizando las siguientes credenciales:
Host: dirección IP de su dispositivo
Nombre de la base de datos:
smseagleUsuario:
smseagleuserContraseña:
postgreeagle
Inyectar un SMS corto 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».
Inyectar un SMS largo usando SQL
Insertar mensajes multiparte es un poco más complicado, también necesita construir el encabezado UDH y almacenarlo escrito en formato 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 poner 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: Añadir un UDH significa que tiene menos espacio para el texto, en el ejemplo anterior solo puede usar 153 caracteres en un único mensaje. *
Scripts de limpieza de la base de datos
Hemos añadido 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 proporcionada. Uso:
./db_delete YYYYMMDDhhmmdb_delete_7days – script para eliminar SMS de las carpetas Inbox, Sentitems con más de 7 días de antigüedad. Uso:
./db_delete_7daysdb_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_allfoldersdb_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
Cree un archivo dentro del directorio /etc/cron.d/ con el nombre que desee (por ejemplo, pico db_cleaner)
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 del 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 monitorear 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 del host Linux del dispositivo y, además (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_Signal |
Devuelve la intensidad de la señal 3G/4G/5G en porcentaje. Rango de valores: 0-100. Si el módem está desconectado de la red 3G/4G/5G, 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_NetName1 |
Devuelve el nombre de red utilizado en la tarjeta SIM actual |
.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_ModemState[X] donde X es el número del módem |
Devuelve información sobre el 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 |
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/4G/5G no puede enviar el mensaje SMS o el mensaje es rechazado por el operador 3G/4G/5G |
.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 de temperatura interno. 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 (para el 1er sensor) |
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 |
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 |
Valores de resultado
Usando OID
Los valores de resultado de cada métrica personalizada están disponibles y pueden obtenerse desde el OID indicado en la tabla anterior.
Usando nombre textual
Alternativamente, los valores de resultado de cada métrica personalizada pueden obtenerse usando nombres textuales del árbol de OID bajo: 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 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 del 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 GSM/3G/4G/5G es 54%
Ejemplo de lectura del valor GSM_NetName1 con la biblioteca NET-SNMP
a) Comando para leer el valor del 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 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 del 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 la bandeja 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 del 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 lleva activo 36 horas, 6.22 minutos
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 del 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.»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 exploración de 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. Usar v3 puede reforzar la seguridad, aunque 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.
Inicie sesión vía SSH usando la cuenta root
Navegar a: cd /mnt/nand-user/smseagle/
Script de configuración: ./snmpv3
El script puede ejecutarse con los siguientes parámetros:
add
del
enablev2
disablev2
Para añadir un USUARIO v3, ejecute:
./snmpv3 add USERNAME PASSWORD ENCRYPTIONPASSWORD
Para eliminar un USUARIO, ejecute:
./snmpv3 del
Para deshabilitar la política de acceso v2, ejecute:
./snmpv3 disablev2
Para habilitar 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: https://www.rsyslog.com/
La configuración de rsyslogd se gestiona mediante un archivo de configuración ubicado en /etc/rsyslog.conf
En la parte inferior 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»)
Cifrado SSL de su tráfico de registros: consulte este artículo: https://www.rsyslog.com/doc/v8-stable/tutorials/tls_cert_summary.html
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 aportaciones/solicitudes de nuestros clientes. Las actualizaciones de software se publican con frecuencia y ofrecen acceso a nuevas funciones y correcciones de problemas reportados. La Web-GUI 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 Maintenance. Haga clic en el botón “Check manually now”. En la parte superior aparecerá un globo en rojo con información sobre si 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 habilitará 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 de software actual.
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-Updates”
Aviso: Su dispositivo SMSEagle debe tener conectividad HTTPS con la dirección www.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