[LinuxFocus-icon]
LinuxFocus article number 249
http://linuxfocus.org

[Mark]
Mark Nielsen
<articles(at)audioboomerang.com>

L'autore:
Mark Nielsen lavora presso AudioBoomerang.com azienda che crea, spedisce, e controlla il tragitto di E-mail multimediali personalizzate e campagne di newsletter. Lavora come consulente per le consegne del prodotto finito, per esempio elaborando statistiche avanzate che verranno poi usate per tracciare profili demografici o psicologici per campagne future. Nel tempo libero scrive articoli sul Software Free (GPL) o sulla letteratura Free (FDL) ed è coinvolto nel progetto di un centro di istruzione non-profit eastmont.net.

Tradotto in Italiano da:
Monja Da Riva <mdariva(at)inwind.it>

Ricevere fax con efax.

[Immagine]

Premessa:

Configurare Efax per inviare e ricevere fax con RedHat 7.2

_________________ _________________ _________________

 

Scopo

Volevo installare un fax server. Inizialmente avevo pensato di usare Hylafax, ma il mio sistema RedHat aveva già mgetty installato, e questo causava conflitti con Hylafax nel momento in cui tentavo di installarlo con l'rpm. Tuttavia sembra che abbia operato correttamente, in quanto ero in grado di accedere al sistema sia in sessioni di console (login), sia in sessioni voci che fax. Per il momento mi serviva solo ricevere fax con l'installazione standard di RedHat, senza alcun software addizionale.

Efax e fax sono esattamente la stessa cosa. 'fax' è solamente uno script che richiama efax.

 

File di configurazione

I file da configurare per far funzionare le cose sono due: /usr/bin/fax and /etc/inittab.

Dopo aver copiato /usr/bin/fax in /usr/bin/fax_custom, ho cambiato queste linee:

FAXDIR=/var/spool/fax/incoming
NAME="AudioBoomerang.com Computer Fax Server"
FROM="+1 111 222 3333"
ANSFNAME="fax_%Y%m%d_%H%M%S"

In /etc/inittab, ho cambiato:

S0:2345:respawn:/bin/sh /usr/bin/fax_custom answer
 

Efax e fax -- ricevere un fax

Per ricevere un fax quando sapete che qualcuno sta inviandolo eseguite questo comando:
efax -d /dev/ttyS0 -l "268 1162"  -c 1,5 -r reply
oppure
fax answer

Se non volete che i fax genereati restino in background in attesa di una nuova connessione, non effettuate i cambiamenti a /etc/inittab di cui ho parlato nella sezione "File di configurazione"

 

Efax e fax -- fax multipli con inittab

Se avete cambiato il file /etc/inittab come ho descritto nella sezione "File di configurazione", basta semplicemente che riavviate il computer e il vostro modem potrà ricevere fax e metterli nella directory /var/spool/fax/incoming.

Se utilizzate il comando:

ps aux | grep efax
dovreste vedere la sessione di efax in background più o meno così:
root 1698 0.0 0.4 1576 616 ? S< 21:47 0:00 /usr/bin/efax -v -v chewmainrxtf -d/dev/modem -iZ -i&FE&D2S7=120 -i&

La cosa divertente è che se killate il processo con id "1698", questo si rigenererà rileggendo il file /usr/bin/fax_custom Quindi se fate cambiamenti a questo file, per testare la nuova configurazione, semplicemente killate il processo di efax prima di provare a spedire fax.

 

Cosa fare dopo aver ricevuto fax?

Beh, lanciate un job in cron che ordini i file in /var/spool/fax/incoming, che crei un file di lock per ogni gruppo di fax e che converta i fax in pdf per vederli sul web oppure stamparli direttamente.

Se volete stamparli, potete usare efix in questo modo,

efix -ops fax_20020606_014847.001 | lpr

La mia raccomandazione è che stampiate il file e poi lo conserviate in una directory di backup.

 

Spedire fax

Impostare il servizio di stampa e i servizi collegati è stato più duro di quanto avessi pensato. Prima di tutto fate quello che il man dice (con alcune modifiche):
  1. ln /usr/bin/fax /usr/bin/faxlpr
    
  2. In /etc/printcap.local
       fax:lp=/dev/null:sd=/var/spool/fax:if=/usr/bin/faxlpr_perl:
    
  3.     mkdir /var/spool/lpd/fax
        touch /var/spool/lpd/fax/lock
    
  4. /etc/rc.d/init.d/lpd restart
    

Questi sono le modifiche che ho fatto io:

  1. In /usr/bin/faxlpr, ho cambiato:
    l=`$FAX send "$num" fax$$`
    to
    
    `gs -q -sDEVICE=tiffg3 -dNOPAUSE -sOutputFile=fax_out fax$$ </dev/null`
    l=`efax -t $num fax_out`
    `rm fax_out`
    
    e ho cambiato anche queste tre linee nella sezione faxlpr:
      num=` echo "$cfile" | sed -e /^[^J]/d -e s/..//`
      host=`echo "$cfile" | sed -e /^[^H]/d -e s/..//`
      user=`echo "$cfile" | sed -e /^[^P]/d -e s/..//`
    
  2. Ho salvato uno script in perl in /usr/bin/faxlpr_perl e gli ho dato permessi 755 con chmod /usr/bin/faxlpr_perl:
    #!/usr/bin/perl
    
    my $String = "";
    foreach my $Arg (@ARGV)
      {
      if ($Arg =~ /\-j/)
        {
        my $Copy = $Arg;
        $Copy =~ s/\-j//;
        open(FILE,">lock"); print FILE "hfA$Copy"; close FILE;
        }
      }
    my $Command = "/usr/bin/faxlpr";
    system ($Command, @ARGV);
    print 1;
    
  3. Odio questa cosa, ma ho dovuto fare "chmod 666 /dev/ttyS1" in modo che l'utente lpr che controlla i job di stampa potesse usare il modem

Lo script in Perl fa in modo che faxlpr possa trovare il numero di processo. Cambiare il comando "fax" in "efax" era necessario perchè il comando "fax" cercava di creare un file di lock che io non volevo che creasse.

Probabilmente anche il mio metodo di spedire fax elimina il file di lock, quindi potebbe "impazzire" se tentate di spedire un fax mentre ne state ricevendo un altro.

Oltre a tutto questo dolore e sofferenza, il programma che stampa deve essere in grado di specificare l'opzione "-J" in modo che si possa dare un comando tipo 'lpr -P fax -J "555 1212" file.ps'. Altrimenti potete stampare su file e solo dopo stamparlo effettivamente da riga di comando.

Potete anche usare il comando efax solo per spedire un fax senza passare per il servizio di stampa. Dovrete usare gs per convertirlo prima di spedirlo, e già così sono dolori.

 

Conclusioni.

Quando ne avrò la possibilità, cercherò di:

Efax è solo una soluzione temporanea, finché non capirò come far funzionare mgetty (finora ci ho provato ma non ci sono riuscito) L'unica ragione per la quale non ho usato Hylafax è stato il conflitto con mgetty quando tentavo di installarlo con l'rpm, poi mgetty ha attirato la mia attenzione e quindi mi sono dedicato a configurare efax. Ho intenzione di provare e usare mgetty in futuro perchè voglio sessioni voce e console con lo stesso modem. Sembra che sia possibile usare voce, login e fax tutto con lo stesso modem -- ma sembra anche che ci siano problemi con alcuni modem a discriminare tra fax, voce e login. A me sinceramente non piace spedire fax con efax e il servizio di stampa. Spero che mgetty mi risolva alcuni di questi problemi.

 

Bibliografia

  1. The Easy Fax Server!
  2. A Linux Fax Server for a Windows Network
  3. Linux Fax for Dummies
  4. Hylafax

Article Version 1.2 : Date Last Changed Sun Jul 13 04:17:31 2002



Webpages maintained by the LinuxFocus Editor team
© Mark Nielsen
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
Translation information:
en --> -- : Mark Nielsen <articles(at)audioboomerang.com>
en --> it: Monja Da Riva <mdariva(at)inwind.it>

2005-01-14, generated by lfparser_pdf version 2.51