
Ich habe eine interessante Sache für Sie. Ich habe meine Serverüberwachungs- und Benachrichtigungssysteme (basierend auf Nagios) überprüft und festgestellt, dass es keine Möglichkeit gibt, mich zu benachrichtigen, wenn unsere Internetverbindung ausfällt. Ich habe bereits ein Modem (über CentOS 5) auf einer freien POTS-Leitung, sodass ich mich einwählen kann, falls unser Internet ausfällt. Ich habe mich gefragt, ob ich ein Skript (Shell, Python usw.) erstellen könnte, das eine Verbindung herstellen und eine aufgezeichnete Nachricht (ich vermute eine Wave-Datei) abspielen kann, wenn sie abgenommen wird. Ich weiß, dass Windows Sprachanrufe über ein Sprachmodem unterstützt, ich habe mich gefragt, ob es eine Lösung für Linux gibt ...
Ich weiß, dass Asterisk das wahrscheinlich kann, aber ist das nicht übertrieben (ein vollwertiges VOIP-System nur für einen Benachrichtigungsmechanismus, der hoffentlich nie verwendet wird)? Und würde es nicht die Hauptfunktion des Modems als Backup-Netzwerkschnittstelle beeinträchtigen (PPP über mgetty gestartet)?
Ich habe ein bisschen gesucht und bin nicht wirklich fündig geworden. Ich weiß, wie man von der Befehlszeile aus wählt, aber nur als Modem (nicht per Sprache). Im schlimmsten Fall könnte ich es so einrichten, dass es als Modem wählt, und dann einfach feststellen, dass es sich um die Benachrichtigung handelt, wenn ich von dieser Nummer einen Anruf mit Modemgeräuschen erhalte ... Für jede Einsicht wäre ich dankbar ...
Antwort1
Linux verwendet vgetty
für Sprachdaten ein Modem (meist als Anrufbeantworter). Es sieht so aus, als gäbe es einePerl-Modul bei CPANdas mit einem Beispielskript geliefert wird, das dem entspricht, was Sie möchten.
Callme-Skript
Im Unterverzeichnis examples der Quellverteilung befindet sich ein Skript callme.pl. Dieses wählt die angegebene Nummer und spielt die angegebene Nachricht ab. Verwenden Sie den folgenden Befehl, um es auszuführen:
vm shell -S /usr/bin/perl callme.pl <number> <message>.rmd
Antwort2
Ich verwende einen externen Server, um eine zusätzliche Instanz von Nagios auszuführen, die als letzte Benachrichtigung im Falle eines vollständigen Ausfalls dient.
Ich wünschte, ich hätte eine Antwort auf Ihre Frage zur Modem-Audiowiedergabe. Ich würde sagen, es sollte einfach sein, aber mein Wissen in diesem Bereich rostet langsam ein. Früher gab esSprachmodemsspeziell für die Audiowiedergabe verkauft.
An Ihrer Stelle würde ich versuchen, die Audiowiedergabe mithilfe einer Konsolensoftware umzuleiten. Ich denke, das könnte sehr einfach sein. Vielleicht recherchiere ich später genauer, wenn ich Zeit habe.
Antwort3
Bei einer kurzen Suche habe ich Folgendes gefunden:
Antwort4
Ich bin beim Googeln auf diese Frage gestoßen und bin zu dem Schluss gekommen, dass ich zwar ausdrücklich eine Sprachprobe erfassen/wiedergeben möchte, eine einfache SMS für Ihre Situation aber geeignet sein könnte.
Ich habe ein Huawei-Modem (USB-Dongle) als SMS-Center auf meinem Raspberry Pi mit einer kostenlosen SIM-Karte von einem CSP verwendet, sodass ich eine SMS senden kann und es mit grundlegenden Informationen über das System antwortet. Ich schätze, es könnte leicht geändert werden, um eine SMS zu senden, wenn Nagios einen Internetausfall erkennt!
Beachten Sie, dass Sie zum Senden von SMS eine normale Telefon-SIM (keine Nur-Daten-/Tablet-SIM) benötigen.
Ich habe den Blogbeitrag hier verwendet:http://hristoborisov.com/index.php/projects/turning-the-raspberry-pi-into-a-sms-center-using-python/
...der speziell diesen Beispielcode verwendetauf github.
Um Link-Rot zu verhindern, besteht das Wesentliche darin, die serial
Bibliothek in Python ( import serial
) zu verwenden und normale Modem-AT-Befehle an das Modem zu senden. Setzen Sie das Modem in den Textmodus und senden Sie dann eine Testnachricht mit den folgenden Zeichenfolgen:
AT+CMGF=1\r
AT+CMGS="07123456789"\r
some message here.<Ctrl-Z>