Perl + GSM + Imaginação = Coisas Legais

Posted on junho 22, 2008

9


Introdução

Estava procurando por algo para intermediar a comunicação entre meu Celular( Motorola v3 ) e o Linux/FreeBSD, quando por acaso encontrei um módulo em perl que não era bem o que eu queria mas achei bastante interessante. Vi a possibilidade de manipular os sms recebidos e formatar o envio de sms, que pode ser bastante útil em um cenário em que a internet não está disponível ou a demanda de sms é baixa.

Instalação

No FreeBSD é necessário os módulos umodem e ucom, adicionamos então ao ‘/boot/loader.conf’:

ucom_load=”YES”
umodem_load=”YES”

Após reinicio( sim, reinicio, quando tentei carregar o módulo com o kldload deu panic ) do sistema, quando plugado o celular à USB veremos uma mensagem semelhante a essa na saída do comando ‘dmesg’.

ucom0: <Motorola Inc. Motorola Phone (V3), class 2/0, rev 1.10/0.01, addr 2> on uhub1

No Linux será necessário o modulo cdc_acm, dê uma olhada.

Pronto, tudo ‘ok’ para os próximos passos.

Perl:

Iremos instalar o módulo Device::Gsm que irá intermediar o processo, temos duas formas para isso.

  1. CPAN
  2. Instalação manual do módulo

1 – # cpan -i “Device::Gsm”

2 – # wget -c ‘http://search.cpan.org/CPAN/authors/id/C/CO/COSIMO/Device-Gsm-1.48.tar.gz&#8217; && tar -zxvf Device-Gsm-1.48.tar.gz && cd Device-Gsm-1.48 && perl Makefile.PL && make && make install

Não irei me aprofundar na instalação do módulo perl, há bastante material na internet sobre o assunto, aqui ou aqui

Utilizando

Agora é o momento de soltar a criatividade, no source tem um diretório de exemplos com alguns scripts. A documentação dos métodos pode ser vista aqui.

Exemplo Nagios

A primeira coisa que pensei foi em usar junto com o nagios, quando pesquisei na documentação sobre notificações é sugerido o sms_client que parece ser interessante mas um pouco mais complicado.
Na área de desenvolvimente há também a gsmlib para o pessoal mais low-level.

O script que eu adaptei funcionou 100% com o v3 e o v550 da Motorola.

Script de exemplo adaptado.

O script em sim é auto-explicativo mas vamos lá.

# echo “Mensagem de exemplo” | perl script.pl numero*

*O numero é composto pelo DDD( 2 dígitos ) + número do celular( 8 dígitos ).

Conclusão

Quando me deparei com o módulo em Perl e não achei nenhuma informação sobre o mesmo em Português, senti-me motivado para escrever sobre o mesmo, achei o módulo bastante interessante e com diversas possibilidades de uso. Eu citei apenas um exemplo( Imaginei várias formas de uso mas optei por postar a mais coerente com a realidade) mas a medida que o pessoal for usando e criando seus próprios scripts, irei atualizando o artigo. Espero ter sido claro e objetivo, estou no aguardo por dúvidas, críticas e exemplos.

Gostaria de agradecer ao Redpill do #archlinux.br@irc.freenode.net que não quis testar o script.
Marcado: , , , ,
Posted in: perl, Rede