perl + huawei e220 + sms

A necessidade de criar um serviço para receber mensagens de telemóvel (SMS) surgiu, um ex-colega aqui no trabalho já tinha andado a “inventar” à uns tempos com isto, eu sabia que ele tinha posto a coisa a andar com o huawei e220 e pelos vistos funciona com mais modelos para além deste, sendo para isto necessário estabelecer a porta de ligação para o dispositivo.

Um tutorial à maneira e um script de perl não muito perfeito  para testar a coisa…

#!/usr/bin/perl

use Device::Modem;

# Validade do numero
sub autorizado {
my ($numero) = @_;

open( numeros, “< numeros.txt”);
@contactos = <numeros>;

foreach $tlf (@contactos){
chomp($tlf);
# debug code
# print ” — “.$tlf . ” ” . $numero . “\n”;
if ( $tlf == $numero ) {
return true;
}
}
return false;
}

$modem = new Device::Modem( port => ‘/dev/ttyUSB0’ );

if ( $modem->connect( baudrate => 115200 ) ) {
} else {
exit 0;
}

$modem->echo (0);

if ( $modem->atsend( ‘AT+CMGL=”all”‘ . Device::Modem::CR )== 1 ) {
# done ;
}
$an = $modem->answer( );
@a     = split(/\n/, $an);

$k = $hit = 0;

foreach $answer (@a){
if ( ($answer =~ /.READ./)) {

($cm, $linha)  = split(/:/, $answer);
($id,undef, $number, undef, $data)  = split(/,/, $linha);
$number =~ s/\”//gi;
$hit = 1;
}else{
if($hit == 1 ) {
$bool = autorizado($number);
if ( $bool eq true ) {
print “numero = “.$number.” msg = “.$answer.”\n”;
$hit = 0;
}
}
}
}

$modem->disconnect();

Ficou a funcionar incluindo com verificação de números o que permite usar respostas automáticas a mensagens.

Nota: Apenas um programa pode usar a porta a cada execução a comunicação com o equipamento é  assíncrona e a lista de numeros.txt tem de conter o +351 antes do número ou altera-se o código.

Um breve teste que resultou em algo produtivo viva a class do cpan Device::Modem

Sobre Fernando André
SysAdmin, Website and Application Developer

One Response to perl + huawei e220 + sms

  1. Pingback: huawei e220 perl smstools « Netcrash

Deixe uma Resposta

Please log in using one of these methods to post your comment:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: