Homepage Wolfgang Wilhelm :: v 0.9.1 21.02.2006 :: (v.0.9 __ 14.04.03) | ||
LINKWEG ::: inhalt / ISDN Services / ISDN Faxserver |
Linux als ISDN Faxserver
ISDN Faxserver mit unter hylafax
AVM Hardware Treiber
capi4linux
capi4hylafax
Hylafax
Verteilung der Faxe anhand der MSN | DDI
AVM Hardware treiber | |
Vorraussetzung:
* Kernelquellen, die Hardwaretreiber von AVM sind nur für SuSE kompiliert The complete driver architecture for active AVM ISDN-Controllers consists of a hardware driver module (e.g. b1pci.o) and the following list of modules: capi.o, capiutils.o, kernelcapi.o and capifs.o. The source code for all these modules is part of the linux kernel in directory /usr/src/linux/drivers/isdn/avmb1 and will be compiled with the kernel if the following settings are found in the kernel configuration: CONFIG_EXPERIMENTAL=y CONFIG_ISDN_CAPI=m CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y CONFIG_ISDN_CAPI_MIDDLEWARE=y CONFIG_ISDN_CAPI_CAPI20=m CONFIG_ISDN_CAPI_CAPIFS_BOOL=y CONFIG_ISDN_CAPI_CAPIFS=m CONFIG_ISDN_CAPI_CAPIDRV=m CONFIG_ISDN_DRV_AVMB1_B1ISA=m CONFIG_ISDN_DRV_AVMB1_B1PCI=m CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y CONFIG_ISDN_DRV_AVMB1_T1ISA=m CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m CONFIG_ISDN_DRV_AVMB1_AVM_CS=m CONFIG_ISDN_DRV_AVMB1_T1PCI=m CONFIG_ISDN_DRV_AVMB1_C4=m
Dies bedeutet einen neuen Kernel zu übersetzen, im Konfigurationsmenü unter ... <M> CAPI2.0 support [*] Verbose reason code reporting (kernel size +=7K) [*] CAPI2.0 Middleware support (EXPERIMENTAL) <M> CAPI2.0 /dev/capi support [*] CAPI2.0 filesystem support <M> CAPI2.0 capidrv interface support <M> AVM B1 ISA support <M> AVM B1 PCI support [*] AVM B1 PCI V4 support <M> AVM T1/T1-B ISA support <M> AVM B1/M1/M2 PCMCIA support <M> AVM B1/M1/M2 PCMCIA cs module <M> AVM T1/T1-B PCI support <M> AVM C4/C2 support ...
auswählen. Ein Kernel-Howto ist unter der Adresse der Linux Documentation Project zu finden.
Damit alle Konfigurationsmöglichkeiten angezeigt werden sollte noch # card file proto io irq mem cardnr options #b1isa b1.t4 DSS1 0x150 7 - - P2P #b1pci b1.t4 DSS1 - - - - #c4 c4.bin DSS1 - - - - #c4 - DSS1 - - - - #c4 - DSS1 - - - - P2P #c4 - DSS1 - - - - P2P #t1isa t1.t4 DSS1 0x340 9 - 0 #t1pci t1.t4 DSS1 - - - - #fcpci - - - - - - #fcclassic - - 0x340 5 - - # ----- -- # 1) Insert I/O address here _______| | # 2) Insert IRQ number here ___________/ # 3) Remove '#' in front of "fcclassic"
Einfach die entsprechende Zeile auskommentieren. Wenn eine aktive ISDN Karte benutzt wird muss noch die Firmware (b1.t4,c4.bin,t1.t4) nach /usr/lib/isdn kopiert werden. Die Firmware ist aus dem aktuellen AVM SuSE Treiber RPM zu extrahieren. Ich habe ein Paket mit der Firmware vom 18. Juni 2003 geschnürt. alias char-major-43 capidrv alias char-major-44 capidrv alias char-major-45 capidrv eintragen und mit /sbin/depmod -a aktualisieren. Somit ist der Hardwareseitige Teil der Installation abgeschlossen |
capi4linux | |
capi4kutils entpacken und per make ( Menueconfig) und make install installieren. capiinit start modprobe capidrv chmod 660 /dev/capi20 chgrp uucp /dev/capi20 ausgeführt. Die Berechtigungen für das Interface werden für den späteren Hylafaxdienst erweitert, die Gruppe uucp benötigt Schreibzugriff auf das Device.
Die Ausgabe von /sbin/lsmod sollte ähnlich aussehen: capidrv 26612 4 isdn 97696 3 [capidrv] b1isa 3932 1 b1 18080 0 [b1isa] capi 18048 6 capifs 4000 1 [capi] kernelcapi 30272 6 [capidrv b1isa capi] capiutil 15488 0 [capidrv kernelcapi] Ein /usr/bin/capiinfo zeigt den Controller an, beispielsweise für eine AVM B1 (Auszug): Number of Controllers : 1 Controller 1: Manufacturer: AVM GmbH CAPI Version: 2.0 Manufacturer Version: 3.100-02 (49.2) Serial Number: 0510624 BChannels: 2 Global Options: 0x00000039 internal controller supported DTMF supported Supplementary Services supported channel allocation supported (leased lines) B1 protocols support: 0x4000001f 64 kbit/s with HDLC framing 64 kbit/s bit-transparent operation V.110 asynconous operation with start/stop byte framing V.110 synconous operation with HDLC framing T.30 modem for fax group 3 ... |
capi4hylafax | |
capi4hylafax ist auf dem AVM FTP Server zu finden. ./configure --with-hylafax-spooldir=/var/spool/fax/ make make install
verrichtet seinen Dienst. Die Hylafaxsoftware muss ebenfalls mit /var/spool/fax als Spoolverzeichniss übersetzt werden, während des Buildprozesses wird dies abgefragt. Im Prinzip funktioniert der Faxempfang im |
Hylafax | |
Die Hylafax Software muss während des Übersetzens noch an das Spoolverzeichniss angepasst werden. HylaFAX configuration parameters (part 1 of 2) are: [ 1] Directory for applications: /usr/local/bin [ 2] Directory for lib data files: /usr/local/lib/fax [ 3] Directory for lib executables: /usr/local/sbin [ 4] Directory for system apps: /usr/local/sbin [ 5] Directory for manual pages: /usr/local/man [ 6] Directory for HTML documentation: /var/httpd/htdocs/hylafax [ 7] Directory for spooling: /var/spool/hylafax [ 8] Directory for uucp lock files: /var/lock [ 9] Uucp lock file scheme: ascii [10] PostScript imager package: gs [11] PostScript imager program: /usr/bin/gs [12] Manual page installation scheme: bsd-source-cat [13] Default page size: ISO A4 [14] Default vertical res (lpi): 98
Der Menüpunkt 7 entsprechend auf /var/spool/fax setzen, ausserdem habe ich noch die Seitengrösse [13] auf A4 gesetzt. Ein nützliches feature ist die HTML-Dokumentation, die direkt per [6] in ein Dokumentverzeichniss des Webservers installiert werden kann.
Nach der Installation durch make install wird noch durch ein Menü geführt um Ortseinstellungen, Vorwahl, LogLevel etc. zu ermitteln. Nähere Angaben zu den Optionen sind in der mitgelieferten Hylafaxdokumentation unter LogFacility: daemon CountryCode: 49 AreaCode: 0261 LongDistancePrefix: 0 InternationalPrefix: 049 DialStringRules: etc/dialrules ServerTracing: 527 MaxDials: 3 MaxSendPages: 30 MaxTries: 1 ModemGroup: "any:^faxCAPI$" SendFaxCmd: "/usr/local/bin/c2faxsend" SessionTracing: 527
Mit /usr/local/sbin/c2faxrecv -f TIFF wird der Dienst für eingehende Faxe gestartet und an Hylafax weitergereicht. Der Note:Nimmt der Hylafax Server ausgehende Faxe an, versendet diese aber nicht (bsp. nach einem Neustart), muss der Software nocheinmal die faxCAPI bekannt gemacht werden, die wird per faxmodem faxCAPI erledigt. |
Verteilung der Faxe anhand der MSN | DDI | |
System zur automatisierten Faxverteilung:
Der Tarball enthält zwei wichtige Skripte: faxnotify.capi: trifft ein Facsimile ein wird es von c2faxrecv aufgerufen, es kopiert einfach nur die Eingangsdatei in einen Spoolbereich und legt eine dazugehörige Logdatei an (Absender,Zielnummer,Auflösung etc.). Es muss als ausführendes Skript in der Konfiguration eingetragen werden, das Schlüsselwort lautet FaxRcvdCmd. [/var/spool/fax/etc/config.faxCAPI] ... FaxRcvdCmd: /var/spool/fax/bin/faxnotify.capi distribfax: perlscript, verarbeitet die von faxnotify angelegten info-Dateien, liest die Benutzereinstellungen und versendet das Fax im definierten Format an den Benutzer (e.g. per mail). Abhängig vom Eingangsformat der Faxe (tiff oder sff) wird distribfax ohne beziehungsweise mit der Option -t aufgerufen damit der Dateityp bestimmt ist, der konvertiert und verschickt werden soll. Software, die im Skript genutzt wird und als Voraussetzung gilt:
Damit die Skripte erfolgreich abgearbeitet werden können werden diese in einer Verzeichnisstruktur erwartet, /---bin/----distribfax faxnotify.capi fax2ps fax2pdf convert # Only if c2faxrecv writes tiff sff2misc # Only if c2faxrecv writes sff files etc/ lib/----num_user user_opt log/ info/ recvq/ tmp/ incoming
sff2misc konvertiert die von capifaxrecv geschriebenen sff Dateien in postscript, tiff etc. Es wird von distribfax benötigt falls
num_user und user_opt sind distribfax Konfigurationsdateien, diese bestimmen welches Fax wie zum Benutzer geleitet wird. Wird der Hylafax Dienst vom Systembenutzer gestartet ändert dieser seine Privilegien auf den Benutzer uucp,daher muss dieser auch Schreibzugriff auf /dev/capi20 haben. Das Skript hat noch einen Schönheitsfehler, daher muss dem Benutzer uucp noch ein Leserecht auf EMail Temporärdateien, die mutt anlegt, gestattet werden. Um dies zu umgehen habe ich sudo installiert und dem Benutzer uucp den Aufruf von mutt als privilegiertem Benutzer gestattet. [/etc/sudoers] ... uucp ALL=(ALL) NOPASSWD: /usr/bin/mutt ... |
Allgemeines |
© 2003 by Wolfgang Wilhelm • mail: wwilhelm at rz-online dot de |