Faxy

Pavel Možný, xmozny@fi.muni.cz


Obsah:


Formáty faxových stránek

Faxová stránka je ve formátu G3 (Group 3), který je definován standardem ITU T.4. Existují dva druhy G3 souborů: S oběma typy rozlišení umí pracovat programy g32pbm a pbm2g3 pro převod do/z formátu pbm, které jsou umístěny v rpm balíku mgetty-sendfax. O zařazování jednotlivých faxů do fronty se stará program faxspool, který umí rozlišit mezi různými typy souborů (ascii, dvi, postscript, atd.), tyto převést do požadovaného formátu G3 a zařadit do fronty, odkud je vybírají a odesílají pomocí sendfax programem faxrunqd.

Komprese

Ve formátu G3 se používá zjednodušená varianta Huffmanova kódování. Princip je založen na tom, že se na jednom řádku kódují shluky dobů. Každý řádek faxu se kóduje samostaně.

Generování stránek

Stránky ve formátu G3 lze generovat několika způsoby, např. pomocí Ghostscriptu nebo pbmtext s následným převodem pomocí pbm2g3.

gs -sDEVICE=xxx -sOutputFile=fax.%d fax.ps

kde xxx může být buď dfaxhigh nebo dfaxlow a nebo

cat soubor.txt | pbmtext >soubor.pbm
pbm2g3 soubor.pbm >soubor.g3


Příjem faxů přes mgetty

Program mgetty, který poslouchá na modemové lince, se od faxmodemu dozví, zda příchozí volání ja fax a podle toho s ním naloží. Tedy příjme, zkontroluje a po stránkách uloží do souborů do adresáře /var/spool/fax/incoming. Program lze konfigurovat pomocí souboru /etc/mgetty+sendfax/mgetty.config.

Některé volby mgetty.config:

diskspace - vyhradí místo na svazku, na kterém je umístěn adresář FAX_SPOOL_IN. Implicitní velikost je 1MB.

fax-server-file - soubor, který fax pošle pollingen klientům. Musí být ve formátu G3 a pokud se má poslat souborů více, musí zde v textovém souboru umístit jejich seznam.

notify - e-mailová adresa, na kterou se pošle potvrzení o přijetí faxu.

fax-id <číslo faxu> - telefonní číslo faxu
fax-only yes|no - nastaví modem pouze na faxová spojení

fax-owner uid - nastavení vlastníka faxu
fax-group gid - nastavení skupiny vlastníka
fax-mode perms - nastavení přísupových práv, pod jakými se budou ukládat příchozí faxy


Tisk a prohlížení faxových stránek

Tisknout příchozí faxy lze rovněž nekolika způsoby. Např. fax ve formátu G3 převedeme pomocí g32pbm do formátu pbm a pak třeba do postscriptu (pomocí pbmtops), který pak vytiskneme na tiskárně. Příkaz pro tisk pak může vypadat následovně:

g32pbm fax.g3 | pbmtops | lp

nebo pokud chceme přímo tisknout na laserové tiskárně Hawlet Packard, pak můžeme použít prográmek g3tolj.

Pro prohližení faxů pod X-windows existuje program faxwiev, který umožňuje zmenšování, zvětšování, rotace atd.


Generování stránek lokálně

Jedná se o fyzické generování stránek a jejich následné odeslání přes modem. Toto zabezpečuje program sendfax. Jeho konfiguraci lze nastavit v souboru /etc/mgetty+sendfax/sendfax.config. Program můžeme spouštět příkazem

sendfax -n tele_číslo faxovaná_stránka

kde -n znamená, že fax se odešle v normálním rozlišení 204x98 dpi. Abychom nemuseli každý fax odesílat ručně, tak existuje démon faxrunqd, který prochází frontu faxů (/var/spool/fax/outgoing) zařazených k odeslání programem faxspool a snaží se je automaticky pomocí sendfaxu odeslat. Podobně jako u tiskáren existuje program faxq, který vypíše všechny faxy zařazené ve frontě a program faxrm, který fax z fronty odstraní.


HylaFAX

HylaFAX je další systém pro odesílání faxů, který funguje na principu klient-server. hfaxd - server je spuštěn na počítači s faxmodemem a ostatní stanice předávají své faxy k odeslání tomuto serveru pomocí klientů protokolem podobným ftp. Tito klienti jsou dostupní jak pod Linux, tak i pod Windows a Mac.

Faxy ze stanic pod Windows

Z prostředí Windows můžeme faxovat dvojím způsobem. První je přímo pomocí HylaFAX klientů, pokud používáme systém HylaFAX pro odesílání faxů. Druhý se dá realizovat pomocí SAMBY. Vytvoříme síťovou tiskárnu, pro uživatele, kteří budou moci faxovat, a napíšeme jí vhodný filtr, který daný faxovaný dokument předá programu faxspool. Jako odpověď uživateli můžeme poslat zprávu přes winpopup, že jeho úloha byla zařazena do fronty. Jediný problém, který nás potká, je, jak předat faxspoolu telefonní číslo příjemce faxu. Číslo můžeme buď skrýt v textu faxu a potom ve filtru zase vyseparovat a předat faxspoolu a nebo můžeme použí program respond přes nehož si vyžádáme číslo příjemnce a to pak doplníme do faxspoolu. Tento program běží na pracovní stanici.

Použitá dokumentace

Manuálové stránky z balíku mgetty-sendfax
Mgetty+Sendfax
Dokumentace HylaFAX