URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7761
[ Назад ]

Исходное сообщение
"Как определить оператора сим`ки?"

Отправлено zigli , 10-Дек-08 10:55 
есть gprs модем ComWL
задача стоит в том чтобы при замене симки определялся провайдер, и запускалcz ppp с соответствующим скриптом

pon provider


нашел в и-нете IPC::Open2

#!/usr/bin/perl -w

    use IPC::Open2;
    open2(*MODEM_IN,*MODEM_OUT, "cu -l /dev/ttyS0");
    $_ = <MODEM_IN>;
    chop;
    if ( !m/^Connected/ ) {
        print "$0: cu printed $_ instead of Connected";
    }else{
        print "HERE";
    }


sub read_line {
    $_ = <MODEM_IN>;
    $_ || die("got eof on modem");
    s/[\r\n]+$//;
    if ( $_ eq "" ) {
        $_ = <MODEM_IN>;
        $_ || die("got eof on modem");
        s/[\r\n]+$//;
    }
    return $_;
}

    print MODEM_OUT "AT+CIMI\r\n";
    my $line = read_line();
    print "$line\n";
    print MODEM_OUT "~.\r\n"

но что-то не так..
скрипт виснет после
    open2(*MODEM_IN,*MODEM_OUT, "cu -l /dev/ttyS0");
    $_ = <MODEM_IN>;

ЗЫ
Надо считать код IMSI - AT+CIMI
Ответом будет цифоровой ASCII код, типа "25099ххххххххх"
Где 250 - страна( россия) а 99 - код оператора(билайн).



Содержание

Сообщения в этом обсуждении
"Как определить оператора сим`ки?"
Отправлено zigli , 10-Дек-08 10:58 
вот так

"Как определить оператора сим`ки?"
Отправлено NuINu , 10-Дек-08 11:36 

>    open2(*MODEM_IN,*MODEM_OUT, "cu -l /dev/ttyS0");

а сам ты к модему с помощью cu подсоединяешься?
попробуй правильно выставить скорость.