Rozdział 60.
HylaFAX
Tim Parker
W tym rozdziale:
Instalacja programu HylaFAX
Wysyłanie faksów
Odbieranie faksów
Możliwość wysłania faksem dokumentu, który został napisany w ulubionym edytorze tekstów jest jednym z bardziej użytecznych aspektów pracy z komputerem. Pozwala zaoszczędzić czas, papier i wysiłek konieczny do wydrukowania kopii dokumentu, załadowania jej do faksu i ręcznego wysłania. Programy faksujące pozwalają zarówno wysyłać faksy z poziomu dowolnego programu umożliwiającego drukowanie, jak i przyjmować nadchodzące faksy.
Choć najwydajniejsze programy obsługi faksu dla komputerów klasy PC przeznaczone są dla systemu Windows, istnieje również kilka programów tego typu przeznaczonych dla Linuxa i systemów UNIX-owych. Komercyjne programy do obsługi faksów można zakupić u wielu dostawców oprogramowania, ale na szczęście kilka z nich jest dostępnych za darmo. Jeśli planujesz regularne używanie systemu linuxowego, możesz rozpatrzyć możliwość zainstalowania jednego z tych programów.
Najczęściej używanym programem faksującym dla systemu Linux jest darmowy program HylaFAX, napisany przez Sama Leffera. Nie jest on jedynie imitacją produktów komercyjnych - jest to w pełni funkcjonalny i konkurencyjny w stosunku do komercyjnych zintegrowany system przyjmowania i wysyłania faksów. Program HylaFAX do obsługi obrazów faksów wykorzystuje system GhostScript - jeśli chcesz dowiedzieć się o nim czegoś więcej, przeczytaj (o ile jeszcze tego nie zrobiłeś) rozdział 24. „Ghostscript i Ghostview”.
Instalacja programu HylaFAX
Program HylaFAX wchodzi w skład większości dystrybucji Linuxa rozprowadzanych na płytach CD-ROM. Można go również załadować w wielu węzłach FTP i WWW. Możesz też natknąć się na starszy program FlexFAX, na którym został oparty program HylaFAX. Jeśli możesz wybierać, zainstaluj HylaFAX. Do instalacji większości wersji programu HylaFAX niezbędny będzie kompilator języka C++ (na przykład kompilator GCC dostarczany wraz z większością wersji Linuxa), ponieważ program ten jest rozprowadzany tylko w formie kodu źródłowego.
|
Program HylaFAX jest dostępny w większości węzłów FTP, ale węzłem macierzystym jest ftp.sgi.com. W którymś z katalogów powinny znajdować się informacje dotyczące tego programu. Dokumentacja programu HylaFAX jest dostępna także w węzłach FTP i na stronie WWW pod adresem http://www.sgi.com. Jeśli chcesz obejrzeć dodatkowy opis programu HylaFAX i dokumentację dotyczącą jego rozwoju, zajrzyj na stronę http://www.vix.com/hylaFAX |
Skompresowaną lub spakowaną programem tar wersję pliku zawierającego kod źródłowy programu HylaFAX należy rozpakować do jakiegoś utworzonego wcześniej katalogu. Jeśli na przykład posiadasz w katalogu /tmp plik o nazwie HylaFax-v4.0-tar.gz, powinieneś skopiować go do katalogu docelowego i rozpakować wydając polecenia:
mkdir /usr/fax
cd /usr/fax
cp /tmp/ HylaFax-v4.0-tar.gz .
gunzip HylaFax-v4.0-tar.gz
tar xf HylaFax-v4.0-tar
Do wykonania tych poleceń niezbędne będą uprawnienia użytkownika root. Oczywiście zamiast katalogu /tmp należy podstawić faktyczną ścieżkę dostępu do pliku zawierającego kod źródłowy. Jeśli nie odpowiada Ci nazwa katalogu docelowego (/usr/fax), możesz zmienić również ją.
Kompilacja programu HylaFAX
Po rozpakowaniu wszystkich plików do katalogu docelowego należy uruchomić kompilator języka C++, który wygeneruje plik wykonywalny. Wcześniej warto jednak przejrzeć plik z informacjami pomocniczymi, który zwykle ma nazwę README i przechowywany jest w podkatalogu port/linux - czasem zawarte są w nim istotne dane. Aby skompilować program HylaFAX, należy wydać następujące polecenia (będąc zalogowany jako użytkownik root):
configure
make clean
make install
Po wydaniu poleceń configure i make trzeba będzie podać jeszcze kilka dodatkowych informacji - omówimy je za chwilę. Po wydaniu polecenia configure na ekranie wyświetlany jest szereg komunikatów dotyczących katalogów, których program HylaFAX będzie używał w czasie pracy.
HylaFAX configuration parameters are:
Directory for applications: /usr/local/bin
Directory for lib data files: /usr/local/lib/fax
Directory for lib executables: /usr/local/lib/fax
Directory for servers: /usr/local/etc
Directory for manual pages: /usr/local/man
Directory for documentation: /usr/local/doc/HylaFAX
Directory for spooling: /usr/spool/fax
Type of uucp lock files: /usr/spool/uucp
Mode for uucp lock files: 0444
Type of PostScript imager: gs
PostScript imager program: /usr/local/bin/gs
Default page size: North American Letter
Default vertical res (lpi): 98
Directory for font metrics: /usr/local/lib/afm
Location of sendmail program: /usr/lib/sendmail
Are these ok [yes]?
Nie należy modyfikować domyślnych lokalizacji katalogów, ponieważ są one używane również przez wiele innych aplikacji linuxowych. Po wydaniu polecenia make należy odczekać kilka minut na zakończenie kompilacji, ponieważ składa się ona z kilku etapów i wymaga przetworzenia wielu plików rozsianych w całym systemie. Po zakończeniu procedury instalacyjnej powinieneś upewnić się, że katalog /usr/local/bin/fax istnieje i zawiera odpowiednie pliki - tylko wówczas będzie można używać programu HylaFAX.
Dodawanie modemów
Następnym krokiem jest podanie programowi HylaFAX informacji o modemach. Można to zrobić za pomocą skryptu o nazwie faxaddmodem, który poprowadzi Cię krok po kroku przez ten proces. HylaFAX potrafi poprawnie współpracować z większością faksmodemów zgodnych ze standardami Class 1 i Class 2, co w praktyce oznacza przeważająca większość dostępnych na rynku modemów umożliwiających obsługę faksu. Po uruchomieniu, skrypt faxaddmodem zadaje serię pytań; w większości przypadków odpowiedzi domyślne są prawidłowe (skrypt ten również należy uruchamiać posiadając uprawnienia użytkownika root):
# faxaddmodem
Verifying your system is set up properly for fax service...
There is no entry for the fax user in the password file.
The fax software needs a name to work properly; add it [yes]?
Added user "fax" to /etc/passwd
Added fax user to "/etc/passwd.sgi".
There does not appear to be an entry for the fax service in
either the yellow pages database or the /etc/services file;
should an entry be added to /etc/services [yes]?
There is no entry for the fax service in "usr/etc/inetd.conf";
should one be added [yes]?
Poking inetd so that it rereads the configuration file.
There does not appear too be an entry for the FaxMaster in
either the yellow pages database or the /usr/lib/aliases file;
should an entry be added to /usr/lib/aliases [yes]?
Users to receive fax-related mail [root]?
Rebuilding /usr/lib/aliases database.
46 aliases, longest 81 bytes, 923 bytes total
Done verifying system setup.
Serial port that modem is connected to []? cua1
Ok, time to set up a configuration file for the modem. The manual
page config(4F) may be useful during this process. Also be aware
that at any time you can safely interrupt this procedure.
No existing configuration. Let's do it from scratch.
Phone number of fax modem []? +1.613.838.1234
This is the phone number associated with the modem being configured.
It is passed as an "identity" to peer fax machines and it may
also appear on tag lines created by the fax server.
The phone number should be a complete international dialing specification
in the form +<country code> <area part>.
Any others characters included for readability are automatically
removed if they might cause problems.
Area code []? 613
Country code [1]?
Long distance dialing prefix [1]?
International dialing prefix [011]?
Tracing during normal server operation [1]?
Tracing during send and receive sessions [11]?
Protection mode for received fax [0600]?
Rings to wait before answering [1]?
Modem speaker volume [off]?
The server configuration parameters are
FAXNumber: +1.613.838.1234
AreaCode: 613
CountryCode: 1
LongDistancePrefix: 1
InternationalPrefix: 011
ServerTracing 1
SessionTracing 11
RecvFileMode 0600
RingsBeforeAnswer: 1
SpeakerVolume off
Are these ok [yes]?
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).
Hmm, this looks like a class 1 modem.
Product code is "1444".
Modem manufacturer is "USRobotics".
Modem model is "Courier".
Using prototype configuration file config.usr-courier...
The modem configuration parameters are:
ModemRate: 19200
ModemFlowControl: xonxoff
ModemFlowControlCmd: &H2
ModemSetupDTRCmd: S13=1&D2
ModemSetupDCDCmd: &C1
ModemDialCmd: DT%s@
ModemResultCodesCmd: x4
Are these ok [yes]?
Startup a fax server for this modem [yes]?
/usr/etc/faxd -m /dev/cua1
Jedyne punkty, na które należy zwrócić uwagę, to nazwa portu, do którego podłączony jest modem (użyty w przykładzie port /dev/cua1 to drugi port szeregowy, ponieważ do pierwszego zwykle dołączona jest mysz), oraz numer telefonu i kod kraju określający linię, która ma być obsługiwana. Zauważ, że program HylaFAX tworzy nowe konto użytkownika o identyfikatorze fax, mającego ten sam numer identyfikacyjny (UID) co użytkownik uucp, ponieważ modemy są zwykle współużytkowane przez oba te programy. Program HylaFAX umożliwia konfigurację i używanie kilku różnych modemów, jeśli do systemu podłączonych jest kilka linii telefonicznych.
Program HylaFAX używa procesu faxd.recv, który umożliwia aplikacjom klienckim łączenie się z serwerem HylaFAX. Program faxd.recv jest zwykle uruchamiany przez proces inetd w momencie, gdy system jest uruchamiany w trybie wielodostępnym. Program konfiguracyjny prawdopodobnie sam dodał odpowiednie wpisy do plików startowych inetd. Jeśli nie, powinieneś dopisać do pliku inetd wiersz o następującej treści:
fax stream tcp nowait fax /usr/libexec/fax.d/faxd.recv faxd.recv
Aby uruchomić program rezydentny HylaFAX, należy wydać polecenie (podstawiając właściwą dla systemu nazwę portu, do którego podłączony jest modem):
/usr/etc/faxd -m /dev/cua1
Aby uruchamiać ten program automatycznie podczas startu systemu, należy dopisać to polecenie do pliku /etd/rc.d.
Do wysyłania i odbierania faksów przez system HylaFAX używany jest ten sam program rezydentny, faxd. Podczas odbierania faksu nie ma możliwości przerwania tego procesu - można co najwyżej wyłączyć modem.
Wysyłanie faksu
Aby wysłać faks za pomocą programu HylaFAX, należy uruchomić program sendfax. Zwykle za jego pomocą wysyła się dokumenty postscriptowe (lub ghostscriptowe) albo grafiki w formacie TIFF. Niektóre inne formaty plików (na przykład pliki ASCII czy pliki programu troff) są przed wysłaniem automatycznie konwertowane przez program sendfax do odpowiedniej postaci. W dokumentacji dostarczonej wraz z każdą wersją programu HylaFAX znajdują się dokładne dane co do obsługiwanych formatów plików.
Opcje programu sendfax
Jak widać w tabeli 60.1, w wierszu poleceń programu sendfax można określić wiele różnych opcji. Poszczególne opcje można również łączyć ze sobą.
Tabela 60.1. Opcje programu sendfax dostępne z wiersza poleceń
Opcja programu sendfax |
Znaczenie |
-c |
Komentarz |
-d |
Określenie numeru telefonu |
-f |
Nadawca faksu |
-h |
Nazwa systemu |
-i |
Identyfikator, który zostanie umieszczony w faksie |
-k |
Czas, przez jaki należy ponawiać próby połączenia |
-l |
Tryb niskiej rozdzielczości |
-m |
Tryb średniej rozdzielczości |
-n |
Zapobiega wysyłaniu okładki |
-p |
Załącza numerowanie stron i okładki |
-r |
Nazwy odnośników |
-s |
Nazwa rozmiaru papieru (domyślnie 8.5x11) |
-t |
Liczba prób nawiązania połączenia |
-v |
Wyświetlanie informacji diagnostycznych na ekranie |
-x |
Nazwa firmy, do której wysyłany jest faks |
-y |
Adres odbiorcy |
-D |
Informowanie odbiorcy pocztą elektroniczną o nadejściu faksu |
-R |
Informowanie nadawcy pocztą elektroniczną o konieczności ponownego wysłania faksu |
Przy wysyłaniu faksu program HylaFAX automatycznie generuje okładkę. Umieszczane są na niej informacje podane w wierszu poleceń przy uruchamianiu programu sendfax. Domyślnie używany jest tryb niskiej rozdzielczości (98 linii na cal), chyba że wartość ta zostanie zmieniona przez podanie opcji -m w wierszu poleceń (co daje 196 linii na cal - w programie HylaFAX rozdzielczość ta nazywana jest średnią). Program HylaFAX w razie niemożności nawiązania połączenia będzie próbował dodzwonić się do adresata przez 24 godziny - czas ten można zmienić podając inną wartość po opcji -k.
Okładki
Jeśli chcesz, by wysyłane okładki miały inną niż domyślna zawartość, powinieneś użyć polecenia faxcover. Pozwala ono utworzyć stronę w formacie PostScript, która będzie dołączana na początku każdego wychodzącego faksu.
Program faxcover również obsługuje kilka opcji podawanych z wiersza poleceń - zostały one zebrane w tabeli 60.2. Opcje te mogą być łączone ze sobą w dowolnym porządku.
Tabela 60.2. Opcje programu faxcover dostępne z wiersza poleceń
Opcja programu faxcover |
Znaczenie |
-c |
Komentarz |
-C |
Nazwa pliku szablonu |
-f |
Identyfikator nadawcy |
-l |
Adres odbiorcy |
-n |
Numer faksu nadawcy |
-p |
Liczba stron |
-r |
Nazwy odnośników |
-s |
Nazwa rozmiaru papieru |
-t |
Odbiorca |
-v |
Numer docelowej linii głosowej |
-x |
Nazwa firmy odbierającej faks |
Odbieranie faksu
Jeśli program HylaFAX będzie odbierał przychodzące faksy, będą one umieszczane w podkatalogu recvq katalogu, w którym zainstalowany jest program HylaFAX. Wszystkie nadchodzące faksy są zapisywane w postaci plików TIFF. Dostęp do katalogu z odebranymi faksami może być regulowany przez administratora systemu.
Po odebraniu faksu, HylaFAX przesyła go do użytkownika o identyfikatorze ustalanym na podstawie wartości zmiennej FaxMaster. Można również napisać skrypt, który sprawdzi, do którego z użytkowników skierowany jest dany faks i poinformuje go o fakcie jego nadejścia pocztą elektroniczną lub też wyśle faks prosto do kolejki drukarki.
Do odbierania faksów w systemie HylaFAX używany jest proces o nazwie faxrcvd. Program ten jest na tyle „sprytny”, że potrafi sam ocenić, czy nadchodzące połączenie jest połączeniem głosowym, czy też jest to połączenie mające na celu przesłanie faksu. Dzięki takiemu rozwiązaniu możliwe jest używanie tego samego modemu do odbierania faksów i połączeń modemowych pomiędzy systemami, które są normalnie obsługiwane przez uucp lub proces getty.
Podsumowanie
W tym rozdziale omówiliśmy zagadnienia związane z konfigurowaniem i używaniem systemu HylaFAX, który jest prawdopodobnie najbardziej wydajnym programem obsługi faksu przeznaczonym dla systemów linuxowych, pozostając przy tym aplikacją całkowicie darmową.
Jeśli chcesz dowiedzieć się czegoś więcej o interpreterze Ghostscript, który bywa użyteczny do przeglądania i tworzenia dokumentów postscriptowych, przejdź do rozdziału 24. „Ghostscript i Ghostview”.
Informacje dotyczące konfigurowania modemów przedstawione są w rozdziale 33. „Urządzenia”.
Rozdział 45. „Kopie zapasowe” omawia tworzenie kopii zapasowych, dzięki którym można uniknąć konieczności ponownej konfiguracji programu HylaFAX w razie awarii systemu.
880 Część VIII ♦ Programowanie dla zaawansowanych
880 E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\60.DOC
E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\60.DOC 873
Rozdział 60. ♦ HylaFAX 879