Extras
Rapports de livraison
Le logiciel SMSEagle vous permet d’activer les rapports de livraison pour chaque SMS envoyé. Les rapports de livraison sont une fonctionnalité qui permet de recevoir une confirmation que le SMS a été reçu sur le téléphone du destinataire.
Afin d’activer les rapports de livraison, veuillez aller dans le web-GUI > menu Settings et définir « Delivery Reports » sur « Yes »

Une fois les rapports de livraison activés dans le web-GUI, vous pouvez vérifier si le SMS a été livré au destinataire :
Dans le web-GUI Dans le menu Folders > Sent items > ouvrez le message que vous souhaitez vérifier. Appuyez sur « Show Details » dans le coin supérieur droit du message. Le champ « Modem Status » contient des informations sur le statut de livraison

En utilisant les Webhooks La fonctionnalité CallbackURL permet de définir un webhook pour le changement de statut de livraison. Les webhooks sont des points de terminaison HTTP standards implémentés dans votre application externe qui accepteront les requêtes HTTP provenant de l’appareil SMSEagle. Les webhooks vous évitent d’avoir à envoyer continuellement des requêtes à l’appareil SMSEagle pour demander le statut du message. Voir plus de détails dans le chapitre Callback URL de ce Manuel d’utilisation.
En utilisant l’API
Utilisez la méthode « read_sms » pour récupérer les données d’un SMS sélectionné dans le dossier sentitems. Les données contiendront les colonnes « Status » et « DeliveryDateTime » qui contiennent des informations sur le statut de livraison du message. Pour plus d’informations sur les valeurs possibles de la colonne « Status », veuillez vous référer au tableau « Field Description Of Response Data – Sentitems Folder » dans la Référence APIv1.
Connexion directe à la base de données SMSEagle
La base de données de SMSEagle fonctionne sur le moteur de base de données PostgreSQL. Vous pouvez utiliser un accès direct à la base de données pour lire/écrire des messages SMS directement depuis/vers la base de données via des requêtes SQL.
L’accès à la base de données pour les applications externes est désactivé par défaut. Afin de l’activer, allez dans webGUI > menu Settings et activez le paramètre suivant :

Une fois l’accès à la base de données activé, il est possible de se connecter à la base de données depuis une application externe en utilisant les identifiants suivants :
Host : adresse IP de votre appareil
Nom de la base de données :
smseagleUtilisateur :
smseagleuserMot de passe :
postgreeagle
Injection d’un SMS court en utilisant SQL
L’exemple le plus simple est un message texte court (limité à 160 caractères) :
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;
Dans l’exemple ci-dessus, le message appartiendra à l’utilisateur avec id_user 1 (par défaut “admin”). Vous pouvez trouver les valeurs id_user des autres utilisateurs dans la table public. »user ». Le champ SenderID contient le numéro d’identification du modem SMSEagle. Pour le modem 1, SenderID = smseagle1 et pour le modem 2, SenderID = smseagle2.
Injection d’un SMS long en utilisant SQL
L’insertion de messages multipartites est un peu plus délicate, vous devez également construire un en-tête UDH et le stocker écrit en hexadécimal dans le champ UDH. À moins que vous n’ayez une bonne raison de le faire manuellement, utilisez l’API.
Pour un message texte long, l’UDH commence par 050003 suivi d’un octet servant de référence de message (vous pouvez y mettre n’importe quelle valeur hexadécimale, mais elle doit être différente pour chaque message, D3 dans l’exemple suivant), d’un octet pour le nombre de messages (02 dans l’exemple, il doit être unique pour chaque message que vous envoyez au même numéro de téléphone) et d’un octet pour le numéro du message actuel (01 pour le premier message, 02 pour le second, etc.).
Par exemple, un message texte long en deux parties pourrait ressembler à ceci :
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;
Remarque : Ajouter un UDH signifie que vous avez moins d’espace pour le texte, dans l’exemple ci-dessus vous ne pouvez utiliser que 153 caractères dans un seul message.
Scripts de nettoyage de la base de données
Nous avons ajouté quelques scripts utiles qui peuvent être utilisés pour supprimer des messages SMS de la base de données via la CLI Linux. Les scripts se trouvent dans le répertoire suivant : /mnt/nand-user/scripts/
db_delete – script pour supprimer les SMS des dossiers Inbox, SentItems plus anciens que la date fournie. Utilisation :
./db_delete YYYYMMDDhhmmdb_delete_7days – script pour supprimer les SMS des dossiers Inbox, Sentitems plus anciens que 7 jours. Utilisation :
./db_delete_7daysdb_delete_allfolders – script pour nettoyer les dossiers de la base de données PostgreSQL (Inbox, SentItems, Outbox). Spécialement conçu pour être exécuté périodiquement via cron. Utilisation :
./db_delete_allfoldersdb_delete_select - script pour supprimer les SMS du dossier de base de données choisi (Inbox, Outbox, SentItems, Trash). Utilisation :
./db_delete_select {inbox|outbox|sentitems|trash}
Ajout du script au démon système cron
Créez un fichier dans le répertoire /etc/cron.d/ avec le nom souhaité (par ex. pico db_cleaner)
Exemple de contenu de ce fichier :
0 0 1 * * root /mnt/nand-user/scripts/db_delete_allfoldersCeci exécutera le script de nettoyage chaque 1er jour du mois.
Agent SNMP
“Simple Network Management Protocol (SNMP) est un protocole standard Internet pour la gestion des périphériques sur les réseaux IP. Il est principalement utilisé dans les systèmes de gestion de réseau pour surveiller les appareils connectés au réseau et détecter les conditions nécessitant une attention administrative” (source : Wikipedia).
L’appareil SMSEagle dispose d’un agent Net-SNMP intégré. L’agent SNMP donne accès à l’arborescence MIB Linux Host de l’appareil, et permet en outre (grâce à l’extension NET-SNMP-EXTEND-MIB) d’accéder à des métriques personnalisées spécifiques à SMSEagle.
Les métriques SNMP disponibles décrivant l’état d’un appareil SMSEagle sont :
Nom de la métrique |
Description |
OID |
|---|---|---|
GSM_Signal1 |
Renvoie la force du signal 3G/4G en pourcentage pour le modem 1. Plage de valeurs : 0-100. Si le modem est déconnecté du réseau cellulaire, GSM_Signal renvoie 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] |
Renvoie la force du signal 3G/4G en pourcentage pour le modem X. Plage de valeurs : 0-100. Si le modem est déconnecté du réseau cellulaire, GSM_Signal renvoie 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 |
Renvoie le nom du réseau cellulaire sur le modem 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] |
Renvoie le nom du réseau cellulaire utilisé sur le modem 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] où X est le numéro du modem |
Renvoie l’information d’état du modem activé/désactivé |
.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 (pour le 1er modem) |
FolderOutbox_Total |
Retourne le nombre de messages SMS dans le dossier Outbox (longueur de la file d’attente sortante) |
.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 |
Retourne le nombre de messages SMS dans le dossier 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 |
Retourne le nombre de messages SMS envoyés depuis l’appareil au cours des dernières 24 heures |
.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 |
Retourne le nombre de messages SMS envoyés depuis l’appareil au cours du dernier mois |
.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 |
Retourne le nombre de messages SMS envoyés avec erreur au cours des dernières 24h. Une erreur se produit lorsque le modem 3G ne peut pas envoyer le message SMS ou lorsque le message est rejeté par l’opérateur 3G/4G (cela se produit surtout lorsque le crédit d’une carte SIM prépayée est épuisé) |
.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 |
Retourne la dernière valeur de température (en °C) issue du capteur DHT22 interne. Nécessite que le capteur soit activé. |
.1.3.6.1.4.1.8072.1.3.2.4.1.2.4.84.101.109.112.1 |
Humidity |
Retourne la dernière valeur d’humidité (en %) issue du capteur DHT22 interne. Nécessite que le capteur soit activé. |
.1.3.6.1.4.1.8072.1.3.2.3.1.2.8.72.117.109.105.100.105.116.121 |
Temp[X] où X est compris entre 1 et 4 |
Retourne la dernière valeur de température (en °C) à partir de : Temp1 : capteur de température interne Temp2-Temp4 : capteurs de température 1-Wire externes. |
.1.3.6.1.4.1.8072.1.3.2.4.1.2.5.84.101.109.112.49.1 (pour le 1er capteur) |
SIM_State[X] où X est le numéro du modem |
Retourne l’information sur l’état physique de la carte 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 (pour le 1er modem) |
SIM_RegState[X] où X est le numéro du modem |
Retourne l’information sur l’état d’enregistrement de la carte SIM dans le réseau mobile. |
.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 (pour le 1er modem) |
Valeurs de résultat
Utilisation de l’OID
Les valeurs de résultat pour chaque métrique personnalisée sont disponibles et peuvent être récupérées à partir de l’OID indiqué dans le tableau ci-dessus.
Utilisation du nom textuel
Alternativement, les valeurs de résultat pour chaque métrique personnalisée peuvent être récupérées en utilisant les noms textuels de l’arborescence OID sous : NET-SNMP-EXTEND-MIB::nsExtendOutputFull. »[METRIC NAME] »
For example:
Result value for parameter GSM_Signal1:
NET-SNMP-EXTEND-MIB::nsExtendOutputFull. »GSM_Signal1 »Si l’outil SNMP que vous avez choisi ne peut pas accéder aux objets NET-SNMP-EXTEND-MIB, vous pouvez télécharger les définitions MIB depuis : https://www.smseagle.eu/download/NET-SNMP-EXTEND-MIB.txt
Lecture des valeurs de résultat Afin de tester la lecture des valeurs de paramètres depuis l’agent SNMP, vous pouvez utiliser n’importe quel outil disponible pour le protocole SNMP (par exemple : la bibliothèque NET-SNMP pour Linux ou iReasoning MiB-Browser pour Windows).
Exemple de lecture de la valeur GSM_Signal1 avec la bibliothèque NET-SNMP
a) Commande pour lire la valeur de résultat :
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
Résultat :
NET-SNMP-EXTEND-MIB::nsExtendOutputFull. »GSM_Signal1 » = STRING: 54
Commentaire : la valeur de la puissance du signal 3G/4G est de 54%
Exemple de lecture de la valeur GSM_NetName1 avec la bibliothèque NET-SNMP
a) Commande pour lire la valeur de résultat :
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
Résultat :
NET-SNMP-EXTEND-MIB::nsExtendOutputFull. »GSM_NetName1 » = STRING: PLAY
Commentaire : le réseau actuellement utilisé sur la carte SIM #1 est PLAY
Exemple de lecture de la valeur FolderOutbox_Total en utilisant la bibliothèque NET-SNMP (et le nom textuel de la métrique)
a) Commande pour lire la valeur de résultat :
snmpget -v 2c -c public ip-of-smseagle “NET-SNMP-EXTEND-MIB::nsExtendOutputFull. »FolderOutbox_Total »”
Résultat :
NET-SNMP-EXTEND-MIB::nsExtendOutputFull. »FolderOutbox_Total » = STRING: 0
Commentaire : le nombre de messages SMS en attente dans la file d’attente de la boîte d’envoi est 0
Exemple de lecture du temps de fonctionnement du système depuis un hôte Linux en utilisant la bibliothèque NET-SNMP
a) Commande pour lire la valeur de résultat :
snmpget -v 2c -c public ip-of-smseagle system.sysUpTime.0
Résultat :
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (216622) 0:36:06.22
Commentaire : le système Linux fonctionne depuis 36 minutes et 6,22 secondes
Exemple de parcours des paramètres d’extension SMSEagle dans l’arborescence mib en utilisant la bibliothèque NET-SNMP
a) Commande pour lire la valeur de résultat :
snmpwalk -v 2c -c public ip-of-smseagle .1.3.6.1.4.1.8072.1.3.2.3.1.2
Résultat :
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
Exemple de navigation dans les paramètres d’extension SMSEagle dans l’arborescence MIB à l’aide du mib-browser

Configuration du contrôle d’accès SNMP v3
Par défaut, les appareils SMSEagle utilisent le contrôle d’accès SNMP v2. L’utilisation de la v3 peut renforcer la sécurité, cependant ce n’est pas obligatoire. Pour basculer facilement vers le contrôle d’accès SNMP v3, nous avons préparé un script shell spécial situé dans le répertoire /mnt/nand-user/smseagle.
Connectez-vous via SSH en utilisant le compte root
Naviguez vers : cd /mnt/nand-user/smseagle/
Script de configuration : ./snmpv3
Le script peut s’exécuter avec les paramètres suivants :
add
del
enablev2
disablev2
Pour ajouter un UTILISATEUR v3, veuillez exécuter :
./snmpv3 add USERNAME PASSWORD ENCRYPTIONPASSWORD
Pour supprimer un UTILISATEUR, veuillez exécuter :
./snmpv3 del
Pour désactiver la politique d’accès v2, exécutez :
./snmpv3 disablev2
Pour activer la politique d’accès v2, exécutez :
./snmpv3 enablev2
Transfert des journaux vers un serveur externe
Nos appareils utilisent rsyslog pour la gestion des journaux. Nous décrivons ici comment configurer des règles supplémentaires pour le démon rsyslog : rsyslogd. Ceci n’est qu’un bref extrait du site du manuel rsyslog. Les informations complètes sont disponibles sur : http://www.rsyslog.com/
La configuration de rsyslogd est gérée à l’aide d’un fichier de configuration situé dans /etc/rsyslog.conf
En bas du fichier de configuration, ajoutez :
*.* action(type= »omfwd » target= »SERVER_IP » port= »PORT » protocol= »PROTOCOL »
action.resumeRetryCount= »10 »
queue.type= »linkedList » queue.size= »10000 »)
où : SERVER_IP – adresse IP (ou FQDN) du serveur récepteur PORT – port sur le serveur récepteur PROTOCOL une des valeurs : tcp, udp
Exemple :
*.* action(type= »omfwd » target= »192.168.0.250 » port= »10514 » protocol= »tcp »
action.resumeRetryCount= »10 »
queue.type= »linkedList » queue.size= »10000 »)
Chiffrement SSL de votre trafic de logs : veuillez consulter cet article : https://www.rsyslog.com/doc/v8-stable/tutorials/tls_cert_summary.html
Vérification automatique des mises à jour logicielles
Le logiciel SMSEagle fait l’objet d’une amélioration continue. Nous écoutons nos clients, et les nouvelles versions sont basées sur leurs retours/demandes. Les mises à jour logicielles sont publiées fréquemment, et offrent l’accès à de nouvelles fonctionnalités ainsi que des correctifs aux problèmes signalés. L’interface Web-GUI vous offre la possibilité de vérifier automatiquement la disponibilité de nouvelles mises à jour logicielles. Cela peut se faire de deux façons :
Vérification manuelle
Pour vérifier manuellement la disponibilité de mises à jour logicielles, allez dans le menu Settings > onglet Updates. Cliquez sur le bouton « Check for software update now ». Une bannière rouge apparaît en haut avec l’information indiquant si le système est à jour.
Vérification automatique
Pour activer les vérifications automatiques des mises à jour logicielles, allez dans le menu Settings > onglet Updates, et cochez l’option “Automatically check for software updates”. Cela activera des vérifications périodiques (une fois par mois) de la disponibilité de mises à jour logicielles. Si une nouvelle mise à jour est disponible, un message “Update Available” apparaîtra dans le menu Settings> Sysinfo – à côté du numéro de version logicielle actuel.
Si vous sélectionnez “Notify Admin about new software version by SMS”, l’appareil enverra en plus un SMS au compte administrateur par défaut (si le numéro de téléphone est renseigné dans le compte) avec une notification concernant la nouvelle mise à jour logicielle.

Capture d’écran de « General settings-Maintenance »
Remarque : votre appareil SMSEagle doit disposer d’une connectivité HTTPS avec l’adresse updates.smseagle.eu pour que cette fonctionnalité fonctionne.
Base de connaissances et portail d’assistance
Vous trouverez davantage d’informations et des astuces utiles concernant la configuration de l’appareil SMSEagle dans notre base de connaissances en ligne et notre portail d’assistance à l’adresse : https://support.smseagle.eu