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
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.
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.
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
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 ).
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
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.
O software necessário pode-se obter em:
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.
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 .