Дополнения

Материал из Call Office Wiki
Версия от 03:23, 30 сентября 2015; McBurns (обсуждение | вклад) (Новая страница: «На этой странице вы можете найти дополнения, которые можно вставить в текст сценария, чт…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

На этой странице вы можете найти дополнения, которые можно вставить в текст сценария, чтобы изменить его работу.

Автоматическое определение порта модема Huawei при переподключении

Это дополнение автоматически находит модем по уникальному IMEI в списке подключенных к компьютеру устройств и заменяет его параметрами данные из конфигурации. Приведённый ниже код надо вставить в начале текста сценария после строки:

  var Device = new CDevice ();

Внимание! В коде нет обработки ошибок. Если она необходима, вам надо будет сделать её самим.

   var FindDevice = new ActiveXObject("CallOffice.Device");     // Создаём экземпляр объекта Device

   DeviceList = FindDevice.DeviceList (1).toArray ();           // Получаем список устройств и передаём его в массив

   for (var i in DeviceList) {                                  // Перебираем полученные устройства

      var Dev = DeviceList[i].toArray ();                       // Получаем атрибуты устройства из списка

      if (Dev[1] == 7 && !Dev[5]) {                             // Если это модем Huawei и нет ошибки при обращении к нему

         FindDevice.Open (Dev[3]);                              // Открываем текущее устройство

         var Response = FindDevice.SendCommand ('ATI1<cr>');    // Получаем ответ на посланную в устройство команду ATI1<cr>

         var SplitATIResult = /IMEI:\s([0-9]{15})/.exec (Response);             // Извлекаем из ответа IMEI устройства

         if (SplitATIResult) {                                  // Если IMEI получен

            var IMEI = SplitATIResult[1];                       // Передаём его в переменную IMEI

            if (IMEI == 'IMEI нужного вам модема') {            // Проверяем на совпадение с нужным IMEI из 15 знаков

               var DevConfig = Script.SelectConfig (undefined, 'Device');       // Получаем данные устройства из конфигурации
               DevConfig.OpenString = Dev[3];                   // Переопределяем 
               DevConfig.Name       = Dev[4];                   // параметры найденными
               DevConfig.Id         = Dev[3];                   // по IMEI

               FindDevice.Close ();                             // Закрываем устройство

               break;                                           // Выходим из цикла поиска нужного модема
            }
         }
         
         FindDevice.Close ();                                   // Закрываем устройство, если оно не оказалось нужным
      }
   }

   FindDevice = null;                                           // Уничтожаем экземпляр объекта Device