terça-feira, 22 de janeiro de 2008

Utilizando o Linux como secretária eletrônica.

Há algum tempo atrás, disponibilizei em vários locais na internet que tratavam de linux uma maneira de utilizar o modem que tornou-se ocioso em decorrência da utilização de acesso à internet através da banda larga.

Com receio que este se perdesse, resolvi republicá-lo. Caso você resolva publicá-lo em seu blog, peço a gentileza de utilizar-se de link para este documento.

Este tutorial foi testado em um RedHat Linux 7.2

Hardware necessário

  • Computador com fax-modem instalado.
Software necessário
  • Red Hat Linux 7.2 (ou qualquer outra distribuição. Entretanto, faz-se necessário verificar os locais corretos para os arquivos de configuração);
  • sendmail, postfix, qmail ou qualquer MTA executando na máquina;
  • pacote mpack (http://rpmfind.net);
  • mgetty+sendfax (http://rpmfind.net;
  • Apache + PHP + Webmail (opcional).

Instalação e configuração do mgetty
Após a instalação e configuração do MTA (favor consultar a documentação do MTA a respeito de como instalá-lo), baixe a última versão do mpack (pacote que facilita o envio de e-mails com anexos). Para instalá-lo, execute o comando rpm -ivh mpack-{versão}.rpm.

Baixe e/ou atualize os pacotes mgetty-1.1.28-3, mgetty-viewfax-1.1.28-3, mgetty-voice-1.1.28-3 e mgetty-sendfax-1.1.28-3 (sendo o mgetty e mgetty-voice são os pacotes realmente necessários).

Para instalá-los, execute o comando rpm -ivh mgetty-*. Para atualizar uma versão já existente do mgetty, utilize o comando rpm -Uvh mgetty-*.

Agora, entre no diretório /etc/mgetty+sendfax. Utilizando o seu editor preferido, edite o arquivo voice.conf.

Procure pela linha message_list e informe o nome do arquivo que conterá as mensagens de voz a serem utilizadas quando o telefone for atendido. Este arquivo deverá estar no diretório message_dir (normalmente em /var/spool/voice/messages).

Na linha backup_message, deverá ser colocado o nome do arquivo (também presente no diretório message_dir) que será utilizado como mensagem padrão nos casos onde o mgetty não conseguir localizar o arquivo de mensagem em questão.

A próxima linha a ser alterada é o port_speed, o qual deverá conter a velocidade suportada pelo modem. Um pequeno detalhe: nesta linha o valor colocado DEVE ser o mesmo do que o encontrado na linha speed do arquivo mgetty.config.

Na linha rings, deve ser especificado o número de toques a esperar para atender o telefone.
Como eu não utilizo o telefone para receber fax, eu modifiquei a linha answer_mode para voice.

Na linha message_program, deve-se indicar nome do programa a ser utilizado para processar os arquivos recebidos pelo mgetty.

É necessário indicar ao mgetty, qual será o dispositivo de voz que ele deverá utilizar (ttyS0, ttyS1, ttyS2 ou ttyS3).

Talvez seja necessário revisar o arquivo inteiro e procurar por configurações envolvendo a mesma ttySx do modem ou até mesmo do mouse.

Com o seu editor de textos preferido, edite o arquivo /etc/inittab e inclua a seguinte linha:

S3:345:respawn:/sbin/vgetty ttyS3
Salve as configurações e saia do arquivo.

Execute um kill -1 1 para o init reler o arquivo de configuração e ativar o vgetty. Com um
ps -ax | grep vgetty
você deverá ver o processo lá·

Agora, o próximo passo é gravar a mensagem. Utilizando-se do seu programa preferido, grave a(s) mensagem(ns) de saudação da secretária em formato wav. Em seguida, utilize o programa wavtopvf .

O próximo passo é converter o arquivo no formato pvf para o formato compreendido pelo modem. Isto é feito através do utilitário pvftormd. Utilize o comando pvftormd -L para listar os formatos suportados pela sua marca de modem.

Após a conversão basta colocar arquivo da mensagem no diretório especificado em message_dir e a secretária já está pronta para operar.

Criação do script para enviar o arquivo recebido para o e-mail

Abaixo, segue o script que eu utilizo para enviar-me a mensagem via e-mail.
#!/bin/bash
# Voicemail.sh
#
# Converte o arquivo gravado do modem em voc e envia por e-mail.
#
# Autor: Luis Fernando Kieça

ARQUIVO=`echo $1 | cut -d "." -f 1`
DATA=`date +%d/%m/%Y`
HORA=`date +%H:%M`
EMAILADDRESS="luis@localhost"

# Converte o arquivo para voc
rmdtopvf "${ARQUIVO}.rmd" |
pvfcut -T 34.0 |
pvfspeed -s 32000 |
pvftovoc > "${ARQUIVO}.voc"

# Cria o arquivo txt
echo "Voice mail recebido" >> ${ARQUIVO}.txt
echo " " >> ${ARQUIVO}.txt
echo " Voce recebeu um voice mail as ${HORA} do dia ${DATA}." >> ${ARQUIVO}.txt
echo " " >> ${ARQUIVO}.txt
echo " Para acessa-lo, abra o arquivo anexo a este e-mail." >> ${ARQUIVO}.txt
echo " " >> ${ARQUIVO}.txt
echo "VoiceMail Server." >> ${ARQUIVO}.txt

# Envia o e-mail
mpack -s "Voicemail!!!" -d "${ARQUIVO}.txt" "${ARQUIVO}.voc" "${EMAILADDRESS}"

# Remove os arquivos temporarios
for i in voc rmd txt; do
rm -f ${ARQUIVO}.${i}
done
Este script você deverá referenciá-lo no mgetty.conf na linha message_program. Não esqueça de dar permissão de execução.

Apache + PHP + Webmail

A título de sugestão, pode-se utilizar o apache + php + squirrel (ou outro webmail qualquer), para que a visualização das mensagens possa ser feita através de qualquer computador com acesso à internet. Uma vez que você já utiliza banda larga em sua máquina, basta agora configurar para que você possa acessar seus e-mails de qualquer lugar (não esqueça é claro da segurança :-) ).

Nenhum comentário: