Faxserver mit IAXmodem und Hylafax

Die Software IAXmodem emuliert ein Modem, das von einer beliebigen Faxsoftware angesteuert werden kann. Für die Faxserversoftware nehmen wir das populäre Hylafax. Als Plattform benutzen wir für diese Installationsanleitung das im restlichen Buch ebenfalls verwendete Debian Linux mit einem Asterisk 1.4 (siehe „Installation Asterisk 1.4.x auf Debian Linux 4.0 (Etch)“).

Installation IAXmodem

IAXmodem ist eine Software, die ein Modem simuliert, und dieses Asterisk mit dem IAX2-Protokoll zur Verfügung stellt. Alle Schritte in diesem Kapitel werden als User root ausgeführt.

Um IAXmodem installieren zu können, benötigen wir noch einige Debian-Packete, die mit apt-get -y install g++ libtiff-tools libtiff4 libtiff4-dev installiert werden.

debian:~# apt-get -y install g++ libtiff-tools libtiff4 libtiff4-dev
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  g++ libjpeg62 libjpeg62-dev libtiffxx0 zlib1g-dev

[...]

Richte zlib1g-dev ein (1.2.2-4.sarge.2) ...
Richte libtiff4-dev ein (3.7.2-7) ...

debian:~# 

Zum Installieren der Sourcen wechseln wir mit cd /usr/src wieder in das entsprechende Verzeichnis:

debian:~# cd /usr/src
debian:/usr/src# 

Die Sourcen zu IAXmodem können mit einem normalen Browser auf der Webseite http://iaxmodem.sourceforge.net heruntergeladen werden (in diesem Beispiel ist es die Version 0.3.0). Nach dem Download muss der TarBall in das Verzeichnis /usr/src kopiert und mit tar -xzf iaxmodem-0.3.0.tar.gz enpackt werden.

debian:/usr/src# tar -xvzf iaxmodem-0.3.0.tar.gz 
iaxmodem-0.3.0/
iaxmodem-0.3.0/iaxmodem.c
iaxmodem-0.3.0/iaxmodem.init.debian
iaxmodem-0.3.0/Makefile.in
iaxmodem-0.3.0/CHANGES
iaxmodem-0.3.0/lib/
iaxmodem-0.3.0/lib/spandsp/
iaxmodem-0.3.0/lib/spandsp/Makefile.am

[...]

iaxmodem-0.3.0/TODO
iaxmodem-0.3.0/FAQ
iaxmodem-0.3.0/build
iaxmodem-0.3.0/iaxmodem.init.fedora
debian:/usr/src#

Mit cd iaxmodem-0.3.0 in das neue Verzeichnis wechseln.

debian:/usr/src# cd iaxmodem-0.3.0
debian:/usr/src/iaxmodem-0.3.0#

Un danach mit dem Befehl ./configure && make kompilieren.

debian:/usr/src/iaxmodem-0.3.0# ./configure && make
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc

[...]

cc -DMODEMVER=\"0.3.0\" -DDSPVER=\"spandsp-0.0.3-snapshot-20070223+\" -D
IAXVER=\"libiax2-0.2.3-CVS-20060222+\" -Wall -g -DSTATICLIBS -DUSE_UNIX9
8_PTY -std=c99 -Ilib/libiax2/src -Ilib/spandsp/src  -c iaxmodem.c
cc -DMODEMVER=\"0.3.0\" -DDSPVER=\"spandsp-0.0.3-snapshot-20070223+\" -D
IAXVER=\"libiax2-0.2.3-CVS-20060222+\" -Wall -g -DSTATICLIBS -DUSE_UNIX9
8_PTY -std=c99 -Ilib/libiax2/src -Ilib/spandsp/src  iaxmodem.o lib/spand
sp/src/.libs/libspandsp.a lib/libiax2/src/.libs/libiax.a -o iaxmodem -lm
 -lutil -ltiff

[...]

debian:/usr/src/iaxmodem-0.3.0# 

Das dabei entstehende Binary iaxmodem kopieren wir zum Schluss mit cp iaxmodem /usr/bin/ ins Verzeichnis /usr/bin.

debian:/usr/src/iaxmodem-0.3.0# cp iaxmodem /usr/bin/
debian:/usr/src/iaxmodem-0.3.0# 

Jetzt kommen wir zur Konfiguration des Modems. IAXmodem sucht seine Konfiguration im Verzeichnis /etc/iaxmodem. Dieses müssen wir jetzt mit mkdir /etc/iaxmodem anlegen

debian:/usr/src/iaxmodem-0.3.0# mkdir /etc/iaxmodem
debian:/usr/src/iaxmodem-0.3.0# 

Und mit touch /etc/iaxmodem/ttyIAX0 in ihm eine Datei erzeugen, in der die Konfiguration steht.

debian:/usr/src/iaxmodem-0.3.0# touch /etc/iaxmodem/ttyIAX0
debian:/usr/src/iaxmodem-0.3.0# 

In dieser Datei müssen folgende Parameter angegeben werden:

device
Das ist das Device, das im /dev Verzeichnis angelegt wird. Über dieses Device kann später Hylafax auf das Modem zugreifen. Der Name des Devices ist frei wählbar, wir halten uns aber an die allgemeinen Konventionen und nennen es äquivalent zum Device für die serielle Schnittstelle ttyIAX0.
owner
Das ist der Eigentümer des Devices in der Form user:group. Es sollte derselbe User und dieselbe Gruppe sein, unter der Hylafax laufen soll.
port
Der Port, auf dem das IAXmodem lauscht. Da Asterisk auf Port 4569 auf IAX2-Verbindungen hört, sollte man hier einen anderen Port verwenden, z.B. 4570.
refresh
Das Intervall, nach dem sich das Modem erneut bei Asterisk registriert. Wenn dieses auf 0 steht, registriert sich das Modem nicht bei Asterisk.
server
Der Server, auf dem der Asterisk läuft. Wenn der Server derselbe ist, auf dem auch das IAXmodem läuft, steht hier die lokale Adresse 127.0.0.1.
peername
Der Name, unter dem sich das IAXmodem bei Asterisk registriert.
secret
Das Passwort zur Registrierung am Asterisk
codec
Der Codec, der vom IAXmodem verwendet wird. Erlaubt sind hier alaw, ulaw und slinear. Andere machen hier auch wenig Sinn, da diese komprimieren und die Übertragung dadurch nicht verlustfrei ist. Bei reiner Sprachübertragung wirkt sich das für einen Menschen nicht negativ aus, bei Faxübertragungen aber hätte es störende Fehler zur Folge.

Mit einem beliebigen Editor (z.B. vi) schreiben wir die folgende Konfiguration in die Datei /etc/iaxmodem/ttyIAX0

device          /dev/ttyIAX0
owner           uucp:uucp
mode            660
port            4570
refresh         50
server          127.0.0.1
peername        iaxmodem
secret          password
codec           alaw

Jetzt ist das IAXmodem fertig konfiguriert und muss gestartet werden. Dies geschieht am besten über den init-Prozess. Also fügen wir mit echo "IA00:23:respawn:/usr/bin/iaxmodem ttyIAX0" >> /etc/inittab den entsprechenden Eintrag der Datei /etc/inittab hinzu:

debian:/usr/src/iaxmodem-0.3.0# echo "IA00:23:respawn:/usr/bin/iaxmodem 
ttyIAX0" >> /etc/inittab 
debian:/usr/src/iaxmodem-0.3.0#

Wobei ttyIAX0 der Name der Konfigurationsdatei unter /etc/iaxmodem ist.

Zum Faxempfang benötigen man einen getty, der am IAXmodem auf Verbindungen lauscht. Das erreicht man ganz einfach durch einen weiteren Eintrag in der Datei /etc/inittab. Dieser kann mit echo "mo00:23:respawn:/usr/sbin/faxgetty ttyIAX0" >> /etc/inittab erstellt werden.

mo00:23:respawn:/usr/local/sbin/faxgetty ttyIAX0

Damit iaxmodem in die Logdateien schreiben kann, legen wir den Ordner mit mkdir /var/log/iaxmodem/ an und erstellen die Logdateien ttyIAX0 und iaxmodem mit jeweils dem Befehl touch /var/log/iaxmodem/ttyIAX0 und touch /var/log/iaxmodem/iaxmodem.

debian:/usr/src/iaxmodem-0.3.0# mkdir /var/log/iaxmodem/
debian:/usr/src/iaxmodem-0.3.0# touch /var/log/iaxmodem/ttyIAX0
debian:/usr/src/iaxmodem-0.3.0# touch /var/log/iaxmodem/iaxmodem 
debian:/usr/src/iaxmodem-0.3.0#

Um ganz sicher zu gehen rebooten wir jetzt noch einmal mit shutdown -r now den Rechner, damit init auch das IAXmodem richtig startet.

debian:/usr/src/iaxmodem-0.3.0# shutdown -r now

Broadcast message from root@debian (pts/1) (Sat May  5 00:15:49 2007):

The system is going down for reboot NOW!
debian:/usr/src/iaxmodem-0.3.0# 

Installation Hylafax

Um die Installation zu vereinfachen installieren wir den Faxserver aus dem Debian Repository mit apt-get -y install hylafax-server . Abhängigkeiten werden automatisch aufgelöst:

debian:~# apt-get install -y hylafax-server
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  enscript gs-common gs-esp hylafax-client libcupsimage2 libcupsys2 mail
x metamail psmisc
Vorgeschlagene Pakete:
  gv postscript-viewer lpr gs-pdfencrypt gs-cjk-resource mgetty-viewfax 
hylafax-doc mgetty cupsys-common
Empfohlene Pakete:
  psfontmgr netpbm transfig
Die folgenden NEUEN Pakete werden installiert:
  enscript gs-common gs-esp hylafax-client hylafax-server libcupsimage2 
libcupsys2 mailx metamail psmisc

[...]

Update /var/spool/hylafax/status/any.info.

        HylaFAX configuration parameters are:

        [1] Init script starts faxq:            yes
        [2] Init script starts hfaxd            yes
        [3] Start old protocol:                 no
        [4] Start paging protocol:              no
Are these ok [yes]? 
Modem support functions written to /var/spool/hylafax/etc/setup.modem.
Configuration parameters written to /var/spool/hylafax/etc/setup.cache.

Restarting HylaFAX server processes.

Should I restart the HylaFAX server processes [yes]? 
You do not appear to have any modems configured for use.  Modems are
configured for use with HylaFAX with the faxaddmodem(8) command.
Do you want to run faxaddmodem to configure a modem [yes]? 
Done verifying system setup.
Updating /etc/hylafax/setup.cache from /var/spool/hylafax/etc/setup.cach
e.
Updating /etc/hylafax/setup.modem from /var/spool/hylafax/etc/setup.mode
m.apt-get -y install hylafax-server
/var/spool/hylafax
Starting HylaFAX: faxq hfaxd faxgetty.

debian:~#
[Tipp]

[91]

Der nächste Schritt ist das Setup des Faxservers. Hierzu rufen wir das Programm faxsetup auf:

debian:/usr/src/hylafax-4.3.4# faxsetup

[...]

Update /var/spool/hylafax/status/any.info.

        HylaFAX configuration parameters are:

        [1] Init script starts faxq:            yes
        [2] Init script starts hfaxd            yes
        [3] Start old protocol:                 no
        [4] Start paging protocol:              no

Are these ok [yes]?

Jetzt bestätigen wir den Restart des Serverprozesses mit zwei male mit yes und werden gefragt, ob wir ein Modem installieren wollen. Da unser IAXmodem bereits eingerichtet ist, können wir hier direkt weitermachen und bestätigen wieder mit yes.

Fragen über Fragen, aber nur die wenigsten sind wirklich wichtig.[92] Wichtig sind natürlich die Faxnummer und der sogenannte LocalIdentifier. Das ist der Text, der auf jedem gesendeten Fax in der obersten Zeile steht.

Bei den folgenden 2-3 Fragen einfach immer Enter drücken.

You have a HylaFAX scheduler process running.  faxq will be
restarted shortly, as soon as some other work has been completed.
Can I terminate this faxq process (4048) [yes]?
Should I restart the HylaFAX server processes [yes]?

/etc/init.d/hylafax start
Not starting HylaFAX daemons since they are already running.

[...]

Modems are configured for use with HylaFAX with the faxaddmodem(8) comma
nd.
Do you want to run faxaddmodem to configure a modem [yes]? 

Jetzt bestätigen wir den Restart des Serverprozesses mit zwei yes und werden gefragt, ob wir ein Modem installieren wollen. Da unser IAXmodem bereits eingerichtet ist, können wir hier direkt weitermachen und bestätigen wieder mit yes.

Hier geben wir das Modem an und bestätigen es mit Enter.

Serial port that modem is connected to [ttyS0]? ttyIAX0

Ok, time to setup a configuration file for the modem.  The manual
page config(5) may be useful during this process.  Also be aware
that at any time you can safely interrupt this procedure.

Reading scheduler config file /var/spool/hylafax/etc/config.

Fragen über Fragen, aber nur die wenigsten sind für uns relevant.[93]Bei den folgenden Einstellungen müssen Sie die für Ihre Installation geeigneten Werte (also z.B. die Internationale Vorwahl 49 für Deutschland) eingeben. Wichtig sind natürlich die Faxnummer und der sogenannte LocalIdentifier. Das ist der Text, der auf jedem gesendeten Fax in der obersten Zeile steht.

Dabei sind bei den meisten Installationen nur die ersten sechs Fragen wichtig. Die erste betrifft die Landesvorwahl als zweistellige Zahl, für Deutschland also die 49. Dann folgt die Ortsnetznummer ohne führende Null, in diesem Beispiel die 69 für Frankfurt am Main. Daraufhin die Faxnummer, mit Vorwahl. Dann eine Null für Ferngespräche und zwei Nullen für internationale Gespräche. Am Schluss mit yes bestätigen.

No existing configuration, let's do this from scratch.

Country code [1]? 49
Area code []? 69
Phone number of fax modem [+1.999.555.1212]? +49 69 12345678
Local identification string (for TSI/CIG) ["NothingSetup"]? 
Long distance dialing prefix [1]? 0
International dialing prefix [011]? 00
Dial string rules file (relative to /var/spool/hylafax) [etc/dialrules]?
 
Tracing during normal server operation [1]? 
Tracing during send and receive sessions [11]? 
Protection mode for received facsimile [0600]? 
Protection mode for session logs [0600]? 
Protection mode for ttyIAX0 [0600]? 
Rings to wait before answering [1]? 
Modem speaker volume [off]? 
Command line arguments to getty program ["-h %l dx_%s"]? 
Pathname of TSI access control list file (relative to /var/spool/hylafax
) [""]? 
Pathname of Caller-ID access control list file (relative to /var/spool/h
ylafax) [""]? 
Tag line font file (relative to /var/spool/hylafax) [etc/lutRS18.pcf]? 
Tag line format string ["From %%l|%c|Page %%P of %%T"]? 
Time before purging a stale UUCP lock file (secs) [30]? 
Hold UUCP lockfile during inbound data calls [Yes]? 
Hold UUCP lockfile during inbound voice calls [Yes]? 
Percent good lines to accept during copy quality checking [95]? 
Max consecutive bad lines to accept during copy quality checking [5]? 
Max number of pages to accept in a received facsimile [25]? 
Syslog facility name for ServerTracing messages [daemon]?
Set UID to 0 to manipulate CLOCAL [""]? 
Use available priority job scheduling mechanism [""]?

Es folgt eine Übersicht Seiten, wo Sie nochmals mit yes die Daten bestätigen können:

The non-default server configuration parameters are:

CountryCode:            49
AreaCode:               69
FAXNumber:              +49 69 12345678
LongDistancePrefix:     0
InternationalPrefix:    00
DialStringRules:        etc/dialrules
SessionTracing:         11
RingsBeforeAnswer:      1
SpeakerVolume:          off
GettyArgs:              "-h %l dx_%s"
LocalIdentifier:        "NothingSetup"
TagLineFont:            etc/lutRS18.pcf
TagLineFormat:          "From %%l|%c|Page %%P of %%T"
MaxRecvPages:           25

Are these ok [yes]?

Yes bringt uns weiter zur Modemerkennung.

Now we are going to probe the tty port to figure out the type
of modem that is attached.  This takes a few seconds, so be patient.
Note that if you do not have the modem cabled to the port, or the
modem is turned off, this may hang (just go and cable up the modem
or turn it on, or whatever).

Probing for best speed to talk to modem: 38400 OK.

About fax classes:

The difference between fax classes has to do with how HylaFAX interacts
with the modem and the fax protocol features that are used when sending
or receiving faxes.  One class isn't inherently better than another;
however, one probably will suit a user's needs better than others.
    
Class 1 relies on HylaFAX to perform the bulk of the fax protocol.
Class 2 relies on the modem to perform the bulk of the fax protocol.
Class 2.0 is similar to Class 2 but may include more features.
Class 1.0 is similar to Class 1 but may add V.34-fax capability.
Class 2.1 is similar to Class 2.0 but adds V.34-fax capability.
      
HylaFAX generally will have more features when using Class 1/1.0 than
when using most modems' Class 2 or Class 2.0 implementations.  Generally
any problems encountered in Class 1/1.0 can be resolved by modifications
to HylaFAX, but usually any problems encountered in Class 2/2.0/2.1 will
require the modem manufacturer to resolve it.

If you're unsure and your modem supports it, use Class 1.

This modem looks to have support for Class 1 and 1.0.
How should it be configured [1]? 

Hmm, this looks like a Class 1 modem.
Product code (ATI0) is "spandsp".
Other information (ATI3) is "www.soft-switch.org".
DTE-DCE flow control scheme [default]? 
Modem manufacturer is "spandsp".
Modem model is "IAXmodem".

Using prototype configuration file iaxmodem...

The modem configuration parameters are:

ModemResetCmds:         "ATH1\nAT+VCID=1"

Are these ok [yes]?

Das Modem wurde erkannt und wir werden gefragt, ob es ein Class 1-Modem ist. Da das genau das ist, was wir wollen, bestätigen wir. Auch das Reset-Kommando für das Modem können wir so übernehmen. Wenn alles in Ordnung ist, bestätigen wir mit yes.

Im folgendem Dialog wird die erste Frage mit no beantwortet, da es kein weiteres Modem zu Konfigurieren gibt. Die zweite Frage wird mit enter bestätigt, was das neu starten des Fax Servers bewirkt.

Creating new configuration file /var/spool/hylafax/etc/config.ttyIAX0...
Creating fifo /var/spool/hylafax/FIFO.ttyIAX0 for faxgetty... done.
Done setting up the modem configuration.

[...]

Do you want to run faxaddmodem to configure another modem [yes]? no

[...]

Should I run faxmodem for each configured modem [yes]? 
/usr/sbin/faxmodem ttyIAX0

Done verifying system setup.
/var/spool/hylafax


debian:~#

Jetzt ist Hylafax zum Senden von Faxen eingerichtet.

Faxe empfangen

Jetzt muss diese Faxlösung noch in Asterisk integriert werden. Dazu müssen wir Asterisk das IAXmodem bekannt machen. Dies erreichen wir, indem wir es als IAX2-Peer definieren. Die dazu erforderliche Datei heißt /etc/asterisk/iax.conf (siehe auch „IAX“):

[general]
bindport = 4569           
bindaddr = 0.0.0.0    
disallow=all
allow=ulaw
allow=alaw

[iaxmodem]
type=friend
secret=password
port=4570
host=dynamic
context=fax-out
disallow=all
allow=alaw

Im Abschnitt general sind die globalen IAX2-Daten abgelegt. In diesem Beispiel wird der Bindport auf den Standart für IAX2 4569 gesetzt. Die Bindadresse gibt das Interface an, auf dem IAX2 lauscht, in diesem Falle auf allen Interfaces.

In der Konfiguration für das IAXmodem wird der type auf friend gesetzt, d.h. es sind eingehende und ausgehende Verbindungen erlaubt. secret und port entsprechen der Konfiguration des IAXmodems, der context ist der, der bei einer ausgehenden Verbindung angesprochen wird.

Mit dem Befehl iax2 show peers können wir jetzt in der Asterisk-Console (CLI) unser IAXmodem sehen:

*CLI> iax2 show peers
Name/Username    Host                 Mask             Port          Sta
tus
iaxmodem         127.0.0.1       (D)  255.255.255.255  4570          Unm
onitored
1 iax2 peers [0 online, 0 offline, 1 unmonitored]
*CLI>

Damit Asterisk weiß, was es mit einem ankommenden Fax anstellen soll, müssen wir eine entsprechende Extension schreiben. Das Ziel soll sein, dass ein ankommendes Fax direkt an das Hylafax weitergeleitet wird. In diesem Beispiel gehen wir davon aus, dass alle Faxe über einen SIP-Provider-Anschluss reinkommen. Eine entsprechende Konfiguration in der sip.conf kann wie folgt aussehen (die entsprechenden Einstellungen müssen natürlich an die jeweilige Installation und den SIP-Provider angepasst werden):

[...]

[123456]
type=friend
insecure=very;
nat=yes
username=123456
fromuser=12345
fromdomain=mein-voip-provider.de
secret=secret
host=mein-voip-provider.de
qualify=yes
context=fax-in

[...]

Der entsprechende Context in der extensions.conf sieht dann so aus:

[fax-in]
exten => _X.,1,Dial(IAX2/iaxmodem)

Jetzt wird das Fax vom Asterisk an Hylafax über IAXmodem übergeben und per Mail an den User gesendet, auf den das Mailalias Faxmaster zeigt.

Faxe versenden

Der nächste Schritt ist das Versenden von Faxen. Auch hierfür brauchen wir einen Context (diesmal [fax-out]) in der extension.conf. Wenn das virtuelle IAXmodem ein Fax versenden will, kommt es automatisch in diesen Context. Sollen die Faxe dann über unsere Beispiel-SIP-Verbindung 123456 gefaxt werden, so sieht der Eintrag in der extensions.conf wie folgt aus:

[fax-out]
exten => _X.,1,Dial(SIP/123456/${EXTEN})

Testen können wir das Senden mit sendfax -n -d <Faxnummer> <datei.txt>

debian:~# sendfax -n -d 06912345678 /etc/issue.net

Im CLI sollten wir jetzt Folgendes sehen:

 -- Accepting AUTHENTICATED call from 127.0.0.1:
       > requested format = alaw,
       > requested prefs = (),
       > actual format = alaw,
       > host prefs = (alaw),
       > priority = mine
    -- Executing Answer("IAX2/iaxmodem-3", "") in new stack
    -- Executing Dial("IAX2/iaxmodem-3", "SIP/123456/06912345678") in ne
w stack
    -- Called 123456/06912345678
    -- SIP/123456-0818f630 is making progress passing it to IAX2/iaxmode
m-3
    -- SIP/123456-0818f630 answered IAX2/iaxmodem-3
    -- parse_srv: SRV mapped to host mein-voip-provider.de, port 5060
  == Spawn extension (fax-out, 06912345678, 2) exited non-zero on 'IAX2/
iaxmodem-3'
    -- Executing Hangup("IAX2/iaxmodem-3", "") in new stack
  == Spawn extension (fax-out, h, 1) exited non-zero on 'IAX2/iaxmodem-3
'
    -- Hungup 'IAX2/iaxmodem-3'

Das Kommando faxstat -s gibt während des Sendens folgende Zeilen aus:

debian:~# faxstat -s
HylaFAX scheduler on w077.example.com: Running
Modem ttyIAX0 (123456): Sending job 7

JID  Pri S  Owner Number       Pages Dials     TTS Status
7    127 R   root 06912345678  0:1   0:12
debian:~# 

Fertig! Jetzt können Sie über Asterisk mit Hylafax Faxe versenden und empfangen.

Auf der Hylafax-Webseite http://www.hylafax.org finden Sie viele Hinweise und Howtos, wie Sie Ihren neuen Faxserver möglichst einfach in Ihre bestehende Büroinfrastruktur einbinden.

Empfangene Faxe als E-Mail versenden

Im folgenden wird die die Hylafax Konfiguration so angepast, das der Faxserver eingehende Faxe an eine vorgegebene E-Mail Adresse versendet.[94] Der Empfänger soll das Fax als E-Mail Anhang erhalten.

Dazu müssen in der Datei /var/spool/hylafax/etc/FaxDispatch die folgende Parameter angegeben werden:

SENDTO
Empfänger der Eingehende Faxe.
FILETYPE
Format der Anhänge. Neben dem Format pdf, kann auch tiff oder ps gewählt werden.
SENDTO=fax-incoming@company.com
FILETYPE=pdf

Nachdem die Datei abgespeichert ist, muss der Faxserver mit /etc/init.d/hylafax restart neu gestartet werden.

debian:~# /etc/ini.d/hylafax restart
Starting HylaFAX: faxq hfaxd.
debian:~# 

Testen können wir es, in wir uns z.B selbst ein Fax senden mit sendfax -n -d <Faxnummer> <datei.txt>

debian:~# sendfax -n -d 06912345678 /etc/issue.net

Nach kurze Zeit sollten Sie eine E-Mail in der folgende Form empfangen:

 recvq/fax000000016.tif (ftp://debian:4559/recvq/fax000000016.tif):     
                             
          Sender: IAXmodem
           Pages: 4
         Quality: Normal
            Size: North American Letter
        Received: 2007:06:02 02:49:45
 Time To Receive: 1:58
     Signal Rate: 9600 bit/s
     Data Format: 2-D MMR
   Error Correct: Yes
         CallID1: 2007
         CallID2: IAXmodem 1
     Received On: ttyIAX0
          CommID: 000000033 (ftp://debian:4559/log/c000000033)

[...]


Jun 02 02:51:46.99: [ 3320]: RECV FAX: bin/faxrcvd "recvq/fax000000016.t
if" "ttyIAX0" "000000033" "COMREC received DCN" "2007" "IAXmodem 1" "<NO
NE>" "s"
Jun 02 02:51:47.00: [ 3320]: RECV FAX: end
Jun 02 02:51:47.00: [ 3320]: SESSION END
Jun 02 02:51:47.01: [ 3320]: RECV FAX (000000033): recvq/fax000000016.ti
f from IAXmodem, route to <unspecified>, 4 pages in 2:08

Im Anhang finden Sie dann eine pdf Datei vor die in diesem Beispiel fax000000016.pdf heißen würde.

Fertig! Jetzt können Sie über Asterisk mit Hylafax Faxe versenden und empfangene Faxe nun auch als E-Mail Anhang erhalten.

IAXmodem und Hylafax FAQ

1.1.

Wo legt Hylafax die Empfangene Faxe ab?

Diese liegen im Ordner /var/spool/hylafax/recvq .

1.2.

Kann man anstatt Hylafax auch andere Faxserversoftware einsetzen?

Ja, selbstverständlich. Allerdings hat sich Hylafax sehr bewährt.

1.3.

Gibt es einen einfachen Faxclient für Windows?

Ja, bitte schauen Sie für eine Liste aller Clients (auch für andere Betriebssysteme) auf http://www.hylafax.org/content/Client_Software.

1.4.

Gibt es zu Hylafax ein eigenes FAQ?

Ja, dieses finden Sie unter http://www.hylafax.org/content/FAQ.



[91] Damit ist sichergestellt, dass auch das Kleingedruckte noch gut zu lesen ist. ;-)

[92] Mögen die Leute verzeihen, die schon einmal ein Hylafax getunt haben, aber für den Anfang reichen die Defaults.

[93] Mögen die Leute verzeihen, die schon einmal ein Hylafax getunt haben, aber für den Anfang reichen die Defaults.

[94] Wir setzen einen richtig konfigurierten MTA (z.B. Sendmail oder Postfix) voraus.