original in en Mark Nielsen
en to pt Bruno Sousa
O Efax e o fax são realmente a mesma coisa. O 'fax' é, somente, uma script que chama o efax.
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 -d /dev/ttyS0 -l "268 1162" -c 1,5 -r replyou
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".
Se introduzir o comando:
ps auxw | grep efaxdeve ver a sessão do efax a rodas em background, como:
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.
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.
ln /usr/bin/fax /usr/bin/faxlpr
fax:lp=/dev/null:sd=/var/spool/fax:if=/usr/bin/faxlpr_perl:
mkdir /var/spool/lpd/fax touch /var/spool/lpd/fax/lock
/etc/rc.d/init.d/lpd restart
Agora, as minhas modificações são as que se seguem:
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/..//`
#!/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;
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.
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.
Versão do Artigo1.2 : Data da última modificação Thu Jun 13 04:17:31 2002