Scripts (версия 3.xx)/Организация звукового меню: различия между версиями

Материал из Call Office Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «Для организации звукового меню внутри сценария вам понадобится объект Device, создаваемый …»)
 
 
(не показаны 2 промежуточные версии этого же участника)
Строка 66: Строка 66:
</syntaxhighlight>
</syntaxhighlight>


Для создания многоуровневого меню можно добавлять этот код в любой из пунктов '''case'''.
Для создания многоуровневого меню можно добавлять этот код в любой из пунктов '''case'''. Например:
 
<syntaxhighlight lang="javascript">
// Считаем, что Device объявлено заранее
 
Device.StartDetectDTMF (1,              // Ожидается нажатие одной клавиши
                        '0123');        // Считаются значимыми клавиши от 0 до 3
 
Device.Listen (10);                    // Ждём нажатия 10 секунд
 
Device.StopDetectDTMF ();              // Остановка распознавания нажатых клавиш
 
var DetectedSignal = Device.ReceivedSignals ();        // Значение нажатой клавиши в переменной DetectedSignal
 
switch (DetectedSignal) {
 
  case '1':                  // При нажатии клавиши «1» делаем дополнительное голосовое меню
 
      //<здесь размещаем код, воспроизводящий описание пунктов меню>
 
      Device.StartDetectDTMF (1,              // Ожидается нажатие одной клавиши
                              '12');          // Считаются значимыми клавиши 1 и 2
 
      Device.Listen (10);                    // Ждём нажатия 10 секунд
 
      Device.StopDetectDTMF ();              // Остановка распознавания нажатых клавиш
 
      DetectedSignal = Device.ReceivedSignals ();        // Значение нажатой клавиши в переменной DetectedSignal
 
      switch (DetectedSignal) {
 
        case '1':
            // <здесь помещаем то, что выполняется при нажатии клавиши «1» во втором уровне меню>;
            break;
 
        case '2':
            // <здесь помещаем то, что выполняется при нажатии клавиши «2» во втором уровне меню>;
            break;
 
        default:
            // <здесь помещаем то, что выполняется, если нажаты клавиши для прерывания или не нажато ничего во втором уровне меню>;
            break;
      }
 
      break;
 
  case '2':
      // <здесь помещаем то, что выполняется при нажатии клавиши «2»>;
      break;
 
  case '3':
      // <здесь помещаем то, что выполняется при нажатии клавиши «3»>;
      break;
 
  case '0':
    default:
      // <здесь помещаем то, что выполняется при нажатии клавиши «0», она считается нажатой по умолчанию>;
      break;
}
</syntaxhighlight>

Текущая версия на 06:31, 8 апреля 2014

Для организации звукового меню внутри сценария вам понадобится объект Device, создаваемый в каждом стандартном сценарии командой:

  var Device = new CDevice ();

Итак, простейшее одноранговое меню:

// Считаем, что Device объявлено заранее

Device.StartDetectDTMF (1,              // Ожидается нажатие одной клавиши
                        '0123456789',   // Считаются значимыми клавиши от 0 до 9
                        '*#');          // Прерывают ожидание клавиши * и #

Device.Listen (10);                     // Ждём нажатия 10 секунд

Device.StopDetectDTMF ();               // Остановка распознавания нажатых клавиш

var DetectedSignal = Device.ReceivedSignals ();         // Значение нажатой клавиши в переменной DetectedSignal

switch (DetectedSignal) {

   case '0':
      // <здесь помещаем то, что выполняется при нажатии клавиши «0»>;
      break;

   case '1':
      // <здесь помещаем то, что выполняется при нажатии клавиши «1»>;
      break;

   case '2':
      // <здесь помещаем то, что выполняется при нажатии клавиши «2»>;
      break;

   case '3':
      // <здесь помещаем то, что выполняется при нажатии клавиши «3»>;
      break;

   case '4':
      // <здесь помещаем то, что выполняется при нажатии клавиши «4»>;
      break;

   case '5':
      // <здесь помещаем то, что выполняется при нажатии клавиши «5»>;
      break;

   case '6':
      // <здесь помещаем то, что выполняется при нажатии клавиши «6»>;
      break;

   case '7':
      // <здесь помещаем то, что выполняется при нажатии клавиши «7»>;
      break;

   case '8':
      // <здесь помещаем то, что выполняется при нажатии клавиши «8»>;
      break;

   case '9':
      // <здесь помещаем то, что выполняется при нажатии клавиши «9»>;
      break;

   default:
      // <здесь помещаем то, что выполняется, если нажаты клавиши для прерывания или не нажато ничего>;
      break;
}

Для создания многоуровневого меню можно добавлять этот код в любой из пунктов case. Например:

// Считаем, что Device объявлено заранее

Device.StartDetectDTMF (1,              // Ожидается нажатие одной клавиши
                        '0123');        // Считаются значимыми клавиши от 0 до 3

Device.Listen (10);                     // Ждём нажатия 10 секунд

Device.StopDetectDTMF ();               // Остановка распознавания нажатых клавиш

var DetectedSignal = Device.ReceivedSignals ();         // Значение нажатой клавиши в переменной DetectedSignal

switch (DetectedSignal) {

   case '1':                   // При нажатии клавиши «1» делаем дополнительное голосовое меню

      //<здесь размещаем код, воспроизводящий описание пунктов меню>

      Device.StartDetectDTMF (1,              // Ожидается нажатие одной клавиши
                              '12');          // Считаются значимыми клавиши 1 и 2

      Device.Listen (10);                     // Ждём нажатия 10 секунд

      Device.StopDetectDTMF ();               // Остановка распознавания нажатых клавиш

      DetectedSignal = Device.ReceivedSignals ();         // Значение нажатой клавиши в переменной DetectedSignal

      switch (DetectedSignal) {

         case '1':
            // <здесь помещаем то, что выполняется при нажатии клавиши «1» во втором уровне меню>;
            break;

         case '2':
            // <здесь помещаем то, что выполняется при нажатии клавиши «2» во втором уровне меню>;
            break;

         default:
            // <здесь помещаем то, что выполняется, если нажаты клавиши для прерывания или не нажато ничего во втором уровне меню>;
            break;
      }

      break;

   case '2':
      // <здесь помещаем то, что выполняется при нажатии клавиши «2»>;
      break;

   case '3':
      // <здесь помещаем то, что выполняется при нажатии клавиши «3»>;
      break;

   case '0':
    default:
      // <здесь помещаем то, что выполняется при нажатии клавиши «0», она считается нажатой по умолчанию>;
      break;
}