Recebendo fax com o efax.

ArticleCategory:

SystemAdministration

AuthorImage:

[Mark]

TranslationInfo:

original in en Mark Nielsen

en to pt Bruno Sousa

AboutTheAuthor:

O Mark Nielsen trabalha na AudioBoomerang.com a qual cria, entrega e apresenta email multimedia personalizado, e campanhas de web e newsletter. Ele trabalha como consultor entregando produtos finais aos clientes AudioBoomerang.com tais como relatórios estatísticos, avançados, personalizáveis utilizados em perfis demográficos ou fisiológicos, para futuras campanhas. No seu tempo livre, escreve artigos referentes ao software livre (GPL) ou literatura livre (FDL) e está envolvido com um centro, não lucrativo, de aprendizagem eastmont.net.

Abstract:

Configurando o Efax para enviar e receber faxes no RedHat 7.2.

ArticleIllustration:[This is the title picture for your article]

[illustration]

ArticleBody:

Propósito

Eu queria configurar um servidor fax. Eu pensei utilizar o HylaFax, mas o meu sistema RedHat já tinha o mgetty instalado o qual colidiu com o HylaFax quando tentei instalar o rpm HylaFax. Também, se eu fizer as coisas bem, posso utilizar o mgetty para fazer logins e sessões de voz, bem como as sessões de fax. Por agora só queria receber fax, com a instalação por omissão da RedHat 7.2, sem software adicional.

O Efax e o fax são realmente a mesma coisa. O 'fax' é, somente, uma script que chama o efax.

Ficheiros de Configuração

Existem dois ficheiros que pode configurar para ter as coisas a trabalhar: /usr/bin/fax e /etc/inittab.

Copie o /usr/bin/fax para /usr/bin/fax_custom, e altere as seguintes linhas:

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

No /etc/inittab, eu alterei:

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

Efax e fax -- recepção simples

Para receber um fax simples, porque sabe que alguém o está a chamar com um fax, execute o comando:
efax -d /dev/ttyS0 -l "268 1162"  -c 1,5 -r reply
ou
fax answer

Se não quiser ter o spawn do fax em background, à espera da próxima ligação, então não faça as modificações no /etc/inittab que eu mencionei na secção "Ficheiros de Configuração".

Efax e fax -- múltiplos com o inttab

Se alterou o ficheiro /etc/inittab como descrevi na secção "Ficheiros de Configuração", faça um reboot ao computador e o seu modem receberá faxes e descarregar-los-á no directório /var/spool/fax/incoming.

Se introduzir o comando:

ps auxw | grep efax
deve ver a sessão do efax a rodas em background, como:
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&

Uma coisa simpática, é que se terminar o processo com o id "1698", ele reproduzir-se-á e acredito que irá ler novamente o ficheiro /usr/bin/fax_custom. Assim, se fizer alterações a este ficheiro, termine o processo que está a correr o efax antes de utilizar o fax, quando quiser testar a sua configuração.

O que deve fazer depois de receber fax ?

Bem, pode correr um trabalho através do cron que separa os ficheiros no /var/spool/fax/incoming, e cria um ficheiro de bloqueio para cada grupo dos faxes e, depois convertê-los para pdf, para serem vistos na web ou para serem directamente impressos.

Se os quiser imprimir, utilize o efix do seguinte modo

efix -ops fax_20020606_014847.001 | lpr

Recomendo-lhe que imprima o ficheiro e depois o guarde num directório de salvaguarda.

Enviando faxes

Configurar o serviço de impressão foi mais instrutivo do que havia pensado. Primeiro, faça o que a página do manual sugere (com algumas alterações):
  1. ln /usr/bin/fax /usr/bin/faxlpr
    
  2. no /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
    

Agora, as minhas modificações são as que se seguem:

  1. No /usr/bin/faxlpr, Eu alterei
    l=`$FAX send "$num" fax$$`
    para 
    
    `gs -q -sDEVICE=tiffg3 -dNOPAUSE -sOutputFile=fax_out fax$$ </dev/null`
    l=`efax -t $num fax_out`
    `rm fax_out`
    
    e também, alterei estas três linhas para a secção 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. Guardei uma script em perl em /usr/bin/faxlpr_perl e fiz o chmod 755 /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. Esta parte, realmente, detesto-a, mas tive de fazer um "chmod 666 /dev/ttyS1" para que o utilizador lpr, o qual controla os trabalhos de impressão, possa utilizar o modem.

A script em perl possibilitou que o faxlpr encontra-se o número do processo e altera-se o comando "fax" para "efax". Tal era requerido pois ele tentava criar ficheiros de bloqueio o que era algo que eu não queria.

Creio que o meu método de enviar faxes fura os ficheiros de bloqueio, assim pode haver problemas quando estiver a enviar um fax ao mesmo tempo que está a receber um.

Depois de toda esta dor e sofrimento o seu programa de impressão deve ser capaz de especificara a opção "-J", para que permita uma linha de comandos como 'lpr -P fax -J "555 1212" file.ps'. Caso contrário, imprima para um ficheiro e depois imprima esse ficheiro utilizando a linha de comandos.

Também, podia, simplesmente, utilizar o comando efax para enviar um fax e não através de serviço de impressão. Deve utilizar o gs para o converter, antes de o enviar, o que ainda é doloroso.

Conclusões.

Sempre que tenho possibilidade, tentarei ver se consigo:

O Efax é só uma solução temporária até conseguir pôr o mgetty a funcionar ( o que já tentei, mas sem êxito). A única razão, pela qual não utilizei o hylafax, foi porque, o mesmo conflituou com o mgetty quando tentei instalar o rpm daí o meu interesse no mgetty e no efax. Estou a fazer tudo para utilizar o mgetty no futuro porque quero sessões de login e de voz no mesmo modem. Parece que é possível utilizar voz, login e fax ao mesmo tempo no mesmo modem -- mas poderá haver alguns problemas com alguns modems para detectarem correctamente a voz, o login e o fax todos ao mesmo tempo. Eu, realmente, não gosto de enviar faxes com o efax e o serviço de impressão. Espero que o mgetty resolva alguns dos problemas que tive.

Referências

  1. O Fácil Servidor Fax!
  2. A Servidor Fax Linux para uma rede Windows
  3. Linux Fax para Dummies
  4. Hylafax

Versão do Artigo1.2 : Data da última modificação Thu Jun 13 04:17:31 2002