root
ausgeführt.debian:~#aptitude -y install g++ libtiff-tools libtiff4 libtiff4-dev
[...]
Richte zlib1g-dev ein (1.2.2-4.sarge.2) ... Richte libtiff4-dev ein (3.7.2-7) ... debian:~#
debian:~# cd /usr/src/
debian:/usr/src#
debian:/usr/src#wget http://downloads.sourceforge.net/iaxmodem/iaxmodem-1.2.0.tar.gz
[...]
debian:/usr/src#tar -xvzf iaxmodem-1.2.0.tar.gz
iaxmodem-1.2.0/ iaxmodem-1.2.0/iaxmodem.c iaxmodem-1.2.0/iaxmodem.init.debian[...]
debian:/usr/src#
debian:/usr/src# cd iaxmodem-1.2.0
debian:/usr/src/iaxmodem-1.2.0#
debian:/usr/src/iaxmodem-1.2.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[...]
debian:/usr/src/iaxmodem-1.2.0#
iaxmodem
kopieren
wir zum Schluss in das Verzeichnis
/usr/bin/:
debian:/usr/src/iaxmodem-1.2.0# cp iaxmodem /usr/bin/
debian:/usr/src/iaxmodem-1.2.0#
/etc/iaxmodem/
.
Dieses müssen wir jetzt anlegen:debian:/usr/src/iaxmodem-1.2.0#cd
debian:~#mkdir /etc/iaxmodem
debian:~#
debian:~#cd /etc/iaxmodem/
debian:/etc/iaxmodem#touch ttyIAX0
debian:/etc/iaxmodem#
device
/dev
angelegt wird. Über dieses
Device kann Hylafax später auf das Modem zugreifen. Der Name des
Devices ist frei wählbar, wir halten uns aber an die allgemeinen
Konventionen und nennen es ttyIAX0
–
äquivalent zum Device für die serielle Schnittstelle.owner
user
:group
.
Es sollte derselbe User und dieselbe Gruppe sein, unter der
Hylafax laufen soll.port
refresh
server
127.0.0.1
.peername
secret
codec
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.vi
oder
vim
) 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
init
-Prozess.
Also fügen wir den folgenden Eintrag am Ende der Datei
/etc/inittab
hinzu (in vi
oder
vim
):IA00:23:respawn:/usr/bin/iaxmodem ttyIAX0Dabei ist
ttyIAX0
der Name der Konfigurationsdatei unter
/etc/iaxmodem/
.getty
, der am
IAXmodem auf Verbindungen lauscht. Das erreicht man ganz einfach durch
einen weiteren Eintrag in der Datei
/etc/inittab
:mo00:23:respawn:/usr/local/sbin/faxgetty ttyIAX0
/var/log/iaxmodem
an und erstellen die
Logdateien ttyIAX0
und
iaxmodem
:debian:~#mkdir /var/log/iaxmodem
debian:~#cd /var/log/iaxmodem/
debian:/var/log/iaxmodem#touch ttyIAX0
debian:/var/log/iaxmodem#touch iaxmodem
debian:/var/log/iaxmodem#
init
auch das IAXmodem richtig startet.debian:~#shutdown -r now
[...]
The system is going down for reboot NOW! debian:~#
debian:~#aptitude -y install hylafax-server
[...]
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]?Enter
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]?Enter
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]?Enter
Done verifying system setup. Updating /etc/hylafax/setup.cache from /var/spool/hylafax/etc/setup.cache. Updating /etc/hylafax/setup.modem from /var/spool/hylafax/etc/setup.modem. /var/spool/hylafax Starting HylaFAX: faxq hfaxd faxgetty. debian:~#
faxsetup
auf:debian:~#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]?Enter
LocalIdentifier
. Das ist der Text, der auf jedem gesendeten
Fax in der obersten Zeile steht.Enter
.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) command.
Do you want to run faxaddmodem to configure a modem [yes]?
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
.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.
49
für Deutschland) eingeben. 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
folgt die Faxnummer mit Vorwahl. Dann kommt eine Null für Ferngespräche
und zwei Nullen für internationale Gespräche. Am Schluss bestätigen Sie
mit yes
.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/hylafax) [""]? 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 [""]?
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
Modem-Erkennung: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]?
yes
.no
beantwortet, da es kein weiteres Modem zu
konfigurieren gibt. Die zweite Frage wird mit
enter
bestätigt, was das
Neustarten 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:~#
/etc/asterisk/iax.conf
(siehe auch Abschnitt 8.7, „IAX“):[general] bindport = 4569 bindaddr = 0.0.0.0 disallow = all allow = alaw allow = ulaw [iaxmodem] type = friend secret = password port = 4570 host = dynamic context = fax-out disallow = all allow = alaw
general
sind die globalen IAX2-Daten
abgelegt. In diesem Beispiel wird der Bind-Port auf den Standard für IAX
4569 gesetzt. Die Bind-Adresse gibt das Interface an, auf dem IAX
lauscht; in diesem Falle lauscht es auf allen Interfaces.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.debian:~#asterisk -rx 'reload'
debian:~#asterisk -r
*CLI>iax2 show peers
Name/Username Host Mask Port Status iaxmodem 127.0.0.1 (D) 255.255.255.255 4570 Unmonitored 1 iax2 peers [0 online, 0 offline, 1 unmonitored] *CLI>
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 = port,invite nat = yes username = 123456 fromuser = 123456 fromdomain = mein-voip-provider.de secret = geheim host = mein-voip-provider.de qualify = yes context = fax-in[...]
extensions.conf
sieht dann so aus:[fax-in] exten => _X.,1,Dial(IAX2/iaxmodem)
faxmaster
zeigt.[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})
sendfax -n -d
<Faxnummer> <datei.txt>:
debian:~# sendfax -n -d 06912345678 /etc/issue.net
-- 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 new stack -- Called 123456/06912345678 -- SIP/123456-0818f630 is making progress passing it to IAX2/iaxmodem-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'
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:~#
/var/spool/hylafax/etc/FaxDispatch
die folgende
Parameter angegeben werden:SENDTO
FILETYPE
pdf
kann auch tiff
oder ps
gewählt
werden.SENDTO=fax-incoming@company.com FILETYPE=pdf
/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 mit
sendfax -n -d <Faxnummer> <datei.txt>
ein
Fax senden:debian:~# sendfax -n -d 06912345678 /etc/issue.net
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.tif" "ttyIAX0" "000000033" "COMREC received DCN" "2007" "IAXmodem 1" "<NONE>" "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.tif from IAXmodem, route to <unspecified>, 4 pages in 2:08
fax000000016.pdf
heißen würde.F: | Wo legt Hylafax die empfangenen Faxe
ab? |
A: | Diese liegen im Ordner
/var/spool/hylafax/recvq . |
F: | Kann man anstatt Hylafax auch andere
Faxserversoftware einsetzen? |
A: | Ja. Allerdings hat sich Hylafax sehr bewährt. |
F: | Gibt es einen einfachen Fax-Client für
Windows? |
A: | Ja, bitte schauen Sie für eine Liste aller Clients (auch
für andere Betriebssysteme) unter http://www.hylafax.org/content/Client_Software
nach. |
F: | Gibt es zu Hylafax ein eigenes
FAQ? |
A: | Ja, dieses finden Sie unter http://www.hylafax.org/content/FAQ. |