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
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
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 |
|
|
||
|