Zustellberichte

Die SMSEagle-Software ermöglicht es Ihnen, Zustellberichte für jede gesendete SMS zu aktivieren. Zustellberichte sind eine Funktion, mit der Sie eine Bestätigung erhalten, dass die SMS auf dem Telefon des Empfängers empfangen wurde.

Um Zustellberichte zu aktivieren, gehen Sie bitte im Web-GUI zum Menü Settings und setzen Sie „Delivery Reports“ auf „Yes“

Sobald Zustellberichte im Web-GUI aktiviert sind, können Sie überprüfen, ob eine SMS an den Empfänger zugestellt wurde:

  • Im Web-GUI Gehen Sie im Menü Folders > Sent items > öffnen Sie die Nachricht, die Sie überprüfen möchten. Klicken Sie oben rechts in der Nachricht auf „Show Details“. Das Feld „Modem Status“ enthält Informationen zum Zustellstatus

  • Mit Webhooks Die CallbackURL-Funktion ermöglicht es, einen Webhook für die Änderung des Zustellstatus zu definieren. Webhooks sind standardmäßige HTTP-Endpunkte, die in Ihrer externen Anwendung implementiert sind und HTTP-Anfragen vom SMSEagle-Gerät akzeptieren. Webhooks ersparen es Ihnen, kontinuierlich Anfragen an das SMSEagle-Gerät zu senden, um den Nachrichtenstatus abzufragen. Weitere Details finden Sie im Kapitel Callback URL dieses Benutzerhandbuchs.

  • Mit API

Verwenden Sie die Methode „read_sms“, um Daten für eine ausgewählte SMS im Ordner sentitems abzurufen. Die Daten enthalten die Spalten „Status“ und „DeliveryDateTime“ mit Informationen zum Zustellstatus der Nachricht. Weitere Informationen zu möglichen Werten der Spalte „Status“ finden Sie in der Tabelle „Field Description Of Response Data – Sentitems Folder“ in der APIv1-Referenz.

Direkte Verbindung zur SMSEagle-Datenbank

Die Datenbank von SMSEagle läuft auf der PostgreSQL-Datenbank-Engine. Sie können einen direkten Datenbankzugriff nutzen, um SMS-Nachrichten direkt über SQL-Abfragen aus der Datenbank zu lesen bzw. in diese zu schreiben.

Der Datenbankzugriff für externe Anwendungen ist standardmäßig deaktiviert. Um ihn zu aktivieren, gehen Sie im webGUI zum Menü Settings und aktivieren Sie die folgende Einstellung:

Sobald der Datenbankzugriff aktiviert ist, können Sie sich von einer externen Anwendung aus mit den folgenden Zugangsdaten mit der Datenbank verbinden:

  • Host: IP-Adresse Ihres Geräts

  • Datenbankname: smseagle

  • Benutzer: smseagleuser

  • Passwort: postgreeagle

Einfügen einer kurzen SMS mittels SQL

Das einfachste Beispiel ist eine kurze Textnachricht (begrenzt auf 160 Zeichen):

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;

Im obigen Beispiel gehört die Nachricht zum Benutzer mit id_user 1 (standardmäßig ‚admin‘). Die id_user-Werte für andere Benutzer finden Sie in der Tabelle public.“user“. Das Feld SenderID enthält die Identifikationsnummer des SMSEagle-Modems. Für Modem 1 gilt SenderID = smseagle1 und für Modem 2 SenderID = smseagle2.

Einfügen einer langen SMS mittels SQL

Das Einfügen mehrteiliger Nachrichten ist etwas komplizierter, Sie müssen auch einen UDH-Header konstruieren und diesen hexadezimal geschrieben im UDH-Feld speichern. Sofern Sie keinen guten Grund haben, dies manuell zu tun, verwenden Sie die API.

Bei einer langen Textnachricht beginnt der UDH mit 050003, gefolgt von einem Byte als Nachrichtenreferenz (Sie können hier einen beliebigen Hex-Wert einsetzen, er sollte jedoch für jede Nachricht unterschiedlich sein, im folgenden Beispiel D3), einem Byte für die Anzahl der Nachrichten (im Beispiel 02, es sollte für jede Nachricht, die Sie an dieselbe Telefonnummer senden, eindeutig sein) und einem Byte für die Nummer der aktuellen Nachricht (01 für die erste Nachricht, 02 für die zweite usw.).

Eine lange Textnachricht mit zwei Teilen könnte beispielsweise wie folgt aussehen:

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;

Hinweis: Das Hinzufügen des UDH bedeutet, dass Ihnen weniger Platz für Text zur Verfügung steht, im obigen Beispiel können Sie in einer einzelnen Nachricht nur 153 Zeichen verwenden.

Datenbank-Bereinigungsskripte

Wir haben einige nützliche Skripte hinzugefügt, mit denen SMS-Nachrichten über die Linux-CLI aus der Datenbank gelöscht werden können. Die Skripte befinden sich im folgenden Verzeichnis: /mnt/nand-user/scripts/

  • db_delete – Skript zum Löschen von SMS aus den Ordnern Inbox, SentItems, die älter als das angegebene Datum sind. Verwendung: ./db_delete YYYYMMDDhhmm

  • db_delete_7days – Skript zum Löschen von SMS aus den Ordnern Inbox, SentItems, die älter als 7 Tage sind. Verwendung: ./db_delete_7days

  • db_delete_allfolders – Skript zum Bereinigen der PostgreSQL-Datenbankordner (Inbox, SentItems, Outbox). Speziell dafür ausgelegt, regelmäßig über cron ausgeführt zu werden. Verwendung: ./db_delete_allfolders

  • db_delete_select - Skript zum Löschen von SMS aus einem gewählten Datenbankordner (Inbox, Outbox, SentItems, Trash). Verwendung: ./db_delete_select {inbox|outbox|sentitems|trash}

Hinzufügen des Skripts zum System-cron-Daemon

  1. Erstellen Sie eine Datei im Verzeichnis /etc/cron.d/ mit dem gewünschten Namen (z. B. pico db_cleaner)

  2. Beispielinhalt dieser Datei: 0 0 1 * * root /mnt/nand-user/scripts/db_delete_allfolders

Dadurch wird das Bereinigungsskript jeden 1sten Tag des Monats ausgeführt.

SNMP-Agent

„Simple Network Management Protocol (SNMP) ist ein Internet-Standardprotokoll zur Verwaltung von Geräten in IP-Netzwerken. Es wird hauptsächlich in Netzwerkmanagementsystemen eingesetzt, um netzwerkgebundene Geräte auf Zustände zu überwachen, die administrative Aufmerksamkeit erfordern“ (Quelle: Wikipedia).

Das SMSEagle-Gerät verfügt über einen integrierten Net-SNMP-Agenten. Der SNMP-Agent bietet Zugriff auf den Linux Host MIB-Baum des Geräts und ermöglicht zusätzlich (unter Verwendung der Erweiterung NET-SNMP-EXTEND-MIB) den Zugriff auf benutzerdefinierte, SMSEagle-spezifische Metriken.

Verfügbare SNMP-Metriken, die den Zustand eines SMSEagle-Geräts beschreiben, sind:

Metrikname

Beschreibung

OID

GSM_Signal1

Gibt die 3G/4G-Signalstärke in Prozent für Modem 1 zurück. Wertebereich: 0-100. Wenn das Modem vom Mobilfunknetz getrennt ist, gibt GSM_Signal 0 zurück.

.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]

Gibt die 3G/4G-Signalstärke in Prozent für Modem X zurück. Wertebereich: 0-100. Wenn das Modem vom Mobilfunknetz getrennt ist, gibt GSM_Signal 0 zurück.

.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

Gibt den Namen des Mobilfunknetzes auf Modem 1 zurück

.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]

Gibt den auf Modem X verwendeten Mobilfunknetznamen zurück

.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], wobei X die Nummer des Modems ist

Gibt Informationen zum Modemstatus (aktiviert/deaktiviert) zurück

.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 (für 1. 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 (für 2. Modem)

FolderOutbox_Total

Gibt die Anzahl der SMS-Nachrichten im Ordner Outbox zurück (Länge der ausgehenden Warteschlange)

.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

Gibt die Anzahl der SMS-Nachrichten im Ordner Inbox zurück

.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

Gibt die Anzahl der vom Gerät innerhalb der letzten 24 Stunden gesendeten SMS-Nachrichten zurück

.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

Gibt die Anzahl der vom Gerät innerhalb des letzten Monats gesendeten SMS-Nachrichten zurück

.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

Gibt die Anzahl der mit Fehler gesendeten SMS-Nachrichten innerhalb der letzten 24 Stunden zurück. Ein Fehler tritt auf, wenn das 3G-Modem die SMS-Nachricht nicht senden kann oder die Nachricht vom 3G/4G-Netzbetreiber abgelehnt wird (meist der Fall, wenn das Guthaben einer Prepaid-SIM-Karte aufgebraucht ist)

.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

Gibt den letzten Temperaturwert (in °C) des internen DHT22-Sensors zurück. Erfordert, dass der Sensor aktiviert ist.

.1.3.6.1.4.1.8072.1.3.2.4.1.2.4.84.101.109.112.1

Humidity

Gibt den letzten Luftfeuchtigkeitswert (in %) des internen DHT22-Sensors zurück. Erfordert, dass der Sensor aktiviert ist.

.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

Gibt den letzten Temperaturwert (in °C) zurück von: Temp1: internem Temperatursensor Temp2-Temp4: externen 1-Wire-Temperatursensoren.

.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

Gibt Informationen zum physischen SIM-Status zurück

.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

Gibt Informationen zum Registrierungsstatus der SIM-Karte im Mobilfunknetz zurück.

.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)

Ergebniswerte

  • Verwendung der OID

Ergebniswerte für jede benutzerdefinierte Metrik stehen zur Verfügung und können über die in der obigen Tabelle angegebene OID abgerufen werden.

  • Verwendung des Textnamens

Alternativ können Ergebniswerte für jede benutzerdefinierte Metrik über Textnamen aus dem OID-Baum unter: NET-SNMP-EXTEND-MIB::nsExtendOutputFull.“[METRIC NAME]“ abgerufen werden.

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

Falls Ihr gewähltes SNMP-Tool nicht auf NET-SNMP-EXTEND-MIB-Objekte zugreifen kann, können Sie die MIB-Definitionen herunterladen von: https://www.smseagle.eu/download/NET-SNMP-EXTEND-MIB.txt

Ergebniswerte auslesen Um die Parameterwerte testweise vom SNMP-Agenten auszulesen, können Sie jedes verfügbare Tool für das SNMP-Protokoll verwenden (zum Beispiel: NET-SNMP-Bibliothek für Linux oder iReasoning MiB-Browser für Windows).

Beispiel für das Auslesen des Werts GSM_Signal1 mit der NET-SNMP-Bibliothek

a) Befehl zum Auslesen des Ergebniswerts:

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

Ergebnis:

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

Kommentar: Der Wert der 3G/4G-Signalstärke beträgt 54 %

Beispiel für das Auslesen des Werts GSM_NetName1 mit der NET-SNMP-Bibliothek

a) Befehl zum Auslesen des Ergebniswerts:

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

Ergebnis:

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

Kommentar: Das aktuell verwendete Netzwerk für SIM-Karte #1 ist PLAY

Beispiel zum Auslesen des Werts FolderOutbox_Total mithilfe der NET-SNMP-Bibliothek (und des Textnamens der Metrik)

a) Befehl zum Auslesen des Ergebniswerts:

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

Ergebnis:

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

Kommentar: Die Anzahl der in der Outbox-Warteschlange wartenden SMS-Nachrichten beträgt 0

Beispiel zum Auslesen der System-Laufzeit eines Linux-Hosts mithilfe der NET-SNMP-Bibliothek

a) Befehl zum Auslesen des Ergebniswerts:

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

Ergebnis:

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

Kommentar: Das Linux-System läuft seit 36 Minuten, 6,22 Sekunden

Beispiel zum Durchsuchen der SMSEagle-Erweiterungsparameter IM MIB-Baum mithilfe der NET-SNMP-Bibliothek

a) Befehl zum Auslesen des Ergebniswerts:

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

Ergebnis:

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

Beispiel zum Durchsuchen der SMSEagle-Erweiterungsparameter im MIB-Baum mithilfe eines MIB-Browsers

Einrichten der SNMP v3-Zugriffskontrolle

Standardmäßig verwenden SMSEagle-Geräte die SNMP v2-Zugriffskontrolle. Die Verwendung von v3 kann die Sicherheit erhöhen, ist jedoch nicht zwingend erforderlich. Um einfach zur SNMP v3-Zugriffskontrolle zu wechseln, haben wir ein spezielles Shell-Skript vorbereitet, das sich im Verzeichnis /mnt/nand-user/smseagle befindet.

  1. Melden Sie sich per SSH mit dem root-Konto an

  2. Navigieren Sie zu: cd /mnt/nand-user/smseagle/

  3. Konfigurationsskript: ./snmpv3

  4. Das Skript kann mit folgenden Parametern ausgeführt werden:

    1. add

    2. del

    3. enablev2

    4. disablev2

  5. Um einen v3-BENUTZER hinzuzufügen, führen Sie bitte Folgendes aus:

./snmpv3 add USERNAME PASSWORD ENCRYPTIONPASSWORD

  1. Um einen BENUTZER zu löschen, führen Sie bitte Folgendes aus:

./snmpv3 del

  1. Um die v2-Zugriffsrichtlinie zu deaktivieren, führen Sie aus:

./snmpv3 disablev2

  1. Um die v2-Zugriffsrichtlinie zu aktivieren, führen Sie aus:

./snmpv3 enablev2

Weiterleitung von Protokollen an einen externen Server

Unsere Geräte verwenden rsyslog zur Protokollverwaltung. Hier beschreiben wir, wie zusätzliche Regeln für den rsyslog-Daemon konfiguriert werden: rsyslogd. Dies ist nur ein kurzer Auszug aus dem rsyslog-Handbuch. Vollständige Informationen finden Sie unter: http://www.rsyslog.com/

Die Konfiguration von Rsyslogd wird über eine Konfigurationsdatei verwaltet, die sich unter /etc/rsyslog.conf befindet

  • Fügen Sie am Ende der Konfigurationsdatei hinzu:

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

action.resumeRetryCount=“10“

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

wobei: SERVER_IP – IP-Adresse (oder FQDN) des empfangenden Servers PORT – Port auf dem empfangenden Server PROTOCOL einer der Werte: tcp, udp

  • Beispiel:

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

action.resumeRetryCount=“10“

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

Automatische Prüfung auf Software-Updates

Die SMSEagle-Software wird kontinuierlich weiterentwickelt. Wir hören auf unsere Kunden, und neue Versionen basieren auf den Rückmeldungen/Anfragen unserer Kunden. Software-Updates werden häufig veröffentlicht und bieten Zugriff auf neue Funktionen sowie Fehlerbehebungen für gemeldete Probleme. Die Web-GUI bietet Ihnen die Möglichkeit, automatisch nach neuen Software-Updates zu suchen. Dies kann auf zwei Arten erfolgen:

Manuelle Prüfung

Um manuell nach verfügbaren Software-Updates zu suchen, gehen Sie zum Menü Settings > Tab Updates. Klicken Sie auf die Schaltfläche „Check for software update now“. Oben erscheint eine rote Sprechblase mit der Information, ob die Software aktuell ist.

Automatische Prüfung

Um die automatische Prüfung auf Software-Updates zu starten, gehen Sie zum Menü Settings > Tab Updates und aktivieren Sie die Option „Automatically check for software updates“. Dadurch werden regelmäßige Prüfungen (einmal im Monat) auf verfügbare Software-Updates aktiviert. Wenn ein neues Update verfügbar ist, erscheint im Menü Settings > Sysinfo neben der aktuellen Softwareversionsnummer die Meldung „Update Available“.

Wenn Sie „Notify Admin about new software version by SMS“ auswählen, sendet das Gerät zusätzlich eine SMS an das Standard-Admin-Konto (sofern die Telefonnummer im Konto hinterlegt ist) mit einer Benachrichtigung über das neue Software-Update.

Screenshot aus „General settings-Maintenance“

Hinweis: Ihr SMSEagle-Gerät muss über eine HTTPS-Verbindung zur Adresse updates.smseagle.eu verfügen, damit diese Funktion funktioniert.

Wissensdatenbank & Support-Portal

Weitere Informationen und nützliche Hinweise zur Konfiguration des SMSEagle-Geräts finden Sie in unserer Online-Wissensdatenbank und unserem Support-Portal unter: https://support.smseagle.eu