TK-Tools Version 1.10 Tools zum Auswerten des Protokolls der ISDN TK-Anlage Ferrari Netphone Es folgt eine Kurzbeschreibung der Programme, ihrer jeweiligen Funktion und Installationshinweisen. Bitte vollstaendig lesen! Einige nette features sind nur in den CHANGES erlaeutert, die jetzt in einer eigenstaendigen Datei enthalten sind. netphd ist der daemon, der das Protokoll von der Anlage annimmt und mit dem aktuellen Datum zusammen in einer Datei loggt. Er reagiert auch auf bestimmte Ereignisse und startet dann events, wenn naemlich ein Anrufer mit einer bestimmten Nummer es auf einer bestimmten Nebenstelle klingeln laesst. Man kann damit z.B. folgende Probleme loesen: - wenn man im Mobilnetz einen Tarif hat, bei dem keine Auslandsgespraeche moeglich sind; Callback-Anbieter haben jedoch nur auslaendische Zugangsnummern. Loesung: man ruft bei sich zu Hause an, und das netphone ruft dann die auslaendische Zugangsnummer an, der callback-rechner ruft dann am Handy zurueck. - man kann durch kurzen Anruf den Rechner veranlassen, das letzte empfangene Fax ans Mobilfax nachzusenden o.ae. tkstat ist das Programm, das den aktuellen Status anzeigt. Es hat einen continuous mode, womit man das Programm immer laufen lassen kann, die Anzeige wird dann aktuell gehalten. tkrech ist ein Programm, um bei Verwendung der Nebenstellenanlage in einer WG oder aehnlichem automatisiert Rechnungen den anderen Benutzern zu erstellen. Bislang sind allerdings meine eigenen Konfigurationssachen da drin hardcoded, ich muss dazu erst noch eine config-file Unterstuetzung basteln. Die TeX-Ausgabe kommt auch so ohne weiteres nicht ohne meinen speziellen mletter.sty klar. Kommt noch... Ein Install-Script hab ich leider noch nicht gemacht, ich beschreib aber hier, welche Datei wo welche Funktion erfuellt. tkstat, netphd und tkrech sind executables und gehoeren in /usr/bin oder vergleichbar. autorech, lastfaxresend und notifyhandy sind shell scripts. autorech ist um tkrech herumgebaut. tkrech erzeugt eine Rechnung in LaTeX- Quelltext, autorech bringt das dann auf dem Drucker raus und versorgt zuvor tkrech mit den richtigen Eingabedaten. lastfaxresend ist mein script, um die Faxe ans Eplus zu senden (benutzt flexfax als Software). notifyhandy klingelt kurz mit einem Ring am Handy an als Zeichen, dass ein Fax eingetroffen ist. Muss man in das faxrcvd von Flexfax einbauen. rc.netphone sollte in /etc/rc.d plaziert werden und von rc.S oder rc.local mit aufgerufen werden. Das startet den logging daemon. Bitte anpassen, was die Schnittstelle angeht. netphnums ist ein Beispielfile fuer die Datenbank, nach der tkstat die Telefon- nummern durch Namen ersetzt. Gehoert in /etc Die Nummern am Ort muessen ohne Vorwahl rein (mir faellt grad nicht ein, obs auch mit Vorwahl geht). Die Vorwahl wird in tkstat.cfg angegeben. In netphdenynums (/etc) kann man eine Liste von Nummern angeben, die nicht in die Tabelle der nicht angenommenen Anrufe mit aufgenommen werden soll (sinnvoll fuer Steueranrufe). Kann man mit -y einschalten. tkstat.cfg ist ein Configfile fuer tkstat, gehoert auch in /etc Die neue Option -i ermoeglicht, die Ausgabe des tools isdnlog 2.0b (die man dazu mit sowas wie isdnlog -m63 /dev/isdnctrl0 | tee /var/adm/isdnlog.out umleiten muss) zu beruecksichtigen und unter der sonstigen Ausgabe damit auch ISDN-Datentransfers anzuzeigen. Eventuell werde ich auch mal was einbauen, um direkt /tmp/isdnctrl0 auszuwerten, dann kann man gleich die Kanalbelegung usw. sehen. Die Ausgabe in isdnlog.out ist nicht mit dem file isdn.log zu verwechseln, dass das Programm selbst erstellt! tkstat wertet das aus, was isdnlog an stdout rausgibt. Uebrigens gibts ein tcl/tk Programm namens addressbook, dass wirklich wunderschoen gemacht ist und sehr einfach das Waehlen per Mausklick ueber das Netphone unterstuetzt. Einfach als Waehlstring /bin/echo ATD%number > /dev/cua2 eintragen bzw. natuerlich cua? anpassen. Das Programm ist bei der suse-Distribution dabei. Beispiel fuer eine tkstat-Ausgabe mit Erklaerung: * 02:43 **********|******************|******************|********** 45:11 *| N1 Buero | N2 Maik | N3 Felix | N4 Faxmodem | | | | | Idle | Idle | Idle | Extern mit | | | | Uni-Kaskade81 | | | | | 1212 22:53 13,57 |1212 12:23 4,37 |1312 16:31 22,54 |1312 05:25 37,03 | 00:01:38 00,23 1 |00:00:20 00,23 1 |00:11:57 00,46 2 |00:01:23 00,92 4 | @ Gabi_Chimainsk | @ Wolfgang | @ Wolfgang | @ 0177992407502 | ******************|******************|******************|******************| I Dec 13 19:40:01 |I Dec 13 19:40:30 |I Dec 13 19:33:12 |I Dec 01 03:07:07 | E Dec 13 10:11:36 |E Dec 13 20:27:03 |E Dec 10 19:24:51 |E Dec 13 18:59:34 | E= (unknown) |E= (unknown) |E= (unknown) |E= (unknown) | ******************|******************|******************|******************| 130454 Maik_Eplus |131308 BS-Archiv | | | 130457 Maik_Eplus |131454 787418 | | | 130506 Maik_Eplus |131506 BS-Archiv | |010049 (unknown) | 130524 Maik_Eplus |131752 (unknown) | |010050 (unknown) | 131011 (unknown) |131838 787413 | |021053 (unknown) | ******************|******************|******************|******************| Oben links die Nebenstellennummer, dahinter der Name. Drunter der Status (Idle, Besetzt, Nicht erreichbar, Ruf vom Amt, Ruf von Intern, Anwahl, Interngespraech, Extern mit Amt, Extern von Amt). Darunter evtl. die Telefonnummer bzw. der Name, wenn der im netphnums steht. Drunter der letzte rausgegangene Anruf, der gekostet hat. Datum, Uhrzeit und Gesamtbetrag der Nebenstelle; Dauer, Kosten und Einheitenzahl des Gespraechs, sowie Zielnummer bzw. -name. Naechstes Feld die letzten Anrufe von Intern und Extern, egal ob angenommen wurde oder nicht. Bei externen steht noch die Nummer dabei, wenn die mitgeteilt wurde. Ganz links oben steht die aktuelle Uhrzeit, rechts oben steht immer die aktuelle Dauer des aktuellen Gespraechs, wenn gerade eines laeuft. Die Liste ganz unten ist eine Liste der Anrufe, die nicht angenommen wurden, mit Datum und Uhrzeit (131838 = 13. des Monats, 18:38 Uhr) sowie Nummer, wenn die mitgeteilt wurde. Wenn ein Anklopfgespraech angenommen wurde, gibt die Anlage leider keinen Code aus, aus dem man das entnehmen koennte. Daher steht dann nur Ruf von Extern im Statusfeld, und die Uhr laeuft auch nicht mit. Zu Tkrech kann man noch in einer Extradatei weitere Fixkosten anfuehren. Wenn etwa noch eine Telefonmiete an den Benutzer einer Nebenstelle weitergegeben werden soll, kann das damit geschehen. Syntax der Datei: Nebenstelle Monat Betrag_in_Pfennig Beschreibung Beispiel: 5 12 500 Telefonmiete Lombard 01.12.95--31.12.95 Zu beachten: LaTeX-Notationen verwenden. Umlaute etwa mit "a, von-bis Strich als -- usw. Statt der Monatszahl kann auch eine 0 angegeben werden, dann wird der Eintrag in jedem Monat beruecksichtigt. Ab Version 0.93 kann tkrech auch einen zweiten Benutzer einer bestimmten Nebenstelle abrechnen. Derjenige muss sich zu erkennen geben, indem er kurz abhebt (Amt mit 0 muss eingestellt sein), eine Nebenstelle mit der Nummer 6 bis 8 anruft und wieder auflegt. Danach kann er seine entgueltige Nummer anwaehlen. Das muss direkt hintereinander passieren. Dieser Anruf wird dann auf das Konto des Zweitbenutzers gebucht. Dieses Feature funktioniert beim Netphone, von der ZweiAcht erbitte ich Resonanz, was geloggt wird, wenn man Nebenstelle 9 anwaehlt. Die Konfiguration von tkrech geschieht jetzt ueber ein Konfig-File, Beispiel liegt bei und sollte selbsterklaerend sein. Die b-Eintraege sind fuer Zweitbenutzer gedacht. Alles, was nach der Anweisung texheader kommt, wird als Kopf in die .tex Datei geschrieben. tkstat hat verschiedene Optionen, zu sehen mit tkstat -? netphd legt die Datei /var/adm/netphone an, darin findet sich dann das Protokoll der Anlage. Netphd liest aus /etc/netphd.cfg eine Liste von events ein, auf die reagiert wird, wenn er eintritt. Etwa das Weiterleiten eines Faxes aufgrund eines Trigger-Anrufs vom Mobiltelefon oder aehnliches. Mit 'kill -1 [pid]' kann man den netphd veranlassen, dieses file waehrend des laufenden Betriebs neu einzulesen. In Planung ist noch eine Option fuer tkstat, das dann nur noch einen errorwert ausgibt wenn man nach bestimmten Bedingungen fragt, etwa ob die Nebenstelle soundso gerade frei ist. Wenn jemand ncurses in der Version 1.9.x verwendet, dann gibt es wahrscheinlich die Datei /usr/include/ncurses/ncurses.h nicht mehr. Stattdessen findet sich in dem Verzeichnis nur ein curses.h. Das muss mit einem symbolischen Link dann auch als ncurses.h verfuegbar gemacht werden (cd /usr/include/ncurses;ln -s curses.h ncurses.h). Siehe auch Datei CHANGES fuer die neueren Features. -- Maik Musall, November 1995 - August 1998 maik@musall.de