Re: рассылать sms
Hello!
On Monday 09 November 2009 07:53:41 Олег Ключкин wrote:
> У меня статья по такой задаче есть:
> http://www.os-rostov.ru/stati/server-sms-soobsenij
Не проще ли AT-командами управлять модемом? Ниже в качестве
примера приведен кусок перлового кода для работы по голосовому
каналу. Где-то и для рассылки смс скрипт валяется, делал чтобы
подруге на телефон гороскоп присылат, скачивая его с какого-то
сайта :-) так там все еще проще.
Отправлять все же надежнее транслитом, ибо старые телефоны
просто не поддерживают кириллицу ни в каком виде. Сталкивался
с этим лет 5 назад, не факт, что таких телефонов "на руках" вовсе
не осталось.
#!/usr/bin/perl
use Device::Modem;
use DBI;
$dbuser="mapedit";
$dbpwd="";
$dbname="map_navigation";
my $number = $ARGV[0];
chomp $number;
$number =~ s/\+7/8/g;
my $pwd = $ARGV[1];
chomp $pwd;
$pwd = "incom: \r\n";
#my $unit_id = $ARGV[2];
my $unit_id = $number;
my $port ||= '/dev/ttyS0';
my $baud ||= 9600;
my $timeout = 10;
my $modem = new Device::Modem ( port => $port );
if( $modem->connect( baudrate => $config{'baud'} || 9600 ) ) {
print "ok connected.\n";
} else {
die "cannot connect to $port serial port!: $!";
}
print '- trying to dial [', $number, ']', "\n";
($ok, $answer) = $modem->dial($number,30);
if( $ok ) {
print "Ok, number dialed\n";
} else {
#print "No luck!\n";
die "No connect: $answer\n";
}
# послать навигатору приглашение к обмену данными
$modem->atsend( $pwd );
my $close = 0;
my $file = '';
my $i=0;
while( !$close )
{
$answer = $modem->answer(), "\n";
if ($answer eq '+++' ||
$answer eq 'NO CARRIER' ||
$answer eq 'AT+CPAS' ||
$answer eq 'ATH')
{
print "hungup '$answer'\n";
$close = 1;
}
else
{
chomp $answer;
$answer =~ s/\r//g;
$answer =~ s/\n//g;
print "[".$answer."]\n";
$file .= $answer;
}
# limit execution circles
if (++$i>$timeout)
{
print "timeout (circles): $timeout\n";
$close = 1;
}
}
# end data session
$modem->attention(); # send 'attention' sequence (+++)
$modem->hangup(); # returns modem answer
$modem->disconnect();
Best regards, Alexey Pechnikov.
http://pechnikov.tel/
Reply to: