ubuntuusers.de

Faxempfang

Status: Ungelöst | Ubuntu-Version: Ubuntu 14.04 (Trusty Tahr)
Antworten |

Done91

Anmeldungsdatum:
13. August 2015

Beiträge: Zähle...

Hallo Leute,

erst mal kurz zu mir, ich bin 33 Jahre alt und habe eher wenig Ahnung vom programmieren. Ich hoffe ich bin mit meinem Anliegen hier richtig gelandet, wenn nicht bitte verschieben.

Um was geht es:

Ich habe in meiner Freiwilligen Feuerwehr eine sogenanntes Alarmdisplay installiert welches wie folgt aufgebaut ist.

Auf einem alten Laptop läuft Ubuntu 14.04 LTS, auf diesem ist ein Apache und eine MySQL am laufen. Per USB ist ein Faxmodem eingebunden welches wenn ein Fax kommt dieses an nimmt (HylaFax). Bis jetzt war es so das die Software nach dem Faxempfang eine Texterkennung (Cuneiform) gestartet hat welches das Fax dann als .txt gespeichert hat. Im Anschluß wurde eine .php aufgerufen welche diese .txt in die DB der MySQL geschrieben hat. Durch diesen Eintrag ist die Webseite die die Anzeige darstellt auf die Alarmdarstellung gesprungen und hat diesen dann eine Stunde (einstellbar) dargestellt.

Jetzt zum Problem:

Das Faxmodem nimmt die eingehenden Faxe nicht mehr an. Warum weis ich nicht, es empfängt zwar was aber es passiert nichts mehr.

Lösungsversuch:

Wir verwenden hier eine Fritzbox 7490 welche die Faxe als PDF speichern kann. Meine Idee ist es das Faxmodem weg zu lassen und das ganze mit der FB zu machen.

Ich brauche aber ein paar Programme und da gehen meine Probleme los.

Ist es machbar den Ordner /faxbox der FB vom Laptop aus überwachen zu lassen das dieser bei Eingang eines Faxes die PDF in ein TIFF umwandelt und die Texterkennung startet. Anschließend soll noch das readfile.php gestartet werden und der /faxbox der FB wieder gelöscht werden.

Kann mir da bitte jemand helfen?

Sonnige Grüße Done91

Moderiert von jug:

Thema in einen passenderen Forenbereich verschoben. Bitte beachte die als wichtig markierten Themen (Welche Themen gehören hier her und welche nicht?) in jedem Forenbereich. Danke.

mrkramps Team-Icon

Avatar von mrkramps

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 5523

Wohnort: south central EL

Wenn ihr die FritzBox schon in Betrieb habt, klingt das nach einem vernünftigen Lösungsansatz. Der interne ebenso wie ein externer USB-Speicher können als Faxspeicher verwendet und selektiv für individuelle Benutzer im Netzwerk freigegeben werden, also bspw. nur der Ordner /FRITZ/faxbox für Benutzer faxuser. Diese Samba-Freigaben lassen sich dann auf deinem Ubuntu-System einbinden - siehe auch mount und fstab. Das ist der eher einfache Teil.

Um Änderungen in diesem freigegebenen und eingebundenen Verzeichnis zu überwachen gäbe es verschiedenen Ansätze. So könnte man mit inotify oder einem Cron-Job arbeiten. Ersteres wäre wohl die ellegantere Variante, ich weiß gerade nur nicht, ob das auf einen Netzwerkspeicher funktioniert und mit einem zeitgesteuert Skript über Cron ist man nie verkehrt, wenn andere Lösungsansätze versagen.

Für einen konkreten Vorschlag eines Skripts reicht meine Mittagspause gerade nicht. Das scheint mir aber auf den ersten Blick kein großer Akt zu sein.

Ein Hinweis noch zur FritzBox 7490 und USB 3.0. Die Abschirmung insbesondere des seitlichen Anschlusses scheint ganz bescheiden zu sein. Betreibt man die Anschlüsse und Geräte über USB-3.0, dann wird das WLAN auf dem 2,4GHz-Band massiv gestört. Sollte also ein externes Speichermedium in Betracht gezogen werden, dann beide Anschlüsse auf den USB-2.0-Modus umstellen und ein USB-2.0-Speichermedium benutzen.

Done91

(Themenstarter)

Anmeldungsdatum:
13. August 2015

Beiträge: 30

Schon mal danke für die Antwort. Ich habe mir jetzt gerade das iwatch installiert. Hab gelesen das es nicht viel anders als das inotify sein soll. Geht das mit dem auch?

Im moment weis ich einfach noch nicht wie ich aus dem PDF das TIFF erzeuge und wie ich die anderen Programme "anschupse"!

hoerianer

Anmeldungsdatum:
14. August 2012

Beiträge: 3156

Ich klinke mich hier mal ein. So ganz verstanden habe ich es nicht. Also ein Fax kommt an und soll irgendwo abgespeichert werden? Und dann soll der Speicherort überwacht werden, dass ein neues Fax angekommen ist? Was passiert denn dann? Wer soll die Info über ein neues Fax erhalten oder was genau soll dann passieren?

Done91

(Themenstarter)

Anmeldungsdatum:
13. August 2015

Beiträge: 30

Es wird von der Leitstelle das Alarmfax an uns geschickt. Dieses wird von der FB im internen Speicher als PDF gespeichert. Iwatch soll nun diesen Ordner der FB überwachen, ist eine neue Datei enthalten sollen durch Iwatch/Shellskripte ein Programm aufgerufen werden die 1. aus dem PDF ein TIFF erstellen und diese auf dem Laptop speichern, oder direkt an 2. übergibt mit $FILE, 2. die Texterkennung Cuneiform startet (bereits vorhanden und funktioniert), Cuneiform speichert eine Datei im Ordner /tmp/latest-fax.txt 3. die PHP-Datei startet welche das latest-fax.txt in die MySQL DB schreibt (auch vorhanden und funktioniert ebenfalls).

Den Punkt 1 hat bis jetzt Hylafax übernommen welches aber nicht mehr funktionieren will. Das soll jetzt mit FB und Iwatch ersetzt werden. Ab Punkt 2 ist alles funktionsfähig vorhanden.

Wohnmobil

Anmeldungsdatum:
24. Februar 2008

Beiträge: 486

Wohnort: Nickenich

Hallo Done91

Als erstes möchte ich anmerken das ich nur Benutzer, mit bescheidenen Kenntnissen, bin.

Ich lasse mir bei ankommenden Faxe diese sofort von meiner FritzBox an eine meiner Mailadressen als PDF schicken.

Da ich Thunderbird nicht immer gestartet habe, werden die Mails bei mir über die E-Mail-Überwachung überwacht.

Testweise habe ich unter Ausführen bei einmal Evince eingetragen und mir eine Mail geschickt. Evince wurde gestartet.

Vielleicht ist dies ja eine Möglichkeit dein Problem zu lösen.

Bilder

Done91

(Themenstarter)

Anmeldungsdatum:
13. August 2015

Beiträge: 30

Email ist leider zu langsam. Wenn bei uns ein Alarm aufläuft ist es in der Regel so das wir über Funkmeldeempfänger und Sirene alamiert werden. Gleichzeitig wird mit dem alarm von der Leitstelle das Fax gesendet. Bis dieses bei uns eingeht vergeht also schon etwas an Zeit (20-60 sec.). Wenn die Email mal etwas länger braucht weil Stau in der Datenautobahn ist kommen schnell mal 2-3 Minuten zusammen bis die PDF am Rechner ist und verarbeitet werden kann. In der Regel rücken wir aber nach drei Minuten schon aus, sprich wir sehen weder am Display was los ist und der Ausdruck ist auch noch nicht da. Deswegen sollte das alles sehr schnell gehen mit der Verarbeitung. Wenn nun aber der Ordner überwacht wird sind die Daten nach 50-70sec. in der Datenbank hinterlegt und werden angezeigt und gedruckt.

mrkramps Team-Icon

Avatar von mrkramps

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 5523

Wohnort: south central EL

Ich kann das nur theoretisch erklären, weil mir hier eine Testumgebung fehlt. Man bräuchte ein Skript um die einzelnen Programme aufzurufen, die letzten Endes den Datenbankeintrag erzeugen (ungetestet!).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#!/bin/bash
# Den Pfad/Namen der Fax-PDF aus den Argumenten des Aufrufs (%f)
datei="$@"
# Zeitstempel falls Mehrfachaufruf des Skriptes
zeitstempel="$(date +'%Y-%m-%d-%H:%M:%S')"
# Wie lange braucht FritzOS für das Schreiben der PDF??
sleep SEKUNDEN
# Mit ImageMagick zu TIFF konvertieren und in /tmp speichern
convert -density 150 /FREIGABE/FRITZ/faxbox/"$datei" /tmp/fax-"$zeitstempel".tiff
# TIFF mit Cuneiform auslesen
cuneiform -l ger -f text -o /tmp/fax-"$zeitstempel".txt /tmp/fax-"$zeitstempel".tiff
# Das PHP-Skript ausführen für den Datenbankeintrag
/usr/bin/php5 readfile.php /tmp/fax-"$zeitstempel".txt
# Aufräumen?
rm /tmp/fax-"$zeitstempel".*

Und der Befehl für iwatch müsste dann wahrscheinlich wie folgt aussehen (ungetestet!):

iwatch -e moved_to,create -c './skript-s.o. %f' /FREIGABE/FRITZ/faxbox 

Bei den Ereignissen habe ich moved_to und create beide angegeben, weil ich nicht weiß, wie die FritzOS das intern mit ihren Faxen löst.

Wegen ImageMagick siehe Wiki. Ggf. müsste man für density die DPI höher oder niedriger ansetzen, aber ich habe keinen Plan, was FritzOS da für PDFs anbietet.

Nachtrag: Da das bei euch ja irgendwo schon eine ziemlich kritische Umgebung ist und das schnell und verlässlich funktionieren soll, müsste man mal genau schauen, ob iwatch als Pearl-Skript oder eher inotify hier die bessere Lösung wäre. Außerdem könnte man vielleicht ein paar Test mit ImageMagick machen um die schnellstmögliche Konvertierung zu erreichen. Eine letzte Idee wäre noch das nicht in /tmp zu machen, sondern in einer ausreichend großen RAM-Disk um die Zugriffszeiten zu minimieren.

Done91

(Themenstarter)

Anmeldungsdatum:
13. August 2015

Beiträge: 30

WOW!!!!

Jetzt bin ich platt! Wenn ich das alles jetzt als zB faxauswertung.sh speichere und die Pfade auf meine ändere könnte das schon klappen?

Done91

(Themenstarter)

Anmeldungsdatum:
13. August 2015

Beiträge: 30

Muss ich das in den Ordner /bin Speichern oder kann das irgendwo liegen?

Sorry wenn ich so blöde fragen stelle, aber ich hab echt keine Ahnung.

Und vielen vielen DANK schon mal für alles.

Done91

(Themenstarter)

Anmeldungsdatum:
13. August 2015

Beiträge: 30

Das sind noch die zwei Befehle die das HylaFax ausgelöst hat im Original!

/usr/bin/cuneiform --singlecolumn --fax -l ger -o /tmp/latest-fax.txt $FILE /usr/bin/php /var/www/html/alarmdisplay/ocr/readfile.php /tmp/latest-fax.txt

Soll ich die so wieder einarbeiten oder den Entwurflassen?

Done91

(Themenstarter)

Anmeldungsdatum:
13. August 2015

Beiträge: 30

Ich hab es jetzt mal auf meine Pfade angepasst. Das kommt als Antwort wenn ich eine PDF in den Ordner kopiere.

ffm@alarmdisplay-laptop:~$ iwatch -e moved_to,create -c '/var/www/html/faxauswertung.sh -s.o. %f' /var/www/faxbox 
[13/Aug/2015 20:17:35] IN_CREATE /var/www/faxbox/testfax.pdf
[13/Aug/2015 20:17:35] * Command: /var/www/html/faxauswertung.sh -s.o. /var/www/faxbox/testfax.pdf

Komme jetzt aber wieder nicht weiter woran es hackt!

mrkramps Team-Icon

Avatar von mrkramps

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 5523

Wohnort: south central EL

Done91 schrieb:

Wenn ich das alles jetzt als zB faxauswertung.sh speichere und die Pfade auf meine ändere könnte das schon klappen?

Du solltest das sorgfältig in deiner Umgebung testen! Aber ja, rein theoretisch sollte das so funktionieren. Zumindest offenbart mir meine inzwischen eingerichtete, rudimentäre Testumgebung keinerlei schwerwiegenden Fehler. Allerdings glaube ich, dass der Zeitstempel besser anders aussehen sollte:

zeitstempel="$(date +'%Y-%m-%d-%H-%M-%S')"

Muss ich das in den Ordner /bin Speichern oder kann das irgendwo liegen?

Das Skript muss ausführbar sein, siehe chmod +x. Danach kannst du es in einem beliebigen Verzeichnis ablegen und vermutlich am Besten mit absoluter Pfadangabe in den Aufruf von iwatch einbinden.

Das sind noch die zwei Befehle die das HylaFax ausgelöst hat im Original!

/usr/bin/cuneiform --singlecolumn --fax -l ger -o /tmp/latest-fax.txt $FILE
/usr/bin/php /var/www/html/alarmdisplay/ocr/readfile.php /tmp/latest-fax.txt

Soll ich die so wieder einarbeiten oder den Entwurflassen?

Die Pfadangaben und Programmoptionen in meiner - sagen wir mal - Skriptskizze sind rein beispielhaft. Eine Anpassung an deine Bedürfnisse musst du selber vornehmen.

Debuggen kannst du das Skript, wenn du unter die Shebang #!/bin/bash noch ein set -x einfügst. Dann werden alle Schritte im Skript auf dem Terminal ausgegeben. Ansonsten siehe auch Wiki-Artikel Bash-Skripting-guide für Anfänger.

Ich hab es jetzt mal auf meine Pfade angepasst. Das kommt als Antwort wenn ich eine PDF in den Ordner kopiere.

ffm@alarmdisplay-laptop:~$ iwatch -e moved_to,create -c '/var/www/html/faxauswertung.sh -s.o. %f' /var/www/faxbox 
[13/Aug/2015 20:17:35] IN_CREATE /var/www/faxbox/testfax.pdf
[13/Aug/2015 20:17:35] * Command: /var/www/html/faxauswertung.sh -s.o. /var/www/faxbox/testfax.pdf

Komme jetzt aber wieder nicht weiter woran es hackt!

Ich habe geschrieben './skript-s.o. %f' und meinte damit auch tatsächlich Skript siehe oben. Das -s.o. ist Teil des Dateinamens und gehört nicht als Parameter in deinen Aufruf 😀

Done91

(Themenstarter)

Anmeldungsdatum:
13. August 2015

Beiträge: 30

Sorry, ich bin halt was das angeht eine pfeiffe!

ffm@alarmdisplay-laptop:~$ iwatch -e moved_to,create -c '/var/www/html/faxauswertung.sh %f' /var/www/faxbox

ist es dann so richtig?

mrkramps Team-Icon

Avatar von mrkramps

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 5523

Wohnort: south central EL

Done91 schrieb:

ffm@alarmdisplay-laptop:~$ iwatch -e moved_to,create -c '/var/www/html/faxauswertung.sh %f' /var/www/faxbox

ist es dann so richtig?

Sieht gut aus. 👍

Antworten |