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 envio de sms o 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.
- CPAN
- 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’ && 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.
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 o 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.
