The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Набор номера на 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);
 
17.03.2012 , Автор: Alex Samorukov
Ключи: perl, cisco, ipphone, telnet / Лицензия: CC-BY
Раздел:    Корень / Маршрутизаторы Cisco, VoIP / VoIP

Обсуждение [ RSS ]
 
  • 1.1, shadow_alone, 07:48, 20/03/2012 [ответить] [смотреть все]
  • +/
    Так все тоже самое можно сделать на expect
     
     
  • 2.4, samm, 19:58, 20/03/2012 [^] [ответить] [смотреть все]
  • +/
    Наверняка можно. Просто перл у меня уже был, а expect - нет, да и не сильно нужен. А так - хоть на асме, в чём проблема.
     
  • 1.2, Аноним, 13:24, 20/03/2012 [ответить] [смотреть все]
  • +/
    респект Алекс
     
  • 1.3, Дмитрий, 14:20, 20/03/2012 [ответить] [смотреть все]
  • +/
    я бы еще добавил для очистки номера от ненужных символов

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

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

     
  • 1.5, slay, 23:15, 21/03/2012 [ответить] [смотреть все]
  • +/
    так это только для sip?  смысл тогда платить столько бабла за цискофоны и не получать кайфа от sccp?
     
     
  • 2.6, samm, 23:19, 21/03/2012 [^] [ответить] [смотреть все]  
  • +/
    > так это только для sip?  смысл тогда платить столько бабла за
    > цискофоны и не получать кайфа от sccp?

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

    Такие дела.

     
     
  • 3.8, slay, 19:00, 26/03/2012 [^] [ответить] [смотреть все]  
  • +/
    1) telnet в sccp прошивке недоступен (по крайней мере сccm8.6.2 последний device pack)
    2) Не поймите неправильно, я про себя. По мне SCCP в разы удобнее (проще в обслуге), будучи клиент-серверным протоколом.
    3) Представьте, что у конторы > 3k циско-телефонов. Данная контора не будет их покупать на ибее.
     
     
  • 4.9, samm, 22:37, 26/03/2012 [^] [ответить] [смотреть все]  
  • +/
    > 1) telnet в sccp прошивке недоступен (по крайней мере сccm8.6.2 последний device
    > pack)

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

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

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

     
     
  • 5.10, KdF, 12:36, 30/03/2012 [^] [ответить] [смотреть все]  
  • +/
    SCCP фактически позволяет server-side provisioning.
    Настроил на сервере, и на телефонах уже делать ничего не надо. Это его основное и наверное единственное достоинство.
     
  • 1.7, gd, 23:06, 23/03/2012 [ответить] [смотреть все]  
  • +/
    Спасибо большое!
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor