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

Исходное сообщение
"Раздел полезных советов: Набор номера на Cisco IP Phone 7960..."

Отправлено auto_tips , 20-Мрт-12 07:48 
Решил поделиться скриптом для набора номера на аппаратах 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);


URL:
Обсуждается: http://www.opennet.me/tips/info/2675.shtml


Содержание

Сообщения в этом обсуждении
"Набор номера на Cisco IP Phone 7960/7940 из скрипта"
Отправлено shadow_alone , 20-Мрт-12 07:48 
Так все тоже самое можно сделать на expect

"Набор номера на Cisco IP Phone 7960/7940 из скрипта"
Отправлено samm , 20-Мрт-12 19:58 
Наверняка можно. Просто перл у меня уже был, а expect - нет, да и не сильно нужен. А так - хоть на асме, в чём проблема.

"Набор номера на Cisco IP Phone 7960/7940 из скрипта"
Отправлено Аноним , 20-Мрт-12 13:24 
респект Алекс

"Набор номера на Cisco IP Phone 7960/7940 из скрипта"
Отправлено Дмитрий , 20-Мрт-12 14:20 
я бы еще добавил для очистки номера от ненужных символов

$number =~ s/^\+7/8/g;
$number =~ s/^\(/8/g;
$number =~ s/[-,(,), ]//g;

вот только как в MacOS X прикрутить к callto:// ???


"Набор номера на Cisco IP Phone 7960/7940 из скрипта"
Отправлено slay , 21-Мрт-12 23:15 
так это только для sip?  смысл тогда платить столько бабла за цискофоны и не получать кайфа от sccp?

"Набор номера на Cisco IP Phone 7960/7940 из скрипта"
Отправлено samm , 21-Мрт-12 23:19 
> так это только для sip?  смысл тогда платить столько бабла за
> цискофоны и не получать кайфа от sccp?

1) не совсем понимаю почему это только для сип.
2) Вообще не понимаю в чём для меня "кайф" sccp
3) 7940/7960 на ебее можно купить крайне дешёво, модель уже давно снята с производства.

Такие дела.


"Набор номера на Cisco IP Phone 7960/7940 из скрипта"
Отправлено slay , 26-Мрт-12 19:00 
1) telnet в sccp прошивке недоступен (по крайней мере сccm8.6.2 последний device pack)
2) Не поймите неправильно, я про себя. По мне SCCP в разы удобнее (проще в обслуге), будучи клиент-серверным протоколом.
3) Представьте, что у конторы > 3k циско-телефонов. Данная контора не будет их покупать на ибее.

"Набор номера на Cisco IP Phone 7960/7940 из скрипта"
Отправлено samm , 26-Мрт-12 22:37 
> 1) telnet в sccp прошивке недоступен (по крайней мере сccm8.6.2 последний device
> pack)

А, ну может, я за ним не следил. Тогда для меня это еще 1 минус.
> 2) Не поймите неправильно, я про себя. По мне SCCP в разы
> удобнее (проще в обслуге), будучи клиент-серверным протоколом.

Ну от сервера зависит, опять же. Но это наколенное решение явно не подходит для случая с 3000 телефонов ))
> 3) Представьте, что у конторы > 3k циско-телефонов. Данная контора не будет
> их покупать на ибее.

Данная контора их не будет покупать в принципе, потому что они уже давно end of life и end of sale.  А вот для маленького офиса или дома эти телефоны вполне себе гуд.


"Набор номера на Cisco IP Phone 7960/7940 из скрипта"
Отправлено KdF , 30-Мрт-12 12:36 
SCCP фактически позволяет server-side provisioning.
Настроил на сервере, и на телефонах уже делать ничего не надо. Это его основное и наверное единственное достоинство.

"Набор номера на Cisco IP Phone 7960/7940 из скрипта"
Отправлено gd , 23-Мрт-12 23:06 
Спасибо большое!