HowTo - Spandsp-Ergebnis in log-Datei

zeckrich

Neuer User
Mitglied seit
20 Jun 2006
Beiträge
72
Punkte für Reaktionen
0
Punkte
0
Hallo,

habe mich in der Vergangenheit mit Asterisk, Spandsp und Fax auseinandersetzen dürfen.
Und um dies gleich zu Anfang klar zu stellen, ich halte nicht viel von dieser Lösung.
Nichts desto trotz musste ich mir etwas einfallen lassen, um einen gewissen Status zu loggen. Ergebnis war die Ausgabe der Anzahl von übertragenen Seiten in eine externe Datei, welche im weiteren z.B. aus dem Wählplan oder einem externen Skript zur Fehlerkontrolle eingesetzt werden kann.
Achso, das ganze ist natürlich nur für Selbstkompilierer :lamer:
Hierfür waren ein paar Änderungen in den Quellen von spandsp notwendig, welche nun folgen:

Alle Änderungen werden in der Datei <spandspsrc>/src/t30.c getätigt.
Zuerst mit beliebigem editor öffnen. Dann die Routine static void process_rx_mcf(irgendwelcheparameter) suchen.
Ganz zu Anfang dieser Routine folgende Zeilen einfügen:

FILE *logf;
logf = fopen("/var/log/asterisk/faxout.log","a+");


Somit wird der Pfad zur log-Datei definiert. Dieser kann natürlich beliebig ans System angepasst werden.
Nun kommt im Originalcode ein Switch->Case Zweig. Nach der Zeile
span_log(&s->logging, SPAN_LOG_FLOW, "Success - delivered %d pages\n", stats.pages_transferred);
ist folgendes hinzuzufügen:
fprintf(logf, "%s;%d\n", s->tx_file, stats.pages_transferred);
fflush(logf);

So wird die Zahl übertragener Seiten geschrieben. Diese Zeile kommt in zwei aufeinanderfolgenden case-Zweigen vor, habe den neuen Code in jedem der Beiden hinzugefügt.

Nach der Zeile
span_log(&s->logging, SPAN_LOG_FLOW, "Unexpected MCF received in state %d\n", s->state);
wird folgendes angefügt:
fprintf(logf, "%s;0\n", s->tx_file);
fflush(logf);


Nun fehlt als letztes das saubere Schließen der log-Datei. Hierfür lediglich vor der letzten gescheiften Klammer "}", welche die Funktion abschließt folgendes einfügen:
fclose(logf);

Im Anschluss spandsp neu kompilieren und installieren, halt wie bei der Erstinstallation. Bin mir gerade nicht sicher, glaube aber, dass Asterisk nicht neu kompiliert werden muss :rolleyes:

Nun dürfte für jedes ausgehende Fax ein Eintrag in der log-Datei erscheinen.
Das ganze kann ja auch noch je nach Bedarf angepasst werden.

So, hoffe dass ich einigen hier damit weiterhelfen konnte.

Frohes neues Jahr.
zeckrich

PS: Aufbau der log-Datei ist: <.tif-Name>,<Anzahl übertragener Seiten>
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,903
Beiträge
2,303,602
Mitglieder
378,538
Neuestes Mitglied
SignalCheck97