Компоненты — это объекты, из которых собирается сценарий. Часть из них общая для всех типов сценариев, часть существует только в IVR, диалоговых или служебных. Здесь описаны общие компоненты, отвечающие за логику: начало и конец, переменные, ветвление, вызов других сценариев и задержку.
Старт
Есть в любом сценарии — с него начинается выполнение, если трубка обрабатываемой линии положена. Принимает на вход параметр и может сохранить его во внутреннюю переменную сценария.
| Свойство | Описание |
|---|---|
| Параметр запуска | Переменная, в которую сохраняется значение, переданное из запустившего сценария. |
| Переход | Компонент, на который передаётся управление. |
Если трубка уже поднята, сразу после «Старта» выполняется безусловный переход к компоненту «Поднять трубку», если такой в сценарии есть. Все компоненты между ними обработчик пропускает. То же правило действует и при запуске вложенных сценариев.
Стоп
Завершает сценарий без разрыва связи. Типичные случаи — успешное переключение в сценарии IVR или корректное завершение работы в сценарии диалога.
| Свойство | Описание |
|---|---|
| Возврат управления | Да / нет, по умолчанию «Да». Передать ли управление стеку (да) или прекратить выполнение всей последовательности сценариев (нет). Свойство работает только в сценариях, вызванных компонентом «Запуск сценария» с установленным флагом «Возврат управления», и в проектных сценариях IVR, вызванных компонентом «Вход в проект». |
Присвоение значения переменной
Записывает в переменную значение аргумента. Если типы не совпадают, применяется правило включения типов.
| Свойство | Описание |
|---|---|
| Режим | Одиночный или множественный. Множественный позволяет выполнить в одном компоненте сразу несколько присвоений. |
| Переменная | Только в одиночном режиме. Локальная переменная — приёмник значения. |
| Значение | Только в одиночном режиме. Аргумент: значение, переменная, функция или выражение. |
| Операции | Только в множественном режиме. Список пар «переменная — аргумент», выполняемых в порядке перечисления. |
| Переход | Компонент, на который передаётся управление. |
Сравнение
Сравнивает два аргумента и разветвляет сценарий: при истинности выбранной логической операции управление идёт по ветке «Правда», иначе — по ветке «Ложь».
| Свойство | Описание |
|---|---|
| Аргумент 1, Аргумент 2 | Сравниваемые аргументы. |
| Тип сравнения | = равно, > больше, >= больше или равно, < меньше, <= меньше или равно, != не равно. |
| Переход, правда | Куда идти, если операция вернула истину. |
| Переход, ложь | Куда идти, если операция вернула ложь. |
Меню сравнения
Сравнивает аргумент со списком значений. Число веток перехода не ограничено. Управление уходит по ветке первого совпавшего значения; если совпадений нет — по ветке «Прочее».
| Свойство | Описание |
|---|---|
| Аргумент | Сравниваемый аргумент. |
| Значения (варианты) | Окно ввода: возможные значения, с каждым из которых связан свой переход. |
| Переход, прочее | Куда идти, если ни одно значение не совпало. |
Запуск сценария
Разбивает крупный сценарий на логические блоки: один сценарий передаёт управление в начало другого. На запуск можно передать значение — его примет компонент «Старт» вложенного сценария. Кроме того, все одноимённые переменные одного типа перенесут свои значения из сценария в сценарий без изменений.
| Свойство | Описание |
|---|---|
| Тип запуска | Вложенный — прекращает выполнение текущего сценария (возможно, до возврата управления) и активизирует сценарий того же типа. Асинхронный служебный — запускает служебный сценарий параллельным процессом и продолжает выполнение текущего. Фоновое медиа-взаимодействие — только для IVR: инициирует дублирующий параллельный IVR-сценарий. |
| Сценарий | Имя запускаемого сценария; можно выбрать из списка или вписать. |
| Параметр запуска | Аргумент, значение которого передаётся на старт запускаемого сценария. |
| Возврат управления | Да / нет, по умолчанию «Нет». См. разбор ниже. |
| Переход | Куда идти после возврата из вложенного сценария либо сразу после запуска служебного. Обязательно для асинхронного запуска и для вложенного с установленным возвратом управления. |
Возврат управления: два способа вызова
| Значение | Что происходит |
|---|---|
| Нет (по умолчанию) | Текущий сценарий прекращается, запускается вложенный — со всеми значениями переменных. Наиболее частый способ на практике. |
| Да | Вложенный сценарий вызывается как функция: после его завершения управление возвращается в точку вызова. Переменные исходного сценария доступны во вложенном и наоборот, поэтому после возврата они будут содержать изменённые значения. |
На процедуру возврата влияет и флаг «Возврат управления» компонента «Стоп»: им пользуются во вложенном сценарии после успешного переключения, когда нужно безусловно прервать обработчик.
Асинхронно запускать через этот компонент можно любой служебный сценарий, не работающий с ресурсами основного сценария — линией, оператором. При таком запуске начальные значения переменных дочернего сценария, совпадающих по имени и типу с переменными основного, устанавливаются по значениям основного.
Пауза
Задерживает выполнение перед следующим компонентом. При длительности 0 компонент пропускается.
| Свойство | Описание |
|---|---|
| Время задержки | Время в миллисекундах. |
| Переход | Компонент, на который передаётся управление. |