Faxy

Martin Vojta, xvojta@fi.muni.cz


Obsah


Úvod

Posílání faxů v UN*Xu je podobné tisku. Uživatelé posílají faxy na server (i vzdálený), tam se řadí do fronty a jsou postupně odesílány. Faxy mohou být v různých formátech, server si je sám převede do faxového formátu g3. Odesílání je možné řídit s ohledem na provolané peníze, prioritami atd... Vše co potřebujeme je telefoní linka a faxmodem. Jestli náš modem umí funkce pro faxování zjistíme příkazem AT+FCLASS=?. Je třeba aby v odpovědi bylo alespoň jedno z 1, 1.0, 2, 2.0.
Přenášenými daty je bitmapa obrázku (stránky papíru). V rámci jednoho spojení je možno přenést několik stránek. Komunikace mezi modemem a počítačem je vedena také ve dvou režimech - datovém a příkazovém. Mezi těmito módy se přepíná automaticky v průběhu přenosu.

Standardy

Pro faxování potřebujeme několik druhů standardů:

Příjem faxů

Pro příjem faxů musí nějaký program poslouchat na portu, na kterém je připojen modem (co interni?). Pokud je že příchozí volání fax (to se dozví přímo od faxmodemu), uloží ho do fronty příchozích faxu (např. /var/spool/fax/incoming). Takto uložený fax je možné prohlížet programem viewfax, zkonvertovat do jiného formátu programy z baličků netpbm a netpbm-progs. Například postscript vytvoříme takto:
 g3topbm fax1.g3 |pnmtops > fax1.ps
Často se faxy ukládají jako obrázky ve formátu tiff. Lze provádět automatické třídění, například podle čísla odesilatele, linky, z které fax přišel..

Odesílání

Při odesílání je nejprve potřeba dokument převést na bitmapu podle standardu Group - k tomu opět slouží programy z baliku netpbm nebo ghostscript. Ten se uloží do fronty a podle pravidel faxového serveru odešle. Při tom je možné vytvořit zprávu o průběhu - např. doba telefoního spojení, počet stran, případné chyby.

Programy

Všechny dostupné programy se skládají z několika částí - obdoba programu getty pro modem, program pro vlastní faxování a někdy i pro převod z/do formátu g3. Většinou obsahují utility pro vypis stavu serveru, vymaz faxu z fronty a změnu atributů faxu ve frontě.

mgetty+sendfax

Tento balík je asi nejrozšířenejší, dodává se s většinou distribucí. Nevýhodou je, že umí pracovat jen s modemy CLASS 2 a 2.0. Komunikaci s modemem řeší program mgetty, jeho konfigurační soubor je /etc/mgetty+sendfax/mgetty.config. Skládá se ze dvou částí: globální obsahuje fax-id = číslo faxu, speed = rychlost mezi PC a modemem, fax-owner, fax-group, port-mode = nastavení práv, fax-only = yes/no - modem je/není jen pro fax. Lokální čast se opakuje pro každý modem, upřesnuje jeho nastavení a je vní možné předefinovat nastavení globální sekce:
port ttyS2
  debug 8
  init-chat "" \d\d\d+++\d\d\dAT&FS2=255 OK ATN3S0=0S13.2=1 OK 
  statistics-chat "" AT OK ATI2 OK
  statistics-file /var/log/statistics.ttyS2
  modem-type cls2
Posílaní faxů řeší program sendfax, jeho konfigurace je v souboru /etc/mgetty+sendfax/sendfax.config, opět se skládá z globální sekce a sekcí specifických pro každý modem. globální sekce:
fax-devices modem
fax-id číslo faxu
dial-prefix ATDP
max-tries počet pokusu pro poslání faxu, např 3
max-tries-continue určuje, jestli po naúspěšném max-tries pokusu pokračovat nebo skončit
sekce modemu:
port ttyS1
 modem-handshake AT&K4\r
 modem-type cls2

Hylafax

Hylafax byl původně komerční produkt vyvinutý firmou sgi, nyní je dostupný zdarma včetně zdrojových kódů. Umí pracovat i s modemy CLASS 1, doporučují se ale modemy CLASS 2 a 2.0 Nejjednodušší instalace je z binárního balíčku. Konfigurace se provede buď editací souboru config (globální nastavení), config.ttyXXX (nastavení modemu ttyXXX), hosts.hfaxd (počítače, ze kterých faxserver přijíma požadavky na odeslání faxu) nebo programem faxsetup a faxaddmodem. V našich (telekomunikačních) podmínkách bude nutné mít v souboru config.ttyXXX něco jako:
ModemResultCodesCmd:    ATQ0X3
aby modem nebyl tak přísný při rozlišení oznamovacího tónu.

Server se jmenuje hfaxd, klienti k němu pristupují protokolem TCP na portu 4559. Nejjednodušším UN*Xovým klientem je sendfax, jeho použití je "sendfax -d<číslo příjemce> dokument.ps". Jak je videt, hylafax sám (pokud je to třeba) provede konverzi do formátu g3.

efax

Efax se skládá z programu na faxování a na konverzi formátů g3 a tiff. Pracuje i s modemy CLASS 1.

Faxy ze stanic pod Windows

Z Windows mužeme k faxserveru přistupovat nekolika způsoby. Nejjednodušší cesta je v případe Hylafaxu - pro nej je napsána řada klientů, například Cypheus - stačí nainstalovat, navíc vyžaduje Adobe Acrobat Reader a tiskárnu připojenou na virtuální port RPT. Cokoliv se na této tiskárně vytiskne se pošle hylafax serveru. Dalším programem je WHFC. Funguje stejně jako Cypheus, navíc je možné přímo z nej posílat postscriptové soubory.
Další možnost je vytvořit na počítači s faxserverem síťovou tiskárnu a tu sdílet přes sambu. Nevýhodou je, že není jak poslat číslo příjemce - to se řeší nasledným dotazem buď přes www rozhraní nebo programem, ktery se nás na žádost serveru na číslo zeptá. Další možnost je zakomponovat číslo přímo do dokumentu a na serveru ho vyextrahovat. To lze jen u nekterých typů dokumentů.

Odkazy a další dokumentace