Набор номера на Cisco IP Phone 7960/7940 из скрипта |
[исправить] |
Решил поделиться скриптом для набора номера на аппаратах Cisco IP Phone
7960/7940 (возможно, работает и на других с аналогичной прошивкой). Зачем это
может быть нужно? Я это использую для интеграции с callto:// links и
интеграцией со своим телефонным справочником. Скрипт работает через telnet, так
что вы должны включить его на телефоне. Набор номера использует команду test,
которая служит для эмуляции нажатия кнопок на аппарате. Пауза (с зависимостью
от длинны номера) требуется для того, чтобы телефон не сходил с ума.
Надеюсь, кому-то это скрипт тоже пригодится.
#!/usr/bin/perl
use Net::Telnet;
use Time::HiRes;
# cisco phone host name
my $host='192.168.0.1';
# cisco phone password
my $password='cisco';
# mute on a dial 0/1
my $mute=0;
my $sleeptime=.2;
my $prompt='/> $/';
my $argc = @ARGV;
if ($argc!=1){
print "Usage: call.pl <number>\\n";
exit;
}
my $number=@ARGV[0];
if($number!~/^[0-9*#]+$/) {
print "Error: wrong characters in the numer\\n";
exit 2;
}
$telnet = new Net::Telnet ( Timeout=>3, Errmode=>'die');
# connecting
$telnet->open($host);
$telnet->waitfor('/Password :$/i');
$telnet->print($password);
$telnet->waitfor($prompt);
$telnet->print('test open');
$telnet->waitfor($prompt);
$telnet->print('test key spkr');
$telnet->waitfor($prompt);Time::HiRes::sleep($sleeptime);
if($mute){
$telnet->print('test key mute');
$telnet->waitfor($prompt);Time::HiRes::sleep($sleeptime);
}
$telnet->print("test key ".$number."#");
$telnet->waitfor($prompt);Time::HiRes::sleep((length($number)+1)*$sleeptime);
$telnet->print('test close');
$telnet->waitfor($prompt);
$telnet->close($host);
|
|
|
|
Раздел: Корень / Маршрутизаторы Cisco, VoIP / VoIP |