Gestire i fax con Linux

Che cos'è un fax server e come si configura in un sistema Linux con il software open source hylafax.



[ZEUS News - www.zeusnews.it - 05-07-2003]

Un fax server è un PC al quale è collegato un modem in grado di ricevere e spedire fax tramite linea telefonica. Quali requisiti deve avere il PC su cui girerà il fax server? Non è necessario hardware particolarmente potente: nelle nostre prove abbiamo utilizzato un Celeron a 300 MHz e 32 Mb di RAM. Il modem che ho usato è un modello USRobotics Sportster Flash 33.6, anche in questo caso non stiamo parlando di hardware costoso o particolare. A livello software, tutto ciò che ci serve è una distribuzione Linux. Gli step che descriverò fanno riferimento a una RedHat 7.3, ma del pacchetto che andremo a installare esistono binari per le più diffuse distribuzioni Linux. Per un elenco completo date un'occhiata alla documentazione ufficiale di hylafax.

Installare il pacchetto rpm di hylafax

Bisogna prendere alcune precauzioni prima di installare hylafax. Assicuriamoci che il pacchetto mgetty-sendfax non sia installato e, in caso contrario, disinstalliamolo:
# rpm -e mgetty-sendfax

Assicuriamoci poi di aver installato i pacchetti libtiff-3.5.5 o superiore, ghostscript-5.50 o superiore, ghostscript-fonts-5.50 o superiore; se non abbiamo questi pacchetti (rintracciabili sui CD della ditribuzione RedHat) l'Rpm di hylafax non si installerà. Colleghiamoci all'area FTP del sito hylafax e scarichiamo il pacchetto relativo alla nostra distribuzione per poi installarlo con questo comando:
# rpm -Uvh hylafax-4.1.6-1rh7.i386.rpm

Se non ci sono problemi di dipendenza da altri pacchetti, tutto dovrebbe filare liscio come l'olio.

Configurare il modem

Ora che il nostro pacchetto è installato, possiamo procedere alla configurazione del modem. Intanto va identificata la porta seriale (o COM) sulla quale questo è connesso, nel nostro caso supponiamo che questa sia /dev/ttyS0. Una volta stabilito questo possiamo lanciare il comando:
# faxsetup

Da qui in poi dovremo rispondere ad alcune domande, per la maggior parte delle quali converrà confermare i valori suggeriti (premendo invio) in particolare, Le opzioni che ci interessa settare diversamente da quanto suggerito sono:
- Country code per cui va indicato 39 (che è il numero internazionale dell'Italia);
- Area code per cui va indicato il prefisso (02 per Milano ad esempio);
- Long distance dialing prefix e International dialing prefix da settare a 0 (in Italia non vengono usati);
- Dial string rules file per cui va indicato etc/dialrules.europe, in quanto contiene le opzioni personalizzate per gli utenti europei.

Infine, nel riepilogo dovremmo ottenere qualcosa di simile a questo:
The non-default scheduler parameters are:
CountryCode: 39
AreaCode: 02
LongDistancePrefix: 0
InternationalPrefix: 0
DialStringRules: etc/dialrules.europe
Are these ok [yes]?

Premendo "invio", verrà creata la configurazione su file. La successiva domanda chiede di avviare il demone hylafax, se rispondiamo sì questo verrà avviato.

La prima parte della nostra configurazione è terminata. Possiamo procedere premendo invio alla richiesta di avviare il programma faxaddmodem per configurare il nostro dispositivo. Dobbiamo indicare la porta seriale alla quale il modem è connesso. Conviene indicare ttyS0, ossia il dispositivo fisico, non un link simbolico tipo "modem" (anche se concettualmente può essere corretto).

Infine ci vengono richiesti nuovamente i dati "numerici": Country Code (39), Area Code (02) e Phone number of fax modem (il numero completo ad esempio +39.02.93XXXXX). Lasciamo Local identification string come "NothingSetup" e i 2 prefissi successivi a 0, per il resto vanno bene i valori di default (tranne Dial string rules file per cui va indicato di nuovo etc/dialrules.europe e Speaker volume per cui è meglio indicare "quiet" anzichè off, così sentiremo quel bel gracchiamento tipico delle connessioni).

Terminata questa parte il programma dovrebbe interrogare il modem e definirne la velocità, farci altre domande alle quali vanno bene i valori di default e chiederci se i valori che ha configurato sono ok. Se siamo d'accordo premiamo Invio e ripetiamo i passi per ogni dispositivo che abbiamo sul sistema. Se c'è un solo modem attaccato alla nostra macchina, rispondiamo no alla domanda "Do you want to run faxaddmodem to configure another modem" e completiamo la procedura premendo Invio alla domanda "Should I run faxmodem for each configured modem". In questo modo la configurazione del nostro dispositivo è terminata.

Preparare l'esecuzione automatica del fax server

I passi necessari per fare sì che il nostro fax server sia sempre attivo all'avvio sono essenzialmente due. Dobbiamo aggiungere alla fine del file /etc/inittab la riga:
mo:2345:respawn:/usr/sbin/faxgetty ttyS0
in modo da indicare al sistema di tenere sempre attivo il processo faxgetty (in poche parole se questo viene "killato" risorge...). Dobbiamo poi assicurarci che il demone hylafax venga avviato nei runlevel principali con il comando
# chkconfig --level 345 hylafax on per verificare che la modifica sia avvenuta:
# chkconfig --list

Inviare un fax

Prima di inviare un fax, rebootiamo il sistema in modo da verificare che i processi si avviino correttamente. Se è tutto ok, lanciando il comando ps -aux dovremmo notare da qualche parte delle righe simili a queste:
uucp 1954 0.0 0.6 3620 1552 ? S 14:53 0:00 hfaxd -i hylafax
uucp 1962 0.0 0.7 3820 1968 ? S 14:53 0:00 /usr/sbin/faxgetty ttyS0

Bene, ora siamo pronti ad effetuare un test:
# sendfax -n -d 0293XXXXX /etc/passwd

Se il comando restituisce
request id is 1 (group id 1) for host localhost (1 file)
vuol dire che il nostro fax è stato accodato con successo. Per seguire nel dettaglio le operazioni che varranno svolte basta lanciare il comando:
tail -f /var/log/messages

Se leggiamo qualcosa di simile a questo:
lug 1 15:45:59 problema faxSend[2377]: SEND fax: JOB 1 DEST 0293XXXXX COMMID 00000001 DEVICE '/dev/ttyS0'
lug 1 15:46:43 problema faxSend[2377]: SEND fax: JOB 1 SENT in 0:21

il nostro Invio ha avuto successo.

Hylafax supporta anche l'invio di file PDF, per cui possiamo inviare fax anche in questa maniera:
# sendfax -n -d 0293XXXXX nomefile.pdf

Inoltre sono disponibili una numerosa quantità di Client anche per Microsoft Windows, in modo da non dover scrivere a mano ogni volta il comando di invio, una panoramica di questi si trova presso questa pagina.

Ricevere un fax

Tenuto conto del fatto che ogni fax è essenzialmente un file tiff che passa attraverso la rete e che per ogni fax ricevuto, nella directory /var/spool/hylafax/recvq troveremo il file tiff relativo, si fa presto a capire che consultare i fax in arrivo è piuttosto scomodo. L'ideale sarebbe ricevere per ogni fax una mail, magari che abbia in allegato un bel pdf pronto da stampare. Bene tutto questo è fattibile: è necessario avere installato nel nostro sistema il pacchetto sendmail (anche in questo caso lo si trova sui cd della ditribuzione RedHat) ed editare il file /etc/alias modificando (o aggiungendo se non esiste) la riga:
# alias for notification messages from Hylafax servers
faxMaster: nome@server.com

dove ovviamente al posto di nome@server.com va indicato un corretto indirizzo e-mail, ed eseguire il comando
# newaliases
In questo modo, nel momento in cui il nostro fax riceverà un documento, lo girerà "al volo" verso l'indirizzo che gli abbiamo indicato.

Non rimane altro da fare che spedire un fax al numero di telefono della linea collegata al nostro dispositivo. Possiamo sempre controllare il regolare seguirsi delle operazioni con il comando:
tail -f /var/log/messages

Se leggiamo qualcosa di simile a questo, abbiamo finito il nostro lavoro:
ANSWER: fax CONNECTION DEVICE '/dev/ttyS0'
Jul 1 16:34:05 problema faxGetty[28623]: RECV fax (00000001): from +390293XXXXXX, page 1 in 0:18, INF, 7.7 line/mm, 2-D MR, 14400 bit/s
Jul 1 16:34:15 problema faxGetty[28623]: RECV fax (00000001): from +390293XXXXXX, page 2 in 0:10, INF, 7.7 line/mm, 2-D MR, 14400 bit/s
Jul 1 16:34:15 problema faxGetty[28623]: RECV fax (00000001): recvq/fax00001.tif from +390293XXXXXX, route to , 2 pages in 0:35
Jul 1 16:34:16 problema faxGetty[28623]: RECV fax: bin/faxrcvd "recvq/fax00001.tif" "ttyS0" "00000001" "" "" ""

Casi particolari

Come fare a mettere lo 0 prima di effettuare il numero?
Basta aggiungere nel file /etc/hylafax/etc/dialrules.europe, alla fine, prima dell'ultima chiusa parentesi quadra, questa riga:
^[0-9]{4,}$ = 0,&
Questo indicherà ad hylafax di inviare 0, aspettare un secondo (la virgola) e solo allora fare il numero.

Continuo a ricevere l'errore "no local dialtone", perché?
Questo errore ha fatto dannare parecchio anche me, se lavorate con modem recenti non dovreste avere problemi di questo tipo, in caso contrario provate a commentare queste opzioni del file /etc/hylafax/etc/config.ttyS0 con il carattere #:
#ModemSetupDTRCmd: ATS13=1&D2 # setup so DTR drop resets modem
#ModemSetupDCDCmd: AT&C1 # setup so DCD reflects carrier (or not)
#ModemNoFlowCmd: AT&H0&I0&R1 # setup modem for no flow control
#ModemHardFlowCmd: AT&H1&I0&R2 # setup modem for hardware flow control
#ModemSoftFlowCmd: AT&H2&I2&R1 # setup modem for software flow control
#ModemResultCodesCmd: ATQ0X4 # enable result codes
#
#ModemMfrQueryCmd: !USR
#ModemModelQueryCmd: ATI3
#ModemRevQueryCmd: ATI7 # XXX returns a multi-line result

e ad aggiungere invece questa riga:
ModemResetCmds: ATX3
Questo indicherà al modem di usare il comando ATX3 per effetuare il Reset, e dovrebbe sistemare il problema della mancanza di dialtone.

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato con Zeus News ti consigliamo di iscriverti alla Newsletter gratuita. Inoltre puoi consigliare l'articolo utilizzando uno dei pulsanti qui sotto, inserire un commento (anche anonimo) o segnalare un refuso.
© RIPRODUZIONE RISERVATA

Commenti all'articolo (4)

Stefano Barni
info sul numero chiamato Leggi tutto
16-7-2003 15:38

claudio
modem Leggi tutto
7-7-2003 17:28

riccardo
Tipo di modem Leggi tutto
7-7-2003 11:46

Maurizio
Ricezione numero FAX Leggi tutto
6-7-2003 21:27

La liberta' di parola e' un diritto inviolabile, ma nei forum di Zeus News vige un regolamento che impone delle restrizioni e che l'utente e' tenuto a rispettare. I moderatori si riservano il diritto di cancellare o modificare i commenti inseriti dagli utenti, senza dover fornire giustificazione alcuna. Gli utenti non registrati al forum inoltre sono sottoposti a moderazione preventiva. La responsabilita' dei commenti ricade esclusivamente sui rispettivi autori. I principali consigli: rimani sempre in argomento; evita commenti offensivi, volgari, violenti o che inneggiano all'illegalita'; non inserire dati personali, link inutili o spam in generale.
E' VIETATA la riproduzione dei testi e delle immagini senza l'espressa autorizzazione scritta di Zeus News. Tutti i marchi e i marchi registrati citati sono di proprietà delle rispettive società. Informativa sulla privacy. I tuoi suggerimenti sono di vitale importanza per Zeus News. Contatta la redazione e contribuisci anche tu a migliorare il sito: pubblicheremo sui forum le lettere piu' interessanti.
Sondaggio
Cosa utilizzi per inviare messaggi privati?
Uso varie applicazioni su qualsiasi dispositivo disponibile
Uso varie applicazioni sui miei dispositivi
Uso solo applicazioni affidabili su dispositivi di fiducia
Non invio messaggi privati online

Mostra i risultati (1067 voti)
Aprile 2024
Enel nel mirino dell'Antitrust per le bollette esagerate
TIM, altre ''rimodulazioni'' in arrivo
L'algoritmo di ricarica che raddoppia la vita utile delle batterie
Hype e Banca Sella, disservizi a profusione
Falla nei NAS D-Link, ma la patch non arriverà mai
La navigazione in incognito non è in incognito
Le tre stimmate della posta elettronica
Amazon abbandona i negozi coi cassieri a distanza
Marzo 2024
Buone azioni e serrature ridicole
Il piano Merlyn, ovvero la liquidazione di Tim
Falla nelle serrature elettroniche, milioni di stanze d'hotel a rischio
L'antenato di ChatGPT in un foglio Excel
La valle inquietante
La crisi di Tim e la divisione sindacale
La fine del mondo, virtuale
Tutti gli Arretrati
Accadde oggi - 25 aprile


web metrics