BOMBOLOM.COM

(fax) Servidor de Faxes - SuSE

Neste documento descreve-se a instalação de um servidor de faxes num sistema tipo *nix (mais precisamente no SuSE Linux Professional, versão 9.x), utilizando como software de servidor o Hylafax (http://www.hylafax.org). Também é revisto o procedimento de instalação de clientes em máquinas windows. Assume-se que quem utilizar este documento tem alguma experiência de administração de máquinas *nix.

Instalação do servidor

Instalação do software

Deve-se instalar os seguintes pacotes utilizando a ferramenta de administração Yast:

NOTA: nas versões de download mais recentes 10.x o pacote hylafax pode não estar disponível. Dever-se-á fazer o download deste pacote dos repositórios do OpenSuSE nesse caso. Por favor consultar o site desse projecto: http://www.opensuse.org

Após a instalação deve-se verificar se esta teve sucesso com o comando:

$ rpm -qa | grep hylafax 
hylafax-4.1.7-38

Configuração do modem

O passo seguinte consiste na configuração do modem. Se este for um modem externo, então basta saber em que porta este está instalado. Regra geral a porta será /dev/ttyS0 ou /dev/ttyS1, não se devem utilizar links simbólicos para qualquer uma destas portas, do género ttyS1 -> modem. Se instalou o terminal minicom, este pode ser iniciado utilizando o utilizador root, da seguinte forma:

# minicom -s

Vai surgir um ecran de configuração, onde deverá ser inserida a porta correcta onde o modem está instalado:

Configuração do minicom

Após se ter configurado o minicom, pode-se testar a ligação com o modem utilizando os comandos AT normais, por exemplo ATDT<número de telefone> para verificar se o modem é capaz de realizar chamadas utilizando marcação por tons, ou ATDP<número de telefone> utilizando marcação por impulsos.

No ficheiro /etc/rc.d/boot.local deverão ser acrescentadas as seguintes linhas de código para configurar a porta série onde está ligado o modem:

# Fax serial port 
/bin/stty crtscts < /dev/ttyS1 
/bin/setserial /dev/ttyS1 spd_vhi hup_notify

Como esta alteração só surte efeito após um reboot do computador, devem-se executar estes comandos como root.

Configuação do servidor de fax

Configuração geral

A configuração do software de servidor fax-se utilizando um script que é fornecido com este, basta como root executar o seguinte comando:

$ faxsetup

Neste documento apenas indico as opções a serem alteradas, todas as outras devem de permanecer com os valores fornecidos pelo programa de configuração.

As opções a modificar, na primeira parte da configuração, são as seguintes:

The non-default scheduler parameters are: 
CountryCode: 351 
AreaCode: 1 
LongDistancePrefix: 0 
InternationalPrefix: 00 
DialStringRules: "etc/dialrules.europe" 

Na segunda parte da configuração:

CountryCode:            351 
AreaCode:               1 
FAXNumber:              +351.218.475.130 
LongDistancePrefix:     0 
InternationalPrefix:    00 
DialStringRules:        "etc/dialrules.europe" 
LogFileMode:            0666 
DeviceMode:             0666 
RingsBeforeAnswer:      1 
LocalIdentifier:        "Empresa" 
MaxRecvPages:           99

O terceiro e último passo consiste na configuração do modem. Deve-se escolher um modem de ``classe 1'', o output do programa de configuração deverá ser qualquer coisa como:

Hmm, this looks like a Class 1 modem. 
Product code (ATI0) is "56000". 
Other information (ATI3) is "V2.210 022-201-V90_2M_DLS". 
DTE-DCE flow control scheme [default]? 
Modem manufacturer is "Rockwell/Conexant". 
Modem model is "AC/K56". 
Using prototype configuration file rc288dpi-1... 
The modem configuration parameters are: 
ModemDialCmd:           ATDT%s 
ModemFlowControl:       rtscts 
ModemHardFlowCmd:       AT&K3 
ModemMfrQueryCmd:       !Rockwell 
ModemModelQueryCmd:     !RC288DPi 
ModemNoFlowCmd:         AT&K0 
ModemRate:              19200 
ModemRevQueryCmd:       ATI3 
ModemSetupDCDCmd:       AT&C1 
ModemSetupDTRCmd:       AT&D2 
ModemSoftFlowCmd:       AT&K4

Se houver um segundo modem para configurar repete-se o procedimento anterior, caso não deve-se responder negativamente à seguinte pergunta:

Should I run faxmodem for each configured modem [yes]? no

Este procedimento de configuração cria os ficheiros de configuração em /var/spool/fax/etc. Devem feitos alguns ajustes no ficheiro config.ttyS1, acrescentar a linha seguinte se esta não estiver presente:

RingsBeforeAnswer:      2

Que indica ao servidor para responder de forma automática. É também necessário ajustar o comando para marcação de números, conforme se queira utilizar marcação por impulsos ou por tons:

ModemDialCmd:           ATDP%s          # para utilizar impulsos

ou

ModemDialCmd:           ATDT%s          # para utilizar tons 

Verificar se foi criado o utilizador ``fax'':

fax:x:10:14:Facsimile Agent:/var/spool/fax:/bin/false

E se este pertence ao grupo uucp, dialout e modem.

Configurar a recepção de faxes

Basta editar o ficheiro /etc/inittab e verificar se estão presentes as seguintes linhas:

# fax getty (hylafax) 
mo:235:respawn:/usr/lib/fax/faxgetty /dev/ttyS1

A seguir é necessário executar o seguinte comando como root:

# init q

Para verificar que o serviço se iniciou fazer:

$ ps -ef | grep fax | grep -v grep 
uucp 25569 1 3 17:59 ? 00:00:00 /usr/lib/fax/faxgetty /dev/ttyS1

Acesso dos clientes

Para permitir que os clientes da rede local acedam ao servidor, editar o ficheiro etc/hosts.hfaxd:

localhost 
127.0.0.1 
192.168.10.*

Onde a última linha indica o endereço da rede local. Podem-se utilizar wildcards e regular expressions para afinar o acesso dos clientes.

Se quisermos ter acesso às aos faxes recebidos, e tivermos o samba a correr, basta acrescentar as linhas seguintes ao ficheiro de configuração do samba:

[recvq] 
comment = Fax Receive Queues 
browsable = no 
path = /var/spool/fax/recvq 
public = yes 
writable = no

E recomeçar o serviço ( rcsamba restart ).

Iniciar o servidor

Para iniciar o servidor basta fazer, como root:

# rchylafax start 
starting service HylaFAX done

Para que o servidor se inicie em cada reboot deve-se utilizar o Yast, em: Yast -> System -> Runlevel editor e nas propriedades dos runlevels verificar que se tem:

hylafax Yes 2 3 5 Start hylafax fax server daemon 

Ou então fazer simplesmente:

# chkconfig hylafax on

Nesta altura deveremos ter os seguintes processos a correr, relaccionados com o servidor de fax:

$ ps -ef | grep fax | grep -v grep 
uucp 25569 1 0 17:59 ? 00:00:00 /usr/lib/fax/faxgetty /dev/ttyS1 
uucp 25626 1 0 18:01 ? 00:00:00 /usr/sbin/faxq 
uucp 25629 1 0 18:01 ? 00:00:00 /usr/lib/fax/hfaxd -i hylafax -o 4557

Conclusão

Nesta altura o servidor deverá estar a correr e é capaz de receber e enviar faxes. Pode-se ainda editar os ficheiros presentes em /var/spool/fax/bin de modo a personalizar o envio e recepção de faxes. Por exemplo em faxrcvd, pode-se acrescentar código para converter os faxes recebidos para pdf e envia-los para um utilizador pré-definido:

if [ -f $FILE ]; then 
         # Definições 
         TIFF2PS=tiff2ps 
         PS2PDF=ps2pdf 
         TIFFINFO=/usr/bin/tiffinfo 
         SED=/usr/bin/sed 
         AWK=/usr/bin/awk 
         # Transformar tiff em pdf 
         SENDER="`$INFO $FILE | $AWK -F: '/Sender/ { print $2 }' 2>/dev/null`" 
         SEND=`echo $SENDER | sed 'y/ /_/'` 
         NOME_BASE=`echo $FILE | sed 's/\.tif//'` 
         NOME_PDF=$NOME_BASE-$TEMPO-$SEND.pdf 
         GW=`$TIFFINFO $FILE | $GREP "Image Width" | \ 
                 $SED 's/.*Image Width: \([0-9]*\).*/\1/g' | sort -n | $SED -n '$p'` 
         GL=`$TIFFINFO $FILE | $GREP "Image Length" | \ 
                 $SED 's/.*Image Length: \([0-9]*\).*/\1/g' | sort -n | $SED -n '$p'` 
         RW=`$TIFFINFO $FILE | $GREP "Resolution" | \ 
                 $SED 's/.*Resolution: \([0-9]*\).*/\1/g' | sort -n | $SED -n '$p'` 
         RL=`$TIFFINFO $FILE | $GREP "Resolution" | \ 
               $SED 's/.*Resolution: [0-9]*, \([0-9]*\).*/\1/g' | sort -n | $SED -n '$p'` 
         $TIFF2PS -a -O $FILE.ps $FILE 2>/dev/null # fax2ps looks bad 
         $PS2PDF -g$GW\x$GL -r$RW\x$RL $FILE.ps "$NOME_PDF" 2>/dev/null 
         # imprimir o fax: 
         # lpr $FILE.ps 
         # rm $FILE.ps 
         # Mover o pdf para a directoria dos faxes 
         chmod a+rw "$NOME_PDF" 
         (echo "Foi  recebido  um fax no  escritorio da XXXX." 
         echo "Segue-se o relatorio deste fax.  Em attachment" 
         echo "pode encontrar um ficheiro PDF com copia deste" 
         echo "fax." 
         echo "" 
         echo "Esta mensagem é *automática*. Não deve responder" 
         echo "para este endereço." 
         echo "" 
         echo "Tenha um dia FELIZ!" 
         echo ""  
         $INFO -n $FILE  
         if [ "$MSG" ]; then 
                 echo ""  
                 echo "O documento não foi completamente recebido porque:"   
                 echo ""   
                 echo "    $MSG"   
                 echo ""   
                 echo "    -- Segue-se uma transcrição do registo da comunicação --   " 
                 echo "" 
                 if [ -f log/c$COMMID ]; then 
                     $SED -e '/- data/d' \ 
                      -e '/start.*timer/d' -e '/stop.*timer/d' \ 
                      log/c$COMMID 
                 elif [ -n "$COMMID" ]; then 
                     echo "    Nao há registo disponível (CommID c$COMMID)." 
             else 
                 echo "     Nao há registo disponível." 
             fi 
         else 
             echo "    CommID: $COMMID" 
             echo "" 
         fi 
         if [ "$CIDNUMBER" ]; then 
             echo " CIDNumber: $CIDNUMBER" 
         fi 
         if [ "$CIDNAME" ]; then 
             echo "   CIDName: $CIDNAME" 
         fi ) > /tmp/fax.txt 
         /usr/local/bin/email -s "Fax Recebido na XXXX" -a "${NOME_PDF}" -b -n "Servidor de Faxes XXXX" -f fax@xxxxxx  user@somecompany.com  < /tmp/fax.txt  
         # Arquivo do PDF  
         mv "$NOME_PDF" /arquivo/shares/tmp/faxes 
         chmod a+rw /arquivo/shares/tmp/faxes/* 
         rm $FILE.ps 
 fi

O programa email pode ser obtido em http://email.cleancode.org.

Configuração dos clientes windows

Obter o software

O software necessário pode-se obter em:

Instalação do software

O WHFC tem um programa de instalação próprio, pelo que basta seguir o passos da instalação. Quanto ao Tiff Viewer, basta copiar o executável para uma directoria apropriada.

Configuração

Notar que se deve de indicar o endereço do servidor de faxes na rede local, bem como indicar um utilizador válido do sistema e respectiva password.

Uma configuração possível é a seguinte:

Configuração do WHFC (utilizador)

Configuração do WHFC (sistema)

Notar como é iniciado o visualizador de tiffs. Regra geral obtêm-se melhores resultados, se se converterem os faxes para PDFs.

De modo a se conseguir enviar faxes é nesseçário configurar uma impressora no windows para esse efeito, na porta WHFCFAX:, utilizando o driver para a impressora Apple LaserWritter 16/600 PS .

27.07.2006 | Ler mais | Comentários | Tags ,

Voltar à Página principal | Made with PyBlosxom