Central de atendimento com o mgetty

Esta contribuição está participando do sorteio da Mochila Targus Matrix. Envie seu texto e participe você também, você contribui com outros usuários e ainda pode faturar uma mochila novinha em folha para o seu laptop. Saiba mais sobre como participar.

Sobre o Autor:

Luis Fernando Kieça
luis_fk@yahoo.com

Hardware necessário:

  • Computador com fax-modem instalado.

Software necessário:

  • Linux instalado no equipamento (esta dica foi testada num Red Hat 7.2, mas é apenas um Pentium 233 – eu sei que é antigo). Faz-se necessário sendmail, postfix, qmail ou qualquer MTA executando na máquina.
  • Apache+ PHP + Webmail (opcional)

1. 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 .
  • 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 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.
  • Grave o arquivo e saia.
  • 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

  • O init irá reler o arquivo de configuração e ativar o vgetty.
  • Com um:

ps -ax | grep vgetty
você deverá ver o processo lá. Caso não apareça o processo listado, reveja suas configurações.

  • 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.
  • Agora, converta o arquivo wav para o formato pvf (formato intermediário) utilizando o 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.

2. 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.

—8<--- #!/bin/bash # Voicemail.sh # # Converte o arquivo gravado do modem em voc e envia por e-mail. 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

—>8—

Foi utilizado o formato voc, por ser o mais enxuto e o que obtive melhor qualidade. Este formato pode ser executado no winamp (windows) ou xmms (linux). Caso prefira outro formato, mp3 por exemplo, você precisará converter o arquivo no formato pvf para o mp3. Consulte a documentação do programa que você irá utilizar para convertê-lo.

3. Apache + PHP + Webmail + dyndns

Este passo é opcional. Utilizei-o para poder ver meus recados a partir de qualquer equipamento fora de casa/escritório. 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 o adsl 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).

Como não é o escopo deste artigo, consulte a documentação de como fazê-lo em sua distribuição. Em alguns casos, as operadoras telefônicas bloqueiam acesso a portas baixas (abaixo de 1024). Pode-se configurar o apache para utilizar uma porta alta ao invés da porta padrão(80). Ou ainda, pode-se habilitar o https e utilizá-la para acessar seu servidor web.

Utilizo o dyndns (http://www.dyndns.org) para publicar o endereço do meu adsl para que eu não tenha que “adivinhar” qual ip preciso acessar para ver meus recados. Outra opção é usar o no-ip (http://www.no-ip.com). Em ambos os casos, há um cliente para linux, que pode ser configurado tranqüilamente.