The OpenNET Project / Index page

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

Набор номера на 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 (ok), 07:48, 20/03/2012 [ответить]  
  • +/
    Так все тоже самое можно сделать на expect
     
     
  • 2.4, samm (ok), 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 (ok), 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 (ok), 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:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру