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 bien é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 régler « Delivery Reports » sur « Yes »

Une fois les rapports de livraison activés dans le web-GUI, vous pouvez vérifier si un SMS a été livré au destinataire :

  • Dans le web-GUI Dans le menu Folders > Sent items > ouvrez le message que vous voulez vérifier. Appuyez sur « Show Details » dans le coin supérieur droit du message. Le champ « Modem Status » contient les 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 utilisateur.

  • 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. Pour l’activer, allez dans le 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 : smseagle

  • Utilisateur : smseagleuser

  • Mot 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 pour les 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, SenderID = smseagle2 pour le modem 2, etc.

Injection d’un long SMS 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 hexadécimalement dans le champ UDH. À moins d’avoir 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), 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 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 : /opt/scripts/

  • db_delete – script permettant de supprimer les SMS des dossiers Inbox, SentItems antérieurs à la date fournie. Utilisation : ./db_delete YYYYMMDDhhmm

  • db_delete_7days – script permettant de supprimer les SMS des dossiers Inbox, Sentitems antérieurs à 7 jours. Utilisation : ./db_delete_7days

  • db_delete_allfolders – script permettant de 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_allfolders

  • db_delete_select - script permettant de supprimer les SMS d’un 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

  1. Créez un fichier dans le répertoire /etc/cron.d/ avec le nom souhaité (par exemple pico db_cleaner)

  2. Exemple de contenu de ce fichier : 0 0 1 * * root /opt/scripts/db_delete_allfolders

Ceci exécutera le script de nettoyage chaque 1er jour du mois.

Agent SNMP

« Simple Network Management Protocol (SNMP) est un protocole standard Internet permettant de gérer les 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 intervention administrative » (source : Wikipédia).

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 également, via 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 les suivantes :

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 sur l’é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)
.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 (pour le 2ème modem)
etc.

FolderOutbox_Total

Renvoie 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

Renvoie 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

Renvoie 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

Renvoie 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

Renvoie 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 que le message est rejeté par l’opérateur 3G/4G (cela se produit le plus souvent 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

SIM_State[X] où X est le numéro du modem

Renvoie les informations 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)
.1.3.6.1.4.1.8072.1.3.2.3.1.2.10.83.73.77.95.83.116.97.116.101.50 (pour le 2e modem)
etc.

SIM_RegState[X] où X est le numéro du modem

Renvoie les informations 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)
.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 (pour le 2e modem)
etc.

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 depuis l’arborescence OID sous : NET-SNMP-EXTEND-MIB::nsExtendOutputFull. »[METRIC NAME] »

Par exemple : Valeur de résultat pour le paramètre 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 à partir de : https://www.smseagle.eu/download/NET-SNMP-EXTEND-MIB.txt

Lecture des valeurs de résultat Afin de tester la lecture des valeurs des 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 à l’aide de la bibliothèque NET-SNMP

a) Commande pour lire la valeur du 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 à l’aide de la bibliothèque NET-SNMP

a) Commande pour lire la valeur du 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é pour la carte SIM #1 est PLAY

Exemple de lecture de la valeur FolderOutbox_Total à l’aide de la bibliothèque NET-SNMP (et du nom textuel de la métrique)

a) Commande pour lire la valeur du 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 de 0

Exemple de lecture du temps de fonctionnement du système depuis un hôte Linux à l’aide de la bibliothèque NET-SNMP

a) Commande pour lire la valeur du 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 heures et 6,22 minutes

Exemple de navigation dans l’arborescence MIB des paramètres d’extension SMSEagle à l’aide de la bibliothèque NET-SNMP

a) Commande pour lire la valeur du 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_Signal2 » = 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 l’arborescence MIB des paramètres d’extension SMSEagle à l’aide d’un navigateur MIB

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 version v3 peut renforcer la sécurité, mais elle n’est pas obligatoire. Pour passer facilement au contrôle d’accès SNMP v3, nous avons préparé un script shell spécial situé dans le répertoire /opt/smseagle.

  1. Connectez-vous via SSH en utilisant le compte root

  2. Naviguer vers : cd /opt/smseagle/

  3. Script de configuration : ./snmpv3

  4. Le script peut être exécuté avec les paramètres suivants :

    1. add

    2. del

    3. enablev2

    4. disablev2

  5. Pour ajouter un USER v3, veuillez exécuter :

./snmpv3 add USERNAME PASSWORD ENCRYPTIONPASSWORD

  1. Pour supprimer un USER, veuillez exécuter :

./snmpv3 del

  1. Pour désactiver la politique d’accès v2, exécutez :

./snmpv3 disablev2

  1. 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. L’information complète est disponible sur : https://www.rsyslog.com/

La configuration de rsyslogd est gérée à l’aide d’un fichier de configuration situé à /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 »)

Vérification automatique des mises à jour du logiciel

Le logiciel SMSEagle est en constante amélioration. Nous sommes à l’écoute de nos clients, et les nouvelles versions sont basées sur les retours/demandes de nos clients. Les mises à jour logicielles sont publiées fréquemment et offrent l’accès à de nouvelles fonctionnalités ainsi que des corrections aux problèmes signalés. L’interface Web-GUI vous offre la possibilité de vérifier automatiquement les nouvelles mises à jour logicielles. Cela peut se faire de deux manières :

Vérification manuelle

Afin de vérifier manuellement la disponibilité des mises à jour logicielles, allez dans le menu Settings > onglet Maintenance. Cliquez sur le bouton « Check manually now ». En haut apparaît une bulle rouge indiquant si le système est à jour.

Vérification automatique

Pour activer les vérifications automatiques des mises à jour logicielles, accédez au menu Settings > onglet Updates, et cochez l’option « Automatically check for software updates ». Cela activera des vérifications périodiques (une fois par mois) des mises à jour logicielles disponibles. 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 saisi dans le compte) avec une notification concernant la nouvelle mise à jour logicielle.

Capture d'écran d'un ordinateur

Capture d’écran de « General settings-Updates »

Remarque : Votre appareil SMSEagle doit disposer d’une connectivité HTTPS avec l’adresse www.smseagle.eu pour que cette fonctionnalité fonctionne.

Base de connaissances et portail d’assistance

Vous trouverez plus d’informations et des astuces utiles sur la configuration de l’appareil SMSEagle dans notre base de connaissances en ligne et notre portail d’assistance à l’adresse : https://support.smseagle.eu