Открыть меню
Платформа Эра. Документация
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Сценарии IVR: различия между версиями

Материал из Платформа Эра. Документации
Нет описания правки
м Исправление орфографии (ссылки и код не затронуты)
 
(не показано 5 промежуточных версий этого же участника)
Строка 19: Строка 19:
= Компоненты сценариев IVR =
= Компоненты сценариев IVR =


=== Компонент Завершение звонка ===
= Компоненты управления вызовом =
 
==== Компонент Завершение звонка ====
Разрывает текущий диалог отправкой SIP-запроса BYE.
Разрывает текущий диалог отправкой SIP-запроса BYE.


Строка 50: Строка 52:
|}
|}


== Компонент SIP-ответ ==
==== Компонент SIP-ответ ====
Отправляет SIP-ответ на входящий INVITE, инициировавший запуск IVR сценария. Это может быть:
Отправляет SIP-ответ на входящий INVITE, инициировавший запуск IVR сценария. Это может быть:
<nowiki>*</nowiki> предварительный ответ 1xx,
<nowiki>*</nowiki> предварительный ответ 1xx,
Строка 89: Строка 91:
|Не разветвляющий
|Не разветвляющий
|}
|}
 
'''Свойства'''
==== Свойства ====
{| class="wikitable"
{| class="wikitable"
|+Table 2. Свойства
|+Table 2. Свойства
Строка 127: Строка 128:
|Аргумент, содержащий причину. Отправляется в SIP-ответе в заголовке <code>Reason</code>.
|Аргумент, содержащий причину. Отправляется в SIP-ответе в заголовке <code>Reason</code>.


По умочанию заголовок не добавляется.
По умолчанию заголовок не добавляется.
|-
|-
|Название: <code>Отображаемое имя</code>
|Название: <code>Отображаемое имя</code>
Строка 138: Строка 139:
|Аргумент, содержащий имя абонента. Отправляется в SIP-ответе в качестве displayname в заголовке <code>Remote-Party-Id</code>.
|Аргумент, содержащий имя абонента. Отправляется в SIP-ответе в качестве displayname в заголовке <code>Remote-Party-Id</code>.


По умочанию заголовок не добавляется.
По умолчанию заголовок не добавляется.
|-
|-
|Название: <code>Переадресация на номер</code>
|Название: <code>Переадресация на номер</code>
Строка 159: Строка 160:
|}
|}


== Компонент Перевод на номер ==
==== Компонент Перевод на номер ====
Производит перевод абонента текущего звонка на указанный номер путем отправки ему SIP-запроса REFER.
Производит перевод абонента текущего звонка на указанный номер путем отправки ему SIP-запроса REFER.
После успешного выполнения компонента выполнение основной ветки сценария прерывается. На любом шаге процесса может произойти плановый отказ, тогда управление передается следующему компоненту по соответствующей ветке перехода.
После успешного выполнения компонента выполнение основной ветки сценария прерывается. На любом шаге процесса может произойти плановый отказ, тогда управление передается следующему компоненту по соответствующей ветке перехода.
Строка 192: Строка 193:
|Разветвляющий, прерывающий
|Разветвляющий, прерывающий
|}
|}
 
'''Свойства'''
==== Свойства ====
{| class="wikitable"
{| class="wikitable"
|+Table 2. Свойства
|+Table 2. Свойства
Строка 293: Строка 293:
|}
|}


=== Компонент Воспроизведение ===
==== Компонент Колл-центр ====
Осуществляет воспроизведение аудио-файла абоненту.
Переводит сценарий во время своей активности под внешнее управление коллцентра.
Может инициировать как синхронное воспроизведение, при котором управление следующему компоненту будет передано только после окончания воспроизведения, так и фоновое воспроизведение, при котором передача управления следующему компоненту произойдет сразу после запуска воспроизведения. Управление фоновым воспроизведением допускает паузы и остановки. Возобновление воспроизведения возможно с указанной миллисекунды конкретного файла.
Позволяет:
 
<nowiki>*</nowiki> ставить вызов в очередь под управление колл-центра;
 
<nowiki>*</nowiki> запускать сценарии колл-центра;
 
<nowiki>*</nowiki> изменять контекст вызова;


Поддерживается последовательное и цикличное воспроизведение случайных файлов в указанном каталоге.
<nowiki>*</nowiki> присваивать метки к вызову.
{| class="wikitable"
{| class="wikitable"
|+Table 1. Системные характеристики
|+Table 1. Системные характеристики
Строка 304: Строка 310:
|-
|-
|Индекс
|Индекс
|<code>204</code>
|<code>228</code>
|-
|-
|Краткое название
|Краткое название
|<code>play</code>
|<code>api_сс</code>
|-
|-
|Типы сценариев
|Типы сценариев
Строка 313: Строка 319:
|-
|-
|Стартовый модуль
|Стартовый модуль
|<code>r_sip_ivr_script_component_play</code>
|<code>era_sip_ivr_script_component_api_сс</code>
|-
|-
|Режим
|Режим
Строка 324: Строка 330:
|Разветвляющий, замыкающий
|Разветвляющий, замыкающий
|}
|}
 
'''Свойства'''
==== Свойства ====
{| class="wikitable"
{| class="wikitable"
|+Table 2. Свойства
|+Table 2. Свойства
Строка 331: Строка 336:
!Описание
!Описание
|-
|-
|Название: <code>Слой</code>
|Название: <code>Действие</code>


Код: <code>playerId</code>
Код: <code>action</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>"default"</code>
По умолчанию: — 
|Выбор слоя воспроизведения.
|Возможные значения:


Слоем называется отдельный терминейшен в медиа-контексте IVR, который воспроизводит единовременно не более одного файла.
* Поставить в очередь (<code>acd</code>) - размещает вызов в очереди под управлением колл-центра.
 
* Запустить сценарий (<code>scenario</code>) - запускает сценарий колл-центра.
Таким образом, IVR сценарий в различных режимах воспроизведения, включающих фоновый, может одновременно воспроизводить несколько файлов – все они микшируются.
* Изменить контекст (<code>context</code>) - изменяет контекст вызова, делая доступными данные о звонке в карточках и сценариях колл-центра.
* Присвоить метку (<code>addtag</code>) - добавляет метку к вызову, позволяя разветвлять логику в сценариях колл-центра и производить фильтрацию в отчетах по вызовам.
|-
|-
|Название: <code>Режим</code>
|Название: <code>Код очереди</code>


Код: <code>mode</code>
Код: <code>acdCode</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>Файл полностью</code>
По умолчанию: — 
|Выбор режима работы компонента.
|Аргумент, содержащий код очереди в колл-центре. Очередь должна существовать.


Возможные варианты:
Доступно только для действия 'Поставить в очередь'.
 
* <code>Файл полностью</code> (<code>syncPlayFile</code>, <code>0</code>) – Производит воспроизведение аудио-файла с ожиданием его завершения. Если в качестве параметров указан каталог, то производится воспроизведение случайного файла из каталога.
* <code>Предпрослушивание</code> (<code>syncPlayFileLimit</code>, <code>1</code>) – Производит воспроизведение с ожиданием его завершения и ограничением по времени воспроизведения.
* <code>Файл + дополнительное время</code> (<code>syncPlayFileExtra</code>, <code>2</code>) – Производит воспроизведение с ожиданием его завершения и ожиданием дополнительной паузы, применяемой для доввода DTMF символов.
* <code>Список файлов</code> (<code>syncPlayFiles</code>, <code>7</code>) – Производит воспроизведение последовательного списка файлов. Опционально может ожидать дополнительной паузы, применяемой для доввода DTMF символов.
* <code>Фоновое воспроизведение</code> (<code>asyncPlayStart</code>, <code>3</code>) – Добавляет слой и инициирует фоновое воспроизведение в нем, сразу передавая управление следующему компоненту. Если в указанном слое уже производится воспроизведение, то оно автоматически прерывается.
* <code>Остановка фона</code> (<code>asyncPlayStop</code>, <code>4</code>) – Производит остановку воспроизведения в указанном слое.
* <code>Изменить громкость фона</code> (<code>asyncModifyVolume</code>, <code>6</code>) – Производит изменение громкости воспроизводимого в фоне файла на указанном слое.
|-
|-
|Название: <code>Время, с</code>
|Название: <code>Приоритет</code>


Код: <code>playTimeSec</code>
Код: <code>priority</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: 100
|Ограничение на время воспроизведения, в секундах.
|Аргумент, определяющий приоритет текущего вызова в очереди. Чем меньше значение, тем больше приоритет.


Применяется в режиме <code>Предпрослушивание</code>.
Доступно только для действия 'Поставить в очередь'.
|-
|-
|Название: <code>Доп. время, с</code>
|Название: <code>Подменять предыдущий вызов</code>


Код: <code>extraTimeSec</code>
Код: <code>deleteLastArchiveACDCall</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>0</code>
По умолчанию: нет
|Таймаут дополнительной паузы после завершения воспроизведения, в секундах.
|Выключатель режима подмены предыдущего сохраненного вызова в архиве сеанса текущим вызовом. Применяется в том случае, если необходимо в статистике по вызову видеть только одну очередь, даже если вызов прошел через несколько очередей.


Применяется в режимах <code>Файл + дополнительное время</code> и <code>Список файлов</code>.
Доступно только для действия 'Поставить в очередь'.
|-
|-
|Название: <code>Каталог</code>
|Название: <code>Код сценария</code>


Код: <code>folder</code>
Код: <code>scenarioCode</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий путь к каталогу.
|Аргумент, содержащий код сценария колл-центра, подлежащий синхронному исполнению.


Должен включать одну из файловых категорий.
Доступно только для действия 'Запустить сценарий'.
|-
|-
|Название: <code>Случайно</code>
|Название: <code>Контекст</code>


Код: <code>randomize</code>
Код: <code>context</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>Да</code>
По умолчанию: — 
|Режим случайного выбора очередного файла из каталога.
|Таблица опций вида Ключ-Значение, обновляющая текущий контекст. Пустые ключи игнорируются, пустые значения приводят к обнулению поля с соответствующим ключом в контексте.


Применяется при указании в качестве источника каталога с аудио-файлами.
Доступно только для действий 'Поставить в очередь' и 'Изменить контекст'.
 
* <code>Да</code> – в начале и при завершении воспроизведения каждого аудио-файла очередной файл выбирается случайным образом.
* <code>Нет</code> – файлы воспроизводятся в порядке лексико-графической сортировки по именам.
|-
|-
|Название: <code>Файл</code>
|Название: <code>Параметры вызова</code>


Код: <code>file</code>
Код: <code>queueOpts</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Файл для воспроизведения.
|Таблица опций вида Ключ-Значение, обновляющая параметры вызова в очереди. Пустые ключи игнорируются.


Может быть выбран в одном из режимов:
Доступно только для действия 'Поставить в очередь'.
 
* статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
* сформированный аргументами путь, который должен включать одну из файловых категорий.
|-
|-
|Название: <code>Потоковый файл</code>
|Название: <code>Метка</code>


Код: <code>fileCanGrow</code>
Код: <code>tag</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>Нет</code>
По умолчанию: — 
|Режим потокового воспроизведения растущего файла.
|Аргумент, содержащий новую метку (строка).


Применяется только в режимах воспроизведения <code>Файл полностью</code>, <code>Предпрослушивание</code>, <code>Файл + дополнительное время</code>, <code>Фоновое воспроизведение</code> при воспроизведении одного конкретного файла.
Доступно только для действия 'Добавить метку'.
|-
|Название: <code>Переход</code>


Режим полезен для нужд организации потокового воспроизведения, например когда данные генерируются внешним сервисом постепенно, и их необходимо сразу отдавать в голосовой канал.
Код: <code>transfer</code>


В таком режиме может воспроизводиться только WAV-файл, у которого в заголовке размер заведомо больше того объема сэмплов, которые размещены в файле.
Усл. видимости: <code>нет</code>


Если воспроизведение доходит до текущего конца файла, а размер файла, указанный в WAV-заголовке не достигнут, плеер генерирует тишину.
По умолчанию: — 
|Компонент, которому передается управление после завершения работы компонента отключением внешней системы.
|-
|Название: <code>Переход, время</code>


По мере добавления сэмплов в конец файла воспроизведение продолжается.
Код: <code>transferTimeout</code>


Воспроизведение завершается тогда, когда количество воспроизведенных сэмплов из файла совпадет с указанным количеством сэмплов в Wav-заголовке.
Усл. видимости: <code>нет</code>


При этом в Wav-заголовок допускается перезаписать размер, когда данные закончатся.
По умолчанию: — 
 
|Компонент, которому передается управление при завершении по таймауту принятия управления сервисами колл-центра (3 секунды).
Возможные варианты:
 
<nowiki>*</nowiki> <code>Нет</code> – обычный режим воспроизведения.
 
<nowiki>*</nowiki> <code>Да</code> – допускается воспроизведение из растущего WAV-файла.
|-
|-
|Название: <code>Таймаут получения данных, мс</code>
|Название: <code>Переход, ошибка</code>


Код: <code>growingTimeoutMs</code>
Код: <code>transferError</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>
 
По умолчанию: 0
|При воспроизведении потокового файла с ожиданием поступления данных, в момент когда данных недостаточно, воспроизводится тишина. Чтобы завершить воспроизведение необходимо прописать в заголовок реальный размер данных.
 
Параметр позволяет установить предельное время в миллисекундах, когда воспроизводится тишина в ожидании поступления данных.
 
Значение 0 - таймаут не применяется.
|-
|Название: <code>Файлы (JSON-список)</code>
 
Код: <code>filesArg</code>
 
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий JSON-структуру в виде массива строк, каждая из которых представляет путь к файлу.
|Компонент, которому передается управление в случае возникновения ошибки.
|}


Каждый путь должен включать одну из файловых категорий.


Файлы воспроизводятся в порядке указания в списке.
==== Компонент Воспроизведение ====
|-
Осуществляет воспроизведение аудио-файла абоненту.
|Название: <code>Зацикливать</code>
Может инициировать как синхронное воспроизведение, при котором управление следующему компоненту будет передано только после окончания воспроизведения, так и фоновое воспроизведение, при котором передача управления следующему компоненту произойдет сразу после запуска воспроизведения. Управление фоновым воспроизведением допускает паузы и остановки. Возобновление воспроизведения возможно с указанной миллисекунды конкретного файла.


Код: <code>loop</code>
Поддерживается последовательное и цикличное воспроизведение случайных файлов в указанном каталоге.
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|Индекс
|<code>204</code>
|-
|Краткое название
|<code>play</code>
|-
|Типы сценариев
|<code>IVR</code>
|-
|Стартовый модуль
|<code>r_sip_ivr_script_component_play</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, замыкающий
|}
'''Свойства'''
{| class="wikitable"
|+Table 2. Свойства
!Спецификация
!Описание
|-
|Название: <code>Слой</code>


Усл. видимости: <code>да</code>
Код: <code>playerId</code>


По умолчанию: <code>Нет</code>
Усл. видимости: <code>нет</code>
|Выключение режима непрерывного зацикленного воспроизведения.


При воспроизведении через выбор каталога, всякий раз производится случайный выбор нового файла.
По умолчанию: <code>"default"</code>
|-
|Выбор слоя воспроизведения.
|Название: <code>Начало, мс</code>


Код: <code>startAt</code>
Слоем называется отдельный терминейшен в медиа-контексте IVR, который воспроизводит единовременно не более одного файла.


Усл. видимости: <code>да</code>
Таким образом, IVR сценарий в различных режимах воспроизведения, включающих фоновый, может одновременно воспроизводить несколько файлов – все они микшируются.
|-
|Название: <code>Режим</code>


По умолчанию: — 
Код: <code>mode</code>
|Аргумент, содержащий смещение для старта воспроизведения, в миллисекундах.


Имеет смысл при незацикленном воспроизведении файла.
Усл. видимости: <code>нет</code>
|-
|Название: <code>Конец, мс</code>


Код: <code>stopAt</code>
По умолчанию: <code>Файл полностью</code>
|Выбор режима работы компонента.


Усл. видимости: <code>да</code>
Возможные варианты:


По умолчанию: — 
* <code>Файл полностью</code> (<code>syncPlayFile</code>, <code>0</code>) – Производит воспроизведение аудио-файла с ожиданием его завершения. Если в качестве параметров указан каталог, то производится воспроизведение случайного файла из каталога.
|Аргумент, содержащий финальную позицию в файле, в миллисекундах.
* <code>Предпрослушивание</code> (<code>syncPlayFileLimit</code>, <code>1</code>) – Производит воспроизведение с ожиданием его завершения и ограничением по времени воспроизведения.
 
* <code>Файл + дополнительное время</code> (<code>syncPlayFileExtra</code>, <code>2</code>) – Производит воспроизведение с ожиданием его завершения и ожиданием дополнительной паузы, применяемой для доввода DTMF символов.
Имеет смысл при незацикленном воспроизведении файла.
* <code>Список файлов</code> (<code>syncPlayFiles</code>, <code>7</code>) – Производит воспроизведение последовательного списка файлов. Опционально может ожидать дополнительной паузы, применяемой для доввода DTMF символов.
* <code>Фоновое воспроизведение</code> (<code>asyncPlayStart</code>, <code>3</code>) – Добавляет слой и инициирует фоновое воспроизведение в нем, сразу передавая управление следующему компоненту. Если в указанном слое уже производится воспроизведение, то оно автоматически прерывается.
* <code>Остановка фона</code> (<code>asyncPlayStop</code>, <code>4</code>) – Производит остановку воспроизведения в указанном слое.
* <code>Изменить громкость фона</code> (<code>asyncModifyVolume</code>, <code>6</code>) – Производит изменение громкости воспроизводимого в фоне файла на указанном слое.
|-
|-
|Название: <code>Громкость (делитель)</code>
|Название: <code>Время, с</code>


Код: <code>volumeDiv</code>
Код: <code>playTimeSec</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий делитель громкости воспроизведения в слое
|Ограничение на время воспроизведения, в секундах.
 
Применяется в режиме <code>Предпрослушивание</code>.
|-
|-
|Название: <code>Буфер для DTMF</code>
|Название: <code>Доп. время, с</code>


Код: <code>dtmfBuffer</code>
Код: <code>extraTimeSec</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: <code>0</code>
|Переменная для сохранения получаемых DTMF-символов.
|Таймаут дополнительной паузы после завершения воспроизведения, в секундах.
 
Применяется в режимах <code>Файл + дополнительное время</code> и <code>Список файлов</code>.
|-
|-
|Название: <code>Очистить буфер DTMF</code>
|Название: <code>Каталог</code>


Код: <code>clearDtmfBuffer</code>
Код: <code>folder</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>Да</code>
По умолчанию: — 
|Выключатель предварительной очистки буфера DTMF.
|Аргумент, содержащий путь к каталогу.
 
Должен включать одну из файловых категорий.
|-
|-
|Название: <code>Количество символов</code>
|Название: <code>Случайно</code>


Код: <code>maxSymbolCount</code>
Код: <code>randomize</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: <code>Да</code>
|Аргумент, содержащий ограничение на количество вводимых символов.
|Режим случайного выбора очередного файла из каталога.
 
Применяется при указании в качестве источника каталога с аудио-файлами.


После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.
* <code>Да</code> – в начале и при завершении воспроизведения каждого аудио-файла очередной файл выбирается случайным образом.
* <code>Нет</code> – файлы воспроизводятся в порядке лексикографической сортировки по именам.
|-
|-
|Название: <code>Символы прерывания</code>
|Название: <code>Файл</code>


Код: <code>interruptSymbols</code>
Код: <code>file</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Строка, содержащая последовательности символов прерывания через запятую.
|Файл для воспроизведения.


После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.
Может быть выбран в одном из режимов:


Например, <code>*, 7, 123, 9395</code>.
* статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
* сформированный аргументами путь, который должен включать одну из файловых категорий.
|-
|-
|Название: <code>Вырезать символы прерывания</code>
|Название: <code>Потоковый файл</code>


Код: <code>clearInterrupt</code>
Код: <code>fileCanGrow</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>Да</code>
По умолчанию: <code>Нет</code>
|Выключатель операции удаления символов прерывания из буфера DTMF после обнаружения последовательности прерывания.
|Режим потокового воспроизведения растущего файла.
|-
 
|Название: <code>Переход</code>
Применяется только в режимах воспроизведения <code>Файл полностью</code>, <code>Предпрослушивание</code>, <code>Файл + дополнительное время</code>, <code>Фоновое воспроизведение</code> при воспроизведении одного конкретного файла.
 
Режим полезен для нужд организации потокового воспроизведения, например когда данные генерируются внешним сервисом постепенно, и их необходимо сразу отдавать в голосовой канал.


Код: <code>transfer</code>
В таком режиме может воспроизводиться только WAV-файл, у которого в заголовке размер заведомо больше того объема сэмплов, которые размещены в файле.


Усл. видимости: <code>нет</code>
Если воспроизведение доходит до текущего конца файла, а размер файла, указанный в WAV-заголовке не достигнут, плеер генерирует тишину.


По умолчанию: — 
По мере добавления сэмплов в конец файла воспроизведение продолжается.
|Компонент, которому передается управление при успешном завершении операции.
|-
|Название: <code>Переход, ошибка</code>


Код: <code>transferError</code>
Воспроизведение завершается тогда, когда количество воспроизведенных сэмплов из файла совпадет с указанным количеством сэмплов в Wav-заголовке.


Усл. видимости: <code>нет</code>
При этом в Wav-заголовок допускается перезаписать размер, когда данные закончатся.


По умолчанию: — 
Возможные варианты:
|Компонент, которому передается управление в случае возникновения ошибки.
|}


== Компонент Воспроизведение числительных ==
<nowiki>*</nowiki> <code>Нет</code> – обычный режим воспроизведения.
Осуществляет построение фразы по числу и указанному формату и последующее ее воспроизведение абоненту.
Операция проводится синхронно, то есть управление следующему компоненту передается только после завершения воспроизведения.


Файлы числительных для воспроизведения в рантайме находятся в локальном автоматически синхронизирующемся каталоге :SYNC в подкаталоге /common/standardexpressions/<VOICE>.
<nowiki>*</nowiki> <code>Да</code> – допускается воспроизведение из растущего WAV-файла.
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|-
|Индекс
|Название: <code>Таймаут получения данных, мс</code>
|<code>205</code>
 
|-
Код: <code>growingTimeoutMs</code>
|Краткое название
 
|<code>playnum</code>
Усл. видимости: <code>да</code>
|-
 
|Типы сценариев
По умолчанию: 0
|<code>IVR</code>
|При воспроизведении потокового файла с ожиданием поступления данных, в момент когда данных недостаточно, воспроизводится тишина. Чтобы завершить воспроизведение необходимо прописать в заголовок реальный размер данных.
|-
 
|Стартовый модуль
Параметр позволяет установить предельное время в миллисекундах, когда воспроизводится тишина в ожидании поступления данных.
|<code>r_sip_ivr_script_component_playnum</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, прерывающий
|}


==== Свойства ====
Значение 0 - таймаут не применяется.
{| class="wikitable"
|+Table 2. Свойства
!Спецификация
!Описание
|-
|-
|Название: <code>Число</code>
|Название: <code>Файлы (JSON-список)</code>


Код: <code>number</code>
Код: <code>filesArg</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий воспроизводимое числительное либо наборную фразу.
|Аргумент, содержащий JSON-структуру в виде массива строк, каждая из которых представляет путь к файлу.
 
Каждый путь должен включать одну из файловых категорий.
 
Файлы воспроизводятся в порядке указания в списке.
|-
|-
|Название: <code>Языковой алгоритм</code>
|Название: <code>Зацикливать</code>


Код: <code>lang</code>
Код: <code>loop</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>
 
По умолчанию: <code>Нет</code>
|Выключение режима непрерывного зацикленного воспроизведения.


По умолчанию: <code>RUS</code>
При воспроизведении через выбор каталога, всякий раз производится случайный выбор нового файла.
|Выбор языкового алгоритма.
|-
|Название: <code>Начало, мс</code>
 
Код: <code>startAt</code>
 
Усл. видимости: <code>да</code>


Возможные варианты:
По умолчанию: — 
|Аргумент, содержащий смещение для старта воспроизведения, в миллисекундах.


* <code>RUS</code> (<code>ru</code>, <code>0</code>) - Русский язык.
Имеет смысл при незацикленном воспроизведении файла.
* <code>ENG</code> (<code>en</code>, <code>1</code>) – Английский язык.
|-
|-
|Название: <code>Формат</code>
|Название: <code>Конец, мс</code>
 
Код: <code>stopAt</code>


Код: <code>mode</code>
Усл. видимости: <code>да</code>


Усл. видимости: <code>нет</code>
По умолчанию: — 
|Аргумент, содержащий финальную позицию в файле, в миллисекундах.


По умолчанию: <code>Количество</code>
Имеет смысл при незацикленном воспроизведении файла.
|Выбор формата воспроизведения.
|-
|Название: <code>Громкость (делитель)</code>


Возможные варианты:
Код: <code>volumeDiv</code>


* <code>По формату</code> (<code>byformat</code>, <code>0</code>) – Выбор формата построения фразы по значению: способ разбиения.
Усл. видимости: <code>да</code>
* <code>Количество</code> (<code>quantity</code>, <code>1</code>) – Числительное <code>XXX</code>, например <code>сто двадцать три</code>.
* <code>Порядковое числительное</code> (<code>ordinal</code>, <code>2</code>) – <code>XXX</code>, например <code>сто двадцать третий</code>. Применяет род.
* <code>Телефонный номер</code> (<code>phone</code>, <code>3</code>) – <code>XXX XXX-XX-XX</code>, <code>XXX-XX-XX</code>, <code>XX-XX-XX</code>, <code>XX-XX</code>, <code>XXX</code>, например <code>девятсот двадцать пять шестьдесят три двадцать</code>.
* <code>Дата</code> (<code>date</code>, <code>4</code>) – Например, <code>двадцать пятое декабря две тысячи шестидесятого года</code>.
* <code>Время</code> (<code>time</code>, <code>5</code>) – Например, <code>тринадцать часов двадцать пять минут</code>.
* <code>Дата / время</code> (<code>datetime</code>, <code>6</code>) – <code>двадцать пятое декабря две тысячи шестидесятого года тринадцать часов двадцать пять минут</code>.
* <code>День недели</code> (<code>weekday</code>, <code>7</code>) – Например, <code>понедельник</code>.
* <code>Время без нулей в начале</code> (<code>timewo0b</code>, <code>8</code>) – Время, где нули в начале не воспроизводятся, например: <code>двадцать минут ноль секунд</code> вместо <code>ноль часов двадцать минут ноль секунд</code>.
* <code>Время без нулей в конце</code> (<code>timewo0e</code>, <code>9</code>) – Время, где нули в конце не воспроизводятся, например: <code>ноль часов двадцать минут</code> вместо <code>ноль часов двадцать минут ноль секунд</code>.
* <code>Время в секундах</code> (<code>timesec</code>, <code>10</code>) – Например, <code>шестьсот секунд</code>.
* <code>Деньги, USD</code> (<code>moneyusd</code>, <code>11</code>) – <code>XXX долларов</code> или <code>XXX долларов XX центов</code>.
* <code>Деньги, EUR</code> (<code>moneyeur</code>, <code>12</code>) – <code>XXX евро</code> или <code>XXX долларов XX евроцентов</code>.
* <code>Деньги, RUR</code> (<code>moneyrub</code>, <code>13</code>) – <code>XXX рублей</code> или <code>XXX рублей XX копеек</code>.
* <code>Процент</code> (<code>percent</code>, <code>14</code>) – <code>XX процентов</code>.


Важно, чтобы соответствующие файлы озвучки находились в каталоге выбранного голоса.
По умолчанию: — 
|Аргумент, содержащий делитель громкости воспроизведения в слое
|-
|-
|Название: <code>Тип проигрывания</code>
|Название: <code>Буфер для DTMF</code>


Код: <code>format</code>
Код: <code>dtmfBuffer</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>Посимвольно</code>
По умолчанию: — 
|Выбор способа озвучивания числительного.
|Переменная для сохранения получаемых DTMF-символов.
|-
|Название: <code>Очистить буфер DTMF</code>
 
Код: <code>clearDtmfBuffer</code>


Возможные варианты:
Усл. видимости: <code>да</code>


* <code>Посимвольно</code> (<code>sym1</code>, <code>0</code>) – Каждая цифра числа проговаривается отдельно.
По умолчанию: <code>Да</code>
* <code>По 2 символа</code> (<code>sym2</code>, <code>1</code>) – Цифры объединяются парами.
|Выключатель предварительной очистки буфера DTMF.
* <code>По 3 символа</code> (<code>sym3</code>, <code>2</code>) – Цифры объединяются в группы по три.
* <code>Целиком</code> (<code>number</code>, <code>3</code>) – Число проговаривается целиком.
* <code>Буквы и числа</code> (<code>letters</code>, <code>4</code>) – Значение проговаривается в виде отдельных букв (аббревиатур) и чисел.
* <code>Слова и фразы</code> (<code>words</code>, <code>5</code>) – Проговариваются отдельные слова, разделенные пробелами, заранее озвученные и представленные в каталоге озвучки.
|-
|-
|Название: <code>Род</code>
|Название: <code>Количество символов</code>


Код: <code>gender</code>
Код: <code>maxSymbolCount</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>Мужской</code>
По умолчанию: — 
|Выбор рода для окончаний при формировании фразы.
|Аргумент, содержащий ограничение на количество вводимых символов.


Возможные варианты:
После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.
 
* <code>Мужской</code> (<code>masculine</code>, <code>0</code>)
* <code>Женский</code> (<code>feminine</code>, <code>1</code>)
* <code>Средний</code> (<code>neuter</code>, <code>2</code>)
|-
|Название: <code>Понижать тон</code>
 
Код: <code>downTone</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: <code>Нет</code>
|Выключатель режима преимущественного применения аудио-файла с понижающим тоном в конце фразы.
 
Такие файлы в каталогах озвучки существуют отдельно и имеют префикс <code>_</code>.
|-
|Название: <code>Голос</code>
 
Код: <code>voice</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Выбор голоса. Каталоги с голосовой озвучкой располагаются в ассетах.
|-
|-
|Название: <code>Символы прерывания</code>
|Название: <code>Символы прерывания</code>
Строка 746: Строка 724:


Например, <code>*, 7, 123, 9395</code>.
Например, <code>*, 7, 123, 9395</code>.
|-
|Название: <code>Вырезать символы прерывания</code>
Код: <code>clearInterrupt</code>
Усл. видимости: <code>да</code>
По умолчанию: <code>Да</code>
|Выключатель операции удаления символов прерывания из буфера DTMF после обнаружения последовательности прерывания.
|-
|-
|Название: <code>Переход</code>
|Название: <code>Переход</code>
Строка 754: Строка 741:


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается управление в случае успешного завершения операции.
|Компонент, которому передается управление при успешном завершении операции.
|-
|-
|Название: <code>Переход, ошибка</code>
|Название: <code>Переход, ошибка</code>
Строка 763: Строка 750:


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается управление в случае ошибки.
|Компонент, которому передается управление в случае возникновения ошибки.
|}
|}


==== Компонент Воспроизведение числительных ====
Осуществляет построение фразы по числу и указанному формату и последующее ее воспроизведение абоненту.
Операция проводится синхронно, то есть управление следующему компоненту передается только после завершения воспроизведения.


=== Компонент Прием DTMF ===
Файлы числительных для воспроизведения в рантайме находятся в локальном автоматически синхронизирующемся каталоге :SYNC в подкаталоге /common/standardexpressions/<VOICE>.
Осуществляет ожидание ввода абонентом символов DTMF с клавиатуры телефона. Поддерживает поставку символов по RFC-2833 и через SIP-INFO.
{| class="wikitable"
{| class="wikitable"
|+Table 1. Системные характеристики
|+Table 1. Системные характеристики
Строка 775: Строка 764:
|-
|-
|Индекс
|Индекс
|<code>206</code>
|<code>205</code>
|-
|-
|Краткое название
|Краткое название
|<code>dtmf</code>
|<code>playnum</code>
|-
|-
|Типы сценариев
|Типы сценариев
Строка 784: Строка 773:
|-
|-
|Стартовый модуль
|Стартовый модуль
|<code>r_sip_ivr_script_component_dtmf</code>
|<code>r_sip_ivr_script_component_playnum</code>
|-
|-
|Режим
|Режим
Строка 793: Строка 782:
|-
|-
|Характер разветвления
|Характер разветвления
|Разветвляющий, замыкающий
|Разветвляющий, прерывающий
|}
|}
 
'''Свойства'''
==== Свойства ====
{| class="wikitable"
{| class="wikitable"
|+Table 2. Свойства
|+Table 2. Свойства
Строка 802: Строка 790:
!Описание
!Описание
|-
|-
|Название: <code>Inband-детектор</code>
|Название: <code>Число</code>


Код: <code>inband</code>
Код: <code>number</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>disable</code>
По умолчанию: — 
|Режим работы детектора Inband dtmf.
|Аргумент, содержащий воспроизводимое числительное либо наборную фразу.
|-
|Название: <code>Языковой алгоритм</code>


Возможные значения:
Код: <code>lang</code>


* <code>Выключить</code> (<code>disable</code>, <code>0</code>) - DTесли ранее был включен .
Усл. видимости: <code>нет</code>
* <code>Включить</code> (<code>enable</code>, <code>1</code>).
* <code>Включить и выключить</code> (<code>turn</code>, <code>2</code>).


Особенности Inband-DTMF детектора:
По умолчанию: <code>RUS</code>
|Выбор языкового алгоритма.


* Потребляет дополнительные вычислительные ресурсы - как на само детектирование, так и на включение и выключение, что может приводить в нагруженных системах к снижению общей производительности.
Возможные варианты:
* Создает риск дублирования сигналов, передаваемых одновременно в звуке и в другом протоколе.
* Если в сценарии несколько компонентов анализа DTMF, то оптимальнее включить его в первом компоненте и не выключать до конца.
* Если необходимо вылавливать Inband-DTMF в других компонентах, например прерывание воспроизведения, то следует исполнить компонент Ввода DTMF с нулевым таймаутом и включением режима Inband.


Без острой необходимости не следует активировать режим Inband-DTMF.
* <code>RUS</code> (<code>ru</code>, <code>0</code>) - Русский язык.
* <code>ENG</code> (<code>en</code>, <code>1</code>) – Английский язык.
|-
|-
|Название: <code>Таймаут, с</code>
|Название: <code>Формат</code>


Код: <code>timeoutSec</code>
Код: <code>mode</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>Количество</code>
|Общий таймаут ожидания ввода полного значения.
|Выбор формата воспроизведения.
|-
 
|Название: <code>Межсимвольный таймаут, с</code>
Возможные варианты:


Код: <code>symbolTimeoutSec</code>
* <code>По формату</code> (<code>byformat</code>, <code>0</code>) – Выбор формата построения фразы по значению: способ разбиения.
* <code>Количество</code> (<code>quantity</code>, <code>1</code>) – Числительное <code>XXX</code>, например <code>сто двадцать три</code>.
* <code>Порядковое числительное</code> (<code>ordinal</code>, <code>2</code>) – <code>XXX</code>, например <code>сто двадцать третий</code>. Применяет род.
* <code>Телефонный номер</code> (<code>phone</code>, <code>3</code>) – <code>XXX XXX-XX-XX</code>, <code>XXX-XX-XX</code>, <code>XX-XX-XX</code>, <code>XX-XX</code>, <code>XXX</code>, например <code>девятсот двадцать пять шестьдесят три двадцать</code>.
* <code>Дата</code> (<code>date</code>, <code>4</code>) – Например, <code>двадцать пятое декабря две тысячи шестидесятого года</code>.
* <code>Время</code> (<code>time</code>, <code>5</code>) – Например, <code>тринадцать часов двадцать пять минут</code>.
* <code>Дата / время</code> (<code>datetime</code>, <code>6</code>) – <code>двадцать пятое декабря две тысячи шестидесятого года тринадцать часов двадцать пять минут</code>.
* <code>День недели</code> (<code>weekday</code>, <code>7</code>) – Например, <code>понедельник</code>.
* <code>Время без нулей в начале</code> (<code>timewo0b</code>, <code>8</code>) – Время, где нули в начале не воспроизводятся, например: <code>двадцать минут ноль секунд</code> вместо <code>ноль часов двадцать минут ноль секунд</code>.
* <code>Время без нулей в конце</code> (<code>timewo0e</code>, <code>9</code>) – Время, где нули в конце не воспроизводятся, например: <code>ноль часов двадцать минут</code> вместо <code>ноль часов двадцать минут ноль секунд</code>.
* <code>Время в секундах</code> (<code>timesec</code>, <code>10</code>) – Например, <code>шестьсот секунд</code>.
* <code>Деньги, USD</code> (<code>moneyusd</code>, <code>11</code>) – <code>XXX долларов</code> или <code>XXX долларов XX центов</code>.
* <code>Деньги, EUR</code> (<code>moneyeur</code>, <code>12</code>) – <code>XXX евро</code> или <code>XXX долларов XX евроцентов</code>.
* <code>Деньги, RUR</code> (<code>moneyrub</code>, <code>13</code>) – <code>XXX рублей</code> или <code>XXX рублей XX копеек</code>.
* <code>Процент</code> (<code>percent</code>, <code>14</code>) – <code>XX процентов</code>.


Усл. видимости: <code>нет</code>
Важно, чтобы соответствующие файлы озвучки находились в каталоге выбранного голоса.
 
По умолчанию: — 
|Таймаут ожидания ввода следующего символа, начиная с первого, в секундах.
|-
|-
|Название: <code>Буфер для DTMF</code>
|Название: <code>Тип проигрывания</code>


Код: <code>dtmfBuffer</code>
Код: <code>format</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: <code>Посимвольно</code>
|Переменная для сохранения получаемых DTMF-символов.
|Выбор способа озвучивания числительного.
|-
|Название: <code>Очистить буфер DTMF</code>


Код: <code>clearDtmfBuffer</code>
Возможные варианты:


Усл. видимости: <code>да</code>
* <code>Посимвольно</code> (<code>sym1</code>, <code>0</code>) – Каждая цифра числа проговаривается отдельно.
 
* <code>По 2 символа</code> (<code>sym2</code>, <code>1</code>) – Цифры объединяются парами.
По умолчанию: <code>Да</code>
* <code>По 3 символа</code> (<code>sym3</code>, <code>2</code>) – Цифры объединяются в группы по три.
|Выключатель предварительной очистки буфера DTMF.
* <code>Целиком</code> (<code>number</code>, <code>3</code>) – Число проговаривается целиком.
* <code>Буквы и числа</code> (<code>letters</code>, <code>4</code>) – Значение проговаривается в виде отдельных букв (аббревиатур) и чисел.
* <code>Слова и фразы</code> (<code>words</code>, <code>5</code>) – Проговариваются отдельные слова, разделенные пробелами, заранее озвученные и представленные в каталоге озвучки.
|-
|Название: <code>Род</code>
 
Код: <code>gender</code>
 
Усл. видимости: <code>да</code>
 
По умолчанию: <code>Мужской</code>
|Выбор рода для окончаний при формировании фразы.
 
Возможные варианты:
 
* <code>Мужской</code> (<code>masculine</code>, <code>0</code>)
* <code>Женский</code> (<code>feminine</code>, <code>1</code>)
* <code>Средний</code> (<code>neuter</code>, <code>2</code>)
|-
|Название: <code>Понижать тон</code>
 
Код: <code>downTone</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: <code>Нет</code>
|Выключатель режима преимущественного применения аудио-файла с понижающим тоном в конце фразы.
 
Такие файлы в каталогах озвучки существуют отдельно и имеют префикс <code>_</code>.
|-
|-
|Название: <code>Количество символов</code>
|Название: <code>Голос</code>


Код: <code>maxSymbolCount</code>
Код: <code>voice</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий ограничение на количество вводимых символов.
|Выбор голоса. Каталоги с голосовой озвучкой располагаются в ассетах.
 
После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.
|-
|-
|Название: <code>Символы прерывания</code>
|Название: <code>Символы прерывания</code>
Строка 877: Строка 899:
Код: <code>interruptSymbols</code>
Код: <code>interruptSymbols</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
Строка 886: Строка 908:
Например, <code>*, 7, 123, 9395</code>.
Например, <code>*, 7, 123, 9395</code>.
|-
|-
|Название: <code>Вырезать символы прерывания</code>
|Название: <code>Переход</code>
 
Код: <code>clearInterrupt</code>
 
Усл. видимости: <code>да</code>
 
По умолчанию: <code>Да</code>
|Выключатель операции удаления символов прерывания из буфера DTMF после обнаружения последовательности прерывания.
|-
|Название: <code>Переход</code>


Код: <code>transfer</code>
Код: <code>transfer</code>
Строка 902: Строка 915:


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается управление при завершении операции по набору нужного числа символов.
|Компонент, которому передается управление в случае успешного завершения операции.
|-
|-
|Название: <code>Переход, время</code>
|Название: <code>Переход, ошибка</code>


Код: <code>transferTimeout</code>
Код: <code>transferError</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается управление при завершении по таймауту.
|Компонент, которому передается управление в случае ошибки.
|}
|}




=== Компонент Запись звука ===
 
Осуществляет запись звука, поступающего от абонента, в локальный файл.
==== Компонент Прием DTMF ====
Размещает файл во временном каталоге на время жизни сценария. Для сохранения файла от сценария требуется последующее перемещение его в любое место стационарного хранения.
Осуществляет ожидание ввода абонентом символов DTMF с клавиатуры телефона. Поддерживает поставку символов по RFC-2833 и через SIP-INFO.
{| class="wikitable"
{| class="wikitable"
|+Table 1. Системные характеристики
|+Table 1. Системные характеристики
Строка 924: Строка 937:
|-
|-
|Индекс
|Индекс
|<code>208</code>
|<code>206</code>
|-
|-
|Краткое название
|Краткое название
|<code>record</code>
|<code>dtmf</code>
|-
|-
|Типы сценариев
|Типы сценариев
Строка 933: Строка 946:
|-
|-
|Стартовый модуль
|Стартовый модуль
|<code>r_sip_ivr_script_component_record</code>
|<code>r_sip_ivr_script_component_dtmf</code>
|-
|-
|Режим
|Режим
Строка 944: Строка 957:
|Разветвляющий, замыкающий
|Разветвляющий, замыкающий
|}
|}
 
'''Свойства'''
==== Свойства ====
{| class="wikitable"
{| class="wikitable"
|+Table 2. Свойства
|+Table 2. Свойства
Строка 951: Строка 963:
!Описание
!Описание
|-
|-
|Название: <code>Режим</code>
|Название: <code>Inband-детектор</code>


Код: <code>mode</code>
Код: <code>inband</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Синхронная запись</code>
По умолчанию: <code>disable</code>
|Выбор режима записи.
|Режим работы детектора Inband dtmf.


Возможные варианты:
Возможные значения:


* Синхронная запись (<code>syncRecFile</code>, 0) - обычный режим записи в файл с последующей упаковкой в выбранный кодек и возвратом пути к файлу в переменную.
* <code>Выключить</code> (<code>disable</code>, <code>0</code>) - DTесли ранее был включен .
* Потоковая запись (<code>growingRaw</code>, 1) - режим записи в указанный файл короткими порциями, например для организации потоковой отправки в сервис распознавания речи внешними средствами.
* <code>Включить</code> (<code>enable</code>, <code>1</code>).
|-
* <code>Включить и выключить</code> (<code>turn</code>, <code>2</code>).
|Название: <code>Путь в переменную</code>


Код: <code>pathToVarMode</code>
Особенности Inband-DTMF детектора:


Усл. видимости: <code>да</code>
* Потребляет дополнительные вычислительные ресурсы - как на само детектирование, так и на включение и выключение, что может приводить в нагруженных системах к снижению общей производительности.
* Создает риск дублирования сигналов, передаваемых одновременно в звуке и в другом протоколе.
* Если в сценарии несколько компонентов анализа DTMF, то оптимальнее включить его в первом компоненте и не выключать до конца.
* Если необходимо вылавливать Inband-DTMF в других компонентах, например прерывание воспроизведения, то следует исполнить компонент Ввода DTMF с нулевым таймаутом и включением режима Inband.


По умолчанию: <code>Да</code>
Без острой необходимости не следует активировать режим Inband-DTMF.
|Выключатель сохранения пути к файлу с записью в переменную.
|-
|-
|Название: <code>Путь к файлу в переменную</code>
|Название: <code>Таймаут, с</code>


Код: <code>nameVar</code>
Код: <code>timeoutSec</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Переменная для сохранения пути к файлу с записанным голосом.
|Общий таймаут ожидания ввода полного значения.
|-
|Название: <code>Межсимвольный таймаут, с</code>


Применяется только в режиме синхронной записи.
Код: <code>symbolTimeoutSec</code>


Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.
Усл. видимости: <code>нет</code>


Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.
По умолчанию: — 
 
|Таймаут ожидания ввода следующего символа, начиная с первого, в секундах.
Запись осуществляется на сервере с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.
|-
|-
|Название: <code>Путь к файлу</code>
|Название: <code>Буфер для DTMF</code>


Код: <code>toFilepath</code>
Код: <code>dtmfBuffer</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, указывающий путь к файлу для потоковой записи (растущий файл).
|Переменная для сохранения получаемых DTMF-символов.
 
Применяется только в режиме потоковой записи.
|-
|-
|Название: <code>Wav-заголовок</code>
|Название: <code>Очистить буфер DTMF</code>


Код: <code>addWavHeader</code>
Код: <code>clearDtmfBuffer</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>Нет</code>
По умолчанию: <code>Да</code>
|Позволяет добавить wav-заголовок к растущему файлу.
|Выключатель предварительной очистки буфера DTMF.
|-
|Название: <code>Количество символов</code>
 
Код: <code>maxSymbolCount</code>
 
Усл. видимости: <code>нет</code>


Применяется только в режиме потоковой записи.
По умолчанию: — 
|Аргумент, содержащий ограничение на количество вводимых символов.


В Wav-заголовок прописывается размер, эквивалентный выбранному максимальному времени записи.
После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.
|-
|-
|Название: <code>Кодек</code>
|Название: <code>Символы прерывания</code>


Код: <code>codec</code>
Код: <code>interruptSymbols</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>PCMA</code>
По умолчанию: — 
|Кодек/формат записываемого файла (только для режима синхронной записи). Упаковка производится по окончании записи с помощью микшера.
|Строка, содержащая последовательности символов прерывания через запятую.


Возможные варианты:
После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.


* <code>PCM</code> (<code>pcm</code>, '0')
Например, <code>*, 7, 123, 9395</code>.
* <code>PCMA</code> (<code>pcma</code>, '1')
* <code>PCMU</code> (<code>pcmu</code>, '2')
* <code>GSM</code> (<code>gsm</code>, '3')
* <code>MP3 8-bit</code> (<code>mp3_8</code>, '4')
* <code>MP3 16-bit</code> (<code>mp3_16</code>, '5')
* <code>MP3 24-bit</code> (<code>mp3_24</code>, '6')
|-
|-
|Название: <code>Кодек</code>
|Название: <code>Вырезать символы прерывания</code>


Код: <code>codecRaw</code>
Код: <code>clearInterrupt</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>PCMA</code>
По умолчанию: <code>Да</code>
|Кодек/формат записываемого файла (только для режима потоковой записи).
|Выключатель операции удаления символов прерывания из буфера DTMF после обнаружения последовательности прерывания.
 
Возможные варианты:
 
* <code>L16/8000</code> (<code>pcm8000</code>, '0') - PCM 8000 Hz 16 bit mono.
* <code>L16/16000</code> (<code>pcm16000</code>, '1') - PCM 16000 Hz 16 bit mono.
|-
|-
|Название: <code>Буфер, мс</code>
|Название: <code>Переход</code>


Код: <code>bufferDurMs</code>
Код: <code>transfer</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: 250
|Аргумент, определяющий период сброса записанных данных в потоковый файл.
 
Применяется только для режима потоковой записи.
|-
|Название: <code>Таймаут, с</code>
 
Код: <code>recTimeSec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Таймаут записи до автоматического прерывания, в секундах.
|Компонент, которому передается управление при завершении операции по набору нужного числа символов.
|-
|-
|Название: <code>Буфер для DTMF</code>
|Название: <code>Переход, время</code>


Код: <code>dtmfBuffer</code>
Код: <code>transferTimeout</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Переменная для сохранения получаемых DTMF-символов.
|Компонент, которому передается управление при завершении по таймауту.
|-
|}
|Название: <code>Очистить буфер DTMF</code>


Код: <code>clearDtmfBuffer</code>


Усл. видимости: <code>да</code>


По умолчанию: <code>Да</code>
==== Компонент Запись звука ====
|Выключатель предварительной очистки буфера DTMF.
Осуществляет запись звука, поступающего от абонента, в локальный файл.
Размещает файл во временном каталоге на время жизни сценария. Для сохранения файла от сценария требуется последующее перемещение его в любое место стационарного хранения.
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|-
|Название: <code>Количество символов</code>
|Индекс
|<code>208</code>
|-
|Краткое название
|<code>record</code>
|-
|Типы сценариев
|<code>IVR</code>
|-
|Стартовый модуль
|<code>r_sip_ivr_script_component_record</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, замыкающий
|}
'''Свойства'''
{| class="wikitable"
|+Table 2. Свойства
!Спецификация
!Описание
|-
|Название: <code>Режим</code>


Код: <code>maxSymbolCount</code>
Код: <code>mode</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>Синхронная запись</code>
|Аргумент, содержащий ограничение на количество вводимых символов.
|Выбор режима записи.
 
Возможные варианты:


После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.
* Синхронная запись (<code>syncRecFile</code>, 0) - обычный режим записи в файл с последующей упаковкой в выбранный кодек и возвратом пути к файлу в переменную.
* Потоковая запись (<code>growingRaw</code>, 1) - режим записи в указанный файл короткими порциями, например для организации потоковой отправки в сервис распознавания речи внешними средствами.
|-
|-
|Название: <code>Символы прерывания</code>
|Название: <code>Путь в переменную</code>


Код: <code>interruptSymbols</code>
Код: <code>pathToVarMode</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Строка, содержащая последовательности символов прерывания через запятую.
 
После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.
 
Например, <code>*, 7, 123, 9395</code>.
|-
|Название: <code>Вырезать символы прерывания</code>
 
Код: <code>clearInterrupt</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>Да</code>
По умолчанию: <code>Да</code>
|Выключатель операции удаления символов прерывания из буфера DTMF после обнаружения последовательности прерывания.
|Выключатель сохранения пути к файлу с записью в переменную.
|-
|-
|Название: <code>Прерывать фон (слой) при обнаружении голоса</code>
|Название: <code>Путь к файлу в переменную</code>


<code>Код: `stopPlayerIdOnVad</code>
Код: <code>nameVar</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>"default"</code>
По умолчанию: — 
|Слой фонового воспроизведения (поле playerId компонента воспроизведение в фоновом режиме, запущенного ранее), который следует остановить при обнаружении голоса в канале абонента.
|Переменная для сохранения пути к файлу с записанным голосом.
|-
|Название: <code>Прерывать при обнаружении тишины</code>


Код: <code>abortOnSilence</code>
Применяется только в режиме синхронной записи.


Усл. видимости: <code>нет</code>
Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.


По умолчанию: <code>Нет</code>
Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.
|Выключатель режима обнаружения тишины и автоматического прерывания.


Тишиной считается сигнал ниже порога чувствительности длиной более 200 мс.
Запись осуществляется на сервере с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.
 
Таймер засекается только после обнаружения голоса (сигнал выше порога чувствительности продолжительностью более полусекунды, внутри которого могут обнаруживаться зоны сигнала ниже порога чувствительности продолжительностью менее 200 мс).
|-
|-
|Название: <code>Интервал тишины, с</code>
|Название: <code>Путь к файлу</code>


Код: <code>silenceTimeoutSec</code>
Код: <code>toFilepath</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>2</code>
По умолчанию: — 
|Аргумент, содержащий время таймаута при обнаружении тишины в секундах. При появлении голоса выше порога чувствительности в течение указанного таймаута, таймер сбрасывается вплоть до обнаружения тишины снова.
|Аргумент, указывающий путь к файлу для потоковой записи (растущий файл).


В большинстве случаев 2 секунды - комфортный интервал.
Применяется только в режиме потоковой записи.
 
Может указываться в формате десятичной дроби, например, '1.6'.
|-
|-
|Название: <code>Порог VAD, -дБ</code>
|Название: <code>Wav-заголовок</code>


Код: <code>vadThreshold</code>
Код: <code>addWavHeader</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>30</code>
По умолчанию: <code>Нет</code>
|Аргумент, устанавливающий порог VAD. Параметр VAD-детектора.
|Позволяет добавить wav-заголовок к растущему файлу.


Указанное значение применяется с отрицательным знаком (в децибеллах) для определения порога отсечения тишины относительно возможного максимума.
Применяется только в режиме потоковой записи.


Поток анализируется фреймами по 20 мс. Каждый звуковой фрейм на основании порога отсечения рассматривается либо как голос, либо как тишина (средний уровень громкости фрейма).
В Wav-заголовок прописывается размер, эквивалентный выбранному максимальному времени записи.
|-
|Название: <code>Кодек</code>


Таким образом, детектор имеет два состояния: голос и тишина. При переходе между состояниями генерируется событие о переходе в другое состояние. Изначально детектор находится в состоянии тишины.
Код: <code>codec</code>


Генерация сигнала обнаружения голоса происходит в состоянии тишины тогда, когда несколько фреймов подряд являются голосовыми (параметр 'Порог голоса, мс').
Усл. видимости: <code>да</code>


Генерация сигнала обнаружения тишины происходит в состоянии голоса тогда, после того, как несколько фреймов подряд признаны тишиной (параметр 'Порог тишины, мс').
По умолчанию: <code>PCMA</code>
|Кодек/формат записываемого файла (только для режима синхронной записи). Упаковка производится по окончании записи с помощью микшера.


При значении 30 детектор лучше определяет тишину, при значении 40 детектор лучше определяет появление голоса.
Возможные варианты:


Выход из компонента происходит по истечении таймаута, указанного в поле <code>Интервал тишины, с</code>, отсчитывая с начала отрезка тишины, обнаруженного детектором из состояния голоса.
* <code>PCM</code> (<code>pcm</code>, '0')
* <code>PCMA</code> (<code>pcma</code>, '1')
* <code>PCMU</code> (<code>pcmu</code>, '2')
* <code>GSM</code> (<code>gsm</code>, '3')
* <code>MP3 8-bit</code> (<code>mp3_8</code>, '4')
* <code>MP3 16-bit</code> (<code>mp3_16</code>, '5')
* <code>MP3 24-bit</code> (<code>mp3_24</code>, '6')
|-
|-
|Название: <code>Голос, мин. длительность, мс</code>
|Название: <code>Кодек</code>


Код: <code>vadVoiceMinMs</code>
Код: <code>codecRaw</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>120</code>
По умолчанию: <code>PCMA</code>
|Аргумент, устанавливающий минимальную пороговую длительность VAD для генерации сигнала VAD UP.
|Кодек/формат записываемого файла (только для режима потоковой записи).
 
Возможные варианты:
 
* <code>L16/8000</code> (<code>pcm8000</code>, '0') - PCM 8000 Hz 16 bit mono.
* <code>L16/16000</code> (<code>pcm16000</code>, '1') - PCM 16000 Hz 16 bit mono.
|-
|Название: <code>Буфер, мс</code>
 
Код: <code>bufferDurMs</code>


Параметр VAD-детектора.
Усл. видимости: <code>нет</code>


Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем выше установленного порога VAD.
По умолчанию: 250
|Аргумент, определяющий период сброса записанных данных в потоковый файл.


Через указанное значение определяется количество фреймов.
Применяется только для режима потоковой записи.
|-
|-
|Название: <code>Голос, допустимое отклонение, %</code>
|Название: <code>Таймаут, с</code>


Код: <code>vadVoiceTol</code>
Код: <code>recTimeSec</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>20</code>
По умолчанию: — 
|Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.
|Таймаут записи до автоматического прерывания, в секундах.
|-
|Название: <code>Буфер для DTMF</code>


Параметр VAD-детектора.
Код: <code>dtmfBuffer</code>


Например минимальная длительность задана 210 (мс), отклонение 20 (%). Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.
Усл. видимости: <code>нет</code>


Значение 0 означает что все 11 фреймов подряд должны быть голосовыми (иметь средний уровень выше порога VAD).
По умолчанию: — 
|Переменная для сохранения получаемых DTMF-символов.
|-
|-
|Название: <code>Тишина, мин. длительность, мс</code>
|Название: <code>Очистить буфер DTMF</code>


Код: <code>vadSilenceMinMs</code>
Код: <code>clearDtmfBuffer</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>500</code>
По умолчанию: <code>Да</code>
|Аргумент, устанавливающий минимальную пороговую длительность фреймов с тишиной для генерации сигнала VAD DOWN.
|Выключатель предварительной очистки буфера DTMF.
|-
|Название: <code>Количество символов</code>
 
Код: <code>maxSymbolCount</code>


Параметр VAD-детектора.
Усл. видимости: <code>нет</code>


Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем ниже установленного порога VAD.
По умолчанию: — 
|Аргумент, содержащий ограничение на количество вводимых символов.


Через указанное значение определяется количество фреймов.
После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.
|-
|-
|Название: <code>Тишина, допустимое отклонение, %</code>
|Название: <code>Символы прерывания</code>


Код: <code>vadSilenceTol</code>
Код: <code>interruptSymbols</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>10</code>
По умолчанию: — 
|Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.
|Строка, содержащая последовательности символов прерывания через запятую.


Параметр VAD-детектора.
После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.


Например минимальная длительность задана 210 мс, отклонение 20%. Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.
Например, <code>*, 7, 123, 9395</code>.
 
Значение 0 означает что все 11 фреймов подряд должны быть тишиной (иметь средний уровень ниже порога VAD).
|-
|-
|Название: <code>Переход</code>
|Название: <code>Вырезать символы прерывания</code>


Код: <code>transfer</code>
Код: <code>clearInterrupt</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: <code>Да</code>
|Компонент, которому передается управление при завершении операции по набору нужного числа символов.
|Выключатель операции удаления символов прерывания из буфера DTMF после обнаружения последовательности прерывания.
|-
|-
|Название: <code>Переход, время</code>
|Название: <code>Прерывать фон (слой) при обнаружении голоса</code>


Код: <code>transferTimeout</code>
<code>Код: `stopPlayerIdOnVad</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>"default"</code>
|Компонент, которому передается управление при завершении по таймауту.
|Слой фонового воспроизведения (поле playerId компонента воспроизведение в фоновом режиме, запущенного ранее), который следует остановить при обнаружении голоса в канале абонента.
|-
|-
|Название: <code>Переход, ошибка</code>
|Название: <code>Прерывать при обнаружении тишины</code>


Код: <code>transferError</code>
Код: <code>abortOnSilence</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>Нет</code>
|Компонент, которому передается управление при обнаружении ошибки, например неверно задан путь к файлу для потоковой записи.
|Выключатель режима обнаружения тишины и автоматического прерывания.
|}


Тишиной считается сигнал ниже порога чувствительности длиной более 200 мс.


=== Компонент Отправка факса ===
Таймер засекается только после обнаружения голоса (сигнал выше порога чувствительности продолжительностью более полусекунды, внутри которого могут обнаруживаться зоны сигнала ниже порога чувствительности продолжительностью менее 200 мс).
Отправляет изображение по факсимильному протоколу T.30 или T.38.
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|-
|Индекс
|Название: <code>Интервал тишины, с</code>
|<code>213</code>
 
Код: <code>silenceTimeoutSec</code>
 
Усл. видимости: <code>да</code>
 
По умолчанию: <code>2</code>
|Аргумент, содержащий время таймаута при обнаружении тишины в секундах. При появлении голоса выше порога чувствительности в течение указанного таймаута, таймер сбрасывается вплоть до обнаружения тишины снова.
 
В большинстве случаев 2 секунды - комфортный интервал.
 
Может указываться в формате десятичной дроби, например, '1.6'.
|-
|-
|Краткое название
|Название: <code>Порог VAD, -дБ</code>
|<code>fax_send</code>
 
|-
Код: <code>vadThreshold</code>
|Типы сценариев
 
|<code>IVR</code>
Усл. видимости: <code>да</code>
|-
|Стартовый модуль
|<code>r_sip_ivr_script_component_fax_send</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, замыкающий
|}


==== Свойства ====
По умолчанию: <code>30</code>
{| class="wikitable"
|Аргумент, устанавливающий порог VAD. Параметр VAD-детектора.
|+Table 2. Свойства
!Спецификация
!Описание
|-
|Название: <code>Протокол</code>


Код: <code>proto</code>
Указанное значение применяется с отрицательным знаком (в децибелах) для определения порога отсечения тишины относительно возможного максимума.


Усл. видимости: <code>нет</code>
Поток анализируется фреймами по 20 мс. Каждый звуковой фрейм на основании порога отсечения рассматривается либо как голос, либо как тишина (средний уровень громкости фрейма).


По умолчанию: <code>T30</code>
Таким образом, детектор имеет два состояния: голос и тишина. При переходе между состояниями генерируется событие о переходе в другое состояние. Изначально детектор находится в состоянии тишины.
|Выбор факсимильного протокола.


* <code>Авто</code> (<code>auto</code>, <code>0</code>) – Сначала производится попытка переключиться в протокол T38, а при отказе удаленной стороны производится переключение в T30.
Генерация сигнала обнаружения голоса происходит в состоянии тишины тогда, когда несколько фреймов подряд являются голосовыми (параметр 'Порог голоса, мс').
* <code>T30</code> (<code>t30</code>, <code>1</code>) – Переключение в T30 и ожидание переключения в T30 удаленной стороны.
* <code>T38</code> (<code>t38</code>, <code>2</code>) – Переключение в T38, а при отказе удаленной стороны, завершение работы с ошибкой.
|-
|Название: <code>Таймаут, с</code>


Код: <code>timeoutSec</code>
Генерация сигнала обнаружения тишины происходит в состоянии голоса тогда, после того, как несколько фреймов подряд признаны тишиной (параметр 'Порог тишины, мс').


Усл. видимости: <code>нет</code>
При значении 30 детектор лучше определяет тишину, при значении 40 детектор лучше определяет появление голоса.


По умолчанию: — 
Выход из компонента происходит по истечении таймаута, указанного в поле <code>Интервал тишины, с</code>, отсчитывая с начала отрезка тишины, обнаруженного детектором из состояния голоса.
|Таймаут приема до автоматического прерывания, в секундах.
|-
|-
|Название: <code>Файл</code>
|Название: <code>Голос, мин. длительность, мс</code>


Код: <code>file</code>
Код: <code>vadVoiceMinMs</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: <code>120</code>
|Файл для отправки факсимильным сообщением.
|Аргумент, устанавливающий минимальную пороговую длительность VAD для генерации сигнала VAD UP.


Может быть выбран в одном из режимов:
Параметр VAD-детектора.


* статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем выше установленного порога VAD.
* сформированный аргументами путь, который должен включать одну из файловых категорий.


Формат файла: <code>tiff</code> – одностраничное или многостраничное битовое изображение.
Через указанное значение определяется количество фреймов.
 
Отправка сообщения осуществляется сервером с ролью mg, обслуживающим текущий звонок. Перенос всегда происходит внутри сайта.
|-
|-
|Название: <code>Переход</code>
|Название: <code>Голос, допустимое отклонение, %</code>


Код: <code>transfer</code>
Код: <code>vadVoiceTol</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: <code>20</code>
|Компонент, которому передается управление при завершении операции по набору нужного числа символов.
|Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.
|-
|Название: <code>Переход, время</code>


Код: <code>transferTimeout</code>
Параметр VAD-детектора.


Усл. видимости: <code>нет</code>
Например минимальная длительность задана 210 (мс), отклонение 20 (%). Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.


По умолчанию: — 
Значение 0 означает что все 11 фреймов подряд должны быть голосовыми (иметь средний уровень выше порога VAD).
|Компонент, которому передается управление при завершении по таймауту.
|-
|-
|Название: <code>Переход, ошибка</code>
|Название: <code>Тишина, мин. длительность, мс</code>


Код: <code>transferError</code>
Код: <code>vadSilenceMinMs</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: <code>500</code>
|Компонент, которому передается управление в случае возникновения ошибки.
|Аргумент, устанавливающий минимальную пороговую длительность фреймов с тишиной для генерации сигнала VAD DOWN.
|}


Параметр VAD-детектора.


=== Компонент Прием факса ===
Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем ниже установленного порога VAD.
Переключается в режим приема изображения по факсимильному протоколу T.30 или T.38. Компонент завершает работу при успешном приеме или по истечении установленного таймаута.
Размещает файл во временном каталоге на время жизни сценария. Для сохранения файла от сценария требуется последующее перемещение его в любое место стационарного хранения.
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|Индекс
|<code>214</code>
|-
|Краткое название
|<code>fax_receive</code>
|-
|Типы сценариев
|<code>IVR</code>
|-
|Стартовый модуль
|<code>r_sip_ivr_script_component_fax_receive</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, замыкающий
|}


==== Свойства ====
Через указанное значение определяется количество фреймов.
{| class="wikitable"
|+Table 2. Свойства
!Спецификация
!Описание
|-
|-
|Название: <code>Протокол</code>
|Название: <code>Тишина, допустимое отклонение, %</code>


Код: <code>proto</code>
Код: <code>vadSilenceTol</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>T30</code>
По умолчанию: <code>10</code>
|Выбор факсимильного протокола.
|Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.
 
Параметр VAD-детектора.
 
Например минимальная длительность задана 210 мс, отклонение 20%. Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.


* <code>Авто</code> (<code>auto</code>, <code>0</code>) – Сначала производится попытка переключиться в протокол T38, а при отказе удаленной стороны производится переключение в T30.
Значение 0 означает что все 11 фреймов подряд должны быть тишиной (иметь средний уровень ниже порога VAD).
* <code>T30</code> (<code>t30</code>, <code>1</code>) – Переключение в T30 и ожидание переключения в T30 удаленной стороны.
* <code>T38</code> (<code>t38</code>, <code>2</code>) – Переключение в T38, а при отказе удаленной стороны, завершение работы с ошибкой.
|-
|-
|Название: <code>Таймаут, с</code>
|Название: <code>Переход</code>


Код: <code>timeoutSec</code>
Код: <code>transfer</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Таймаут приема до автоматического прерывания, в секундах.
|Компонент, которому передается управление при завершении операции по набору нужного числа символов.
|-
|-
|Название: <code>Сохранить путь</code>
|Название: <code>Переход, время</code>


Код: <code>pathToVarMode</code>
Код: <code>transferTimeout</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Да</code>
По умолчанию: — 
|Выключатель сохранения пути к файлу с записью в переменную и выбор содержания.
|Компонент, которому передается управление при завершении по таймауту.
 
Возможные варианты:
 
* <code>Не сохранять</code> (<code>dont_save</code>, <code>0</code>)
* <code>С ключом папки</code> (<code>script_key_path</code>, <code>1</code>) – Значение включает в категорию, относительный путь и имя файла.
* <code>Только имя файла</code> (<code>only_file_name</code>, <code>2</code>) – Значение содержит только имя файла.
|-
|-
|Название: <code>Путь в переменную</code>
|Название: <code>Переход, ошибка</code>


Код: <code>nameVar</code>
Код: <code>transferError</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Переменная для сохранения пути к файлу с принятым факсимильным сообщением.
|Компонент, которому передается управление при обнаружении ошибки, например неверно задан путь к файлу для потоковой записи.
|}


Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.


Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.


Формат файла: <code>tiff</code> – одностраничное или многостраничное битовое изображение.
==== Компонент Отправка факса ====
 
Отправляет изображение по факсимильному протоколу T.30 или T.38.
Запись сообщения осуществляется сервером с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.
|-
|Название: <code>Переход</code>
 
Код: <code>transfer</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Компонент, которому передается управление при завершении операции по набору нужного числа символов.
|-
|Название: <code>Переход, время</code>
 
Код: <code>transferTimeout</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Компонент, которому передается управление при завершении по таймауту.
|-
|Название: <code>Переход, ошибка</code>
 
Код: <code>transferError</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Компонент, которому передается управление в случае возникновения ошибки.
|}
 
 
=== Компонент Перевод с подменой плеча ===
Производит перевод абонента текущего звонка на другой указанный диалог путем отправки одному из его абонентов SIP-запроса REFER с атрибутом Replaces.
После успешного завершения операции выполнение основной ветки сценария прерывается.
 
Автоматически производит подписку на получение событий о состоянии перевода.
 
При плановом протекании процесса такой перевод завершается в течение 1 секунды. Некоторые абонентские устройства и приложения осуществляют запрос к пользователю с ожиданием его подтверждения при подмене звонка. Это может неограниченно увеличить время операции. Однако спустя 60 секунд управление в любом случае будет передано следующему компоненту по ветке "Время подписки".
 
Компонент предназначен исключительно для внутренних нужд системы.
{| class="wikitable"
{| class="wikitable"
|+Table 1. Системные характеристики
|+Table 1. Системные характеристики
Строка 1504: Строка 1436:
|-
|-
|Индекс
|Индекс
|<code>215</code>
|<code>213</code>
|-
|-
|Краткое название
|Краткое название
|<code>refer_replace</code>
|<code>fax_send</code>
|-
|-
|Типы сценариев
|Типы сценариев
Строка 1513: Строка 1445:
|-
|-
|Стартовый модуль
|Стартовый модуль
|<code>r_sip_ivr_script_component_refer_replace</code>
|<code>r_sip_ivr_script_component_fax_send</code>
|-
|-
|Режим
|Режим
Строка 1522: Строка 1454:
|-
|-
|Характер разветвления
|Характер разветвления
|Разветвляющий, прерывающий
|Разветвляющий, замыкающий
|}
|}
 
'''Свойства'''
==== Свойства ====
{| class="wikitable"
{| class="wikitable"
|+Table 2. Свойства
|+Table 2. Свойства
Строка 1531: Строка 1462:
!Описание
!Описание
|-
|-
|Название: <code>URI адресата</code>
|Название: <code>Протокол</code>


Код: <code>referToUri</code>
Код: <code>proto</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>T30</code>
|Аргумент, содержащий значение заголовка <code>ReferTo</code> отправляемого SIP-запроса REFER.
|Выбор факсимильного протокола.


Определяет URI абонента, соответствующий значению URI в заголовке <code>To</code> или <code>From</code> подменяемого диалога.
* <code>Авто</code> (<code>auto</code>, <code>0</code>) – Сначала производится попытка переключиться в протокол T38, а при отказе удаленной стороны производится переключение в T30.
 
* <code>T30</code> (<code>t30</code>, <code>1</code>) – Переключение в T30 и ожидание переключения в T30 удаленной стороны.
Например: <code><nowiki>sip:user1@domain1</nowiki></code>.
* <code>T38</code> (<code>t38</code>, <code>2</code>) – Переключение в T38, а при отказе удаленной стороны, завершение работы с ошибкой.
|-
|-
|Название: <code>Замещаемый CallId</code>
|Название: <code>Таймаут, с</code>


Код: <code>replacesCallId</code>
Код: <code>timeoutSec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий основное значение параметра <code>Replaces</code> в заголовке <code>ReferTo</code> отправляемого SIP-запроса REFER.
|Таймаут приема до автоматического прерывания, в секундах.
 
Определяет CallId подменяемого плеча.
|-
|-
|Название: <code>Замещаемый To-tag</code>
|Название: <code>Файл</code>


Код: <code>replacesToTag</code>
Код: <code>file</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий значение атрибута <code>to-tag</code> параметра <code>Replaces</code> в заголовке <code>ReferTo</code> отправляемого SIP-запроса REFER.
|Файл для отправки факсимильным сообщением.
|-
|Название: <code>Замещаемый From-tag</code>


Код: <code>replacesFromTag</code>
Может быть выбран в одном из режимов:


Усл. видимости: <code>нет</code>
* статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
* сформированный аргументами путь, который должен включать одну из файловых категорий.
 
Формат файла: <code>tiff</code> – одностраничное или многостраничное битовое изображение.


По умолчанию: — 
Отправка сообщения осуществляется сервером с ролью mg, обслуживающим текущий звонок. Перенос всегда происходит внутри сайта.
|Аргумент, содержащий значение атрибута <code>from-tag</code> параметра <code>Replaces</code> в заголовке <code>ReferTo</code> отправляемого SIP-запроса REFER.
|-
|-
|Название: <code>Режим re-INVITE</code>
|Название: <code>Переход</code>


Код: <code>reinviteMode</code>
Код: <code>transfer</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Не использовать</code>
По умолчанию: — 
|Выбор режима предварительного преобразования медиа-сессии текущего диалога перед отправкой SIP-запроса REFER.
|Компонент, которому передается управление при завершении операции по набору нужного числа символов.
 
Возможные варианты:
 
* <code>Не использовать</code> (<code>not_used</code>, <code>0</code>) – Не производит преобразования.
* <code>Авто</code> (<code>auto</code>, <code>1</code>) – По текущим настройкам системы аналогично режиму <code>inactive</code>.
* <code>sendonly</code> (<code>2</code>) – Переводит медиа-сессию в режим удержания путем отправки re-INVITE с SDP, где у медиа-стримов выставлен атрибут <code>a=sendonly</code>.
* <code>inactive</code> (<code>3</code>) – Переводит медиа-сессию в режим удержания путем отправки re-INVITE с SDP, где у медиа-стримов выставлен атрибут <code>a=inactive</code> (не соответствует RFC-6337 п.5.3.).
|-
|-
|Название: <code>Применять huntblock</code>
|Название: <code>Переход, время</code>


Код: <code>huntblockenabled</code>
Код: <code>transferTimeout</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: false
По умолчанию: — 
|Включить/выключить применение huntblock.
|Компонент, которому передается управление при завершении по таймауту.
|-
|-
|Название: <code>Код hunt</code>
|Название: <code>Переход, ошибка</code>


Код: <code>huntblockcode</code>
Код: <code>transferError</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Код объекта доменного центра hunt. Применяется в случае указания huntblockenabled=true
|Компонент, которому передается управление в случае возникновения ошибки.
|-
|}
|Название: <code>Переход, время подписки</code>


Код: <code>transferSubTerminated</code>


Усл. видимости: <code>нет</code>


По умолчанию: — 
==== Компонент Прием факса ====
|Компонент, которому передается управление, если истекло время подписки, а подтверждения получения окончательного ответа не последовало.
Переключается в режим приема изображения по факсимильному протоколу T.30 или T.38. Компонент завершает работу при успешном приеме или по истечении установленного таймаута.
|-
Размещает файл во временном каталоге на время жизни сценария. Для сохранения файла от сценария требуется последующее перемещение его в любое место стационарного хранения.
|Название: <code>Переход, отказ</code>
 
Код: <code>transferRejected</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Компонент, которому передается управление в случае, если при вызове получен неудачный окончательный ответ: <code>3xx-6xx</code> (на REFER или INVITE).
|-
|Название: <code>Переход, время</code>
 
Код: <code>transferTimeout</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Компонент, которому передается управление в случае, если за ограниченное время не получен окончательный ответ на отправленный SIP-запрос re-INVITE или REFER.
|}
 
 
=== Компонент Перевод с контролируемым вызовом ===
Производит контролируемый перевод на номер. Осуществляет самостоятельный вызов номера посредством нового экземпляра обработчика сценариев IVR, откладывая непосредственно перевод до момента, когда абонент уже ответил и ожидает. После ответа абонента, ему может быть предварительно воспроизведен IVR сценарий. Непосредственно перевод осуществляется отправкой абоненту SIP-запроса REFER с атрибутом Replaces.
Вызов абонента может быть осуществлен с любыми параметрами, в том числе и без последующего выполнения IVR-сценария. После успешного завершения операции выполнение основной ветки сценария прерывается. На любом шаге процесса может произойти плановый отказ, тогда управление передается следующему компоненту по соответствующей ветке перехода.
 
Автоматически производит подписку на получение событий о состоянии перевода. Общее время работы компонента складывается из времени набора указанного номера, ожидания ответа, активности IVR-сценария предварительного воспроизведения.
 
Некоторые абонентские устройства и приложения осуществляют запрос к пользователю с ожиданием его подтверждения при подмене звонка. Это может неограниченно увеличить время операции. Однако спустя 60 секунд управление в любом случае будет передано следующему компоненту по ветке "Время подписки".
 
При вызове абонента по номеру используется стандартный процесс маршрутизации от имени текущего сценария IVR.
 
При необходимости следует заполнять интервал ожидания соединения мелодией фонового воспроизведения (предварительно установленный компонент воспроизведения). Медиа-режим sendonly с автоматически подключаемой мелодией ожидания активируется только непосредственно перед отправкой запроса REFER, и в случае компонента контролируемого перевода является кратковременным и не обеспечивает функциональности воспроизведения в полной мере.
{| class="wikitable"
{| class="wikitable"
|+Table 1. Системные характеристики
|+Table 1. Системные характеристики
Строка 1653: Строка 1541:
|-
|-
|Индекс
|Индекс
|<code>217</code>
|<code>214</code>
|-
|-
|Краткое название
|Краткое название
|<code>refer_attended</code>
|<code>fax_receive</code>
|-
|-
|Типы сценариев
|Типы сценариев
Строка 1662: Строка 1550:
|-
|-
|Стартовый модуль
|Стартовый модуль
|<code>r_sip_ivr_script_component_refer_attended</code>
|<code>r_sip_ivr_script_component_fax_receive</code>
|-
|-
|Режим
|Режим
Строка 1671: Строка 1559:
|-
|-
|Характер разветвления
|Характер разветвления
|Разветвляющий, прерывающий
|Разветвляющий, замыкающий
|}
|}
 
'''Свойства'''
==== Свойства ====
{| class="wikitable"
{| class="wikitable"
|+Table 2. Свойства
|+Table 2. Свойства
Строка 1680: Строка 1567:
!Описание
!Описание
|-
|-
|Название: <code>Номер</code>
|Название: <code>Протокол</code>


Код: <code>number</code>
Код: <code>proto</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>T30</code>
|Аргумент, содержащий телефонный номер абонента для осущствления на перевода.
|Выбор факсимильного протокола.
 
* <code>Авто</code> (<code>auto</code>, <code>0</code>) – Сначала производится попытка переключиться в протокол T38, а при отказе удаленной стороны производится переключение в T30.
* <code>T30</code> (<code>t30</code>, <code>1</code>) – Переключение в T30 и ожидание переключения в T30 удаленной стороны.
* <code>T38</code> (<code>t38</code>, <code>2</code>) – Переключение в T38, а при отказе удаленной стороны, завершение работы с ошибкой.
|-
|-
|Название: <code>Исходящий номер</code>
|Название: <code>Таймаут, с</code>


Код: <code>callerId</code>
Код: <code>timeoutSec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий CallerId – значение username для подстановки в URI заголовка <code>From</code> отправляемого SIP-запроса INVITE.
|Таймаут приема до автоматического прерывания, в секундах.
|-
|-
|Название: <code>Исходящее имя</code>
|Название: <code>Сохранить путь</code>


Код: <code>callerName</code>
Код: <code>pathToVarMode</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>Да</code>
|Аргумент, содержащий CallerName – значение displayname для подстановки в URI заголовка <code>From</code> отправляемого SIP-запроса INVITE.
|Выключатель сохранения пути к файлу с записью в переменную и выбор содержания.
 
Возможные варианты:
 
* <code>Не сохранять</code> (<code>dont_save</code>, <code>0</code>)
* <code>С ключом папки</code> (<code>script_key_path</code>, <code>1</code>) – Значение включает в категорию, относительный путь и имя файла.
* <code>Только имя файла</code> (<code>only_file_name</code>, <code>2</code>) – Значение содержит только имя файла.
|-
|-
|Название: <code>Время набора, с</code>
|Название: <code>Путь в переменную</code>


Код: <code>dialingTimeout</code>
Код: <code>nameVar</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Нижнее ограничение на время вызова абонента.
|Переменная для сохранения пути к файлу с принятым факсимильным сообщением.


По умолчанию время вызова внутренних абонентов 30 секунд, и может быть изменено в свойствах учетной записи SIP-пользователя.
Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.
|-
|Название: <code>Источник сценария IVR</code>


Код: <code>setScrMode</code>
Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.


Усл. видимости: <code>нет</code>
Формат файла: <code>tiff</code> – одностраничное или многостраничное битовое изображение.


По умолчанию: ``
Запись сообщения осуществляется сервером с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.
|Способ выбора IVR-сценария для предварительного воспроизведения вызываемому абоненту.
 
Возможные значения:
 
* <code>Не использовать</code> (<code>none</code>,<code>3</code>) – Не использовать сценарий, только осуществить дозвон, проконтролировать ответ и переключить.
* <code>Из списка</code> (<code>code_sel</code>,<code>2</code>) – Указание кода сценария с помощью аргумента. Применяет значение свойства <code>Сценарий</code>.
* <code>По коду</code> (<code>code</code>,<code>0</code>) – Указание кода сценария с помощью аргумента. Применяет значение свойства <code>Код сценария</code>.
* <code>JSON</code> (<code>body</code>,<code>1</code>) – Указание кода сценария с помощью аргумента. Применяет значение свойства <code>Тело сценария</code>.
 
Сценарий предварительного воспроизведения должен успеть до таймаута завершиться компонентом Стоп для успешного осуществления перевода.
|-
|-
|Название: <code>Код сценария</code>
|Название: <code>Переход</code>


Код: <code>ivrScriptCode</code>
Код: <code>transfer</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент с кодом IVR-сценария в текущем домене.
|Компонент, которому передается управление при завершении операции по набору нужного числа символов.
|-
|-
|Название: <code>Тело сценария</code>
|Название: <code>Переход, время</code>


Код: <code>ivrScriptJson</code>
Код: <code>transferTimeout</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий JSON-структуру с телом IVR-сценария (упакованный в строку JSON-массив).
|Компонент, которому передается управление при завершении по таймауту.
 
Формат структуры аналогичен разделу `scriptdata.objects`" в сущности IVR сценария.
|-
|-
|Название: <code>Сценарий</code>
|Название: <code>Переход, ошибка</code>


Код: <code>ivrScriptCodeSel</code>
Код: <code>transferError</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Выпадающий список с кодами сценариев. Содержит все доступные (нескрытые) IVR сценарии, содержащиеся в текущем домене.
|Компонент, которому передается управление в случае возникновения ошибки.
|-
|}
|Название: <code>Значения переменных</code>


Код: <code>ivrScriptVarValuesT</code>


Усл. видимости: <code>да</code>


По умолчанию: — 
==== Компонент Перевод с подменой плеча ====
|Таблица начальных значений для локальных переменных IVR сценария, запускаемого для предварительного воспроизведения вызываемому абоненту.
Производит перевод абонента текущего звонка на другой указанный диалог путем отправки одному из его абонентов SIP-запроса REFER с атрибутом Replaces.
После успешного завершения операции выполнение основной ветки сценария прерывается.


Доступно только если используется сценарий IVR предварительного воспроизведения вызываемому абоненту.
Автоматически производит подписку на получение событий о состоянии перевода.


Ключи - названия переменных сценария IVR.
При плановом протекании процесса такой перевод завершается в течение 1 секунды. Некоторые абонентские устройства и приложения осуществляют запрос к пользователю с ожиданием его подтверждения при подмене звонка. Это может неограниченно увеличить время операции. Однако спустя 60 секунд управление в любом случае будет передано следующему компоненту по ветке "Время подписки".


Сопоставление происходит по именам переменных, значения присваиваются только тем переменным, которые определены в сценарии.
Компонент предназначен исключительно для внутренних нужд системы.
 
{| class="wikitable"
Если запускаемый сценарий IVR передает управление вложенному, то присвоение значений каждой из указанных переменных производится не более одного раза, но может откладываться вплоть до загрузки вложенного сценария, имеющего переменную с соответствующим именем.
|+Table 1. Системные характеристики
 
!
Установленные таким образом значения приоритетны перед значениями по умолчанию внутри сценария IVR.
!
|-
|-
|Название: <code>Параметр 1</code>
|Индекс
 
|<code>215</code>
Код: <code>param1</code>
 
Усл. видимости: <code>да</code>
 
По умолчанию: — 
|Первый параметр для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений <code>startparam(1)</code> или через сохранение значения в компоненте Старт.
|-
|-
|Название: <code>Параметр 2</code>
|Краткое название
 
|<code>refer_replace</code>
Код: <code>param2</code>
 
Усл. видимости: <code>да</code>
 
По умолчанию: — 
|Второй параметр для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений <code>startparam(2)</code>.
|-
|-
|Название: <code>Параметр 3</code>
|Типы сценариев
 
|<code>IVR</code>
Код: <code>param3</code>
|-
|Стартовый модуль
|<code>r_sip_ivr_script_component_refer_replace</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, прерывающий
|}
'''Свойства'''
{| class="wikitable"
|+Table 2. Свойства
!Спецификация
!Описание
|-
|Название: <code>URI адресата</code>
 
Код: <code>referToUri</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Третий параметр для инициируемого IVR-сценария Доступ к значению осуществляется через функцию выражений <code>startparam(3)</code>.
|Аргумент, содержащий значение заголовка <code>ReferTo</code> отправляемого SIP-запроса REFER.
|-
|Название: <code>Параметр 4</code>


Код: <code>param4</code>
Определяет URI абонента, соответствующий значению URI в заголовке <code>To</code> или <code>From</code> подменяемого диалога.


Усл. видимости: <code>да</code>
Например: <code><nowiki>sip:user1@domain1</nowiki></code>.
 
По умолчанию: — 
|Четвертый параметр для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений <code>startparam(4)</code>.
|-
|-
|Название: <code>Параметр 5</code>
|Название: <code>Замещаемый CallId</code>


Код: <code>param5</code>
Код: <code>replacesCallId</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Пятый параметр для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений <code>startparam(5)</code>.
|Аргумент, содержащий основное значение параметра <code>Replaces</code> в заголовке <code>ReferTo</code> отправляемого SIP-запроса REFER.
 
Определяет CallId подменяемого плеча.
|-
|-
|Название: <code>Прочие параметры</code>
|Название: <code>Замещаемый To-tag</code>


Код: <code>paramsOther</code>
Код: <code>replacesToTag</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|JSON-массив, содержащий параметры 6, 7, 8 и т.д. для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений <code>startparam(N)</code>, где N > 6.
|Аргумент, содержащий значение атрибута <code>to-tag</code> параметра <code>Replaces</code> в заголовке <code>ReferTo</code> отправляемого SIP-запроса REFER.
|-
|-
|Название: <code>Время IVR, c</code>
|Название: <code>Замещаемый From-tag</code>


Код: <code>ivrTimeout</code>
Код: <code>replacesFromTag</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Таймаут ожидания выполнения IVR сценария.
|Аргумент, содержащий значение атрибута <code>from-tag</code> параметра <code>Replaces</code> в заголовке <code>ReferTo</code> отправляемого SIP-запроса REFER.
|-
|-
|Название: <code>Режим re-INVITE</code>
|Название: <code>Режим re-INVITE</code>
Строка 1863: Строка 1750:
* <code>inactive</code> (<code>3</code>) – Переводит медиа-сессию в режим удержания путем отправки re-INVITE с SDP, где у медиа-стримов выставлен атрибут <code>a=inactive</code> (не соответствует RFC-6337 п.5.3.).
* <code>inactive</code> (<code>3</code>) – Переводит медиа-сессию в режим удержания путем отправки re-INVITE с SDP, где у медиа-стримов выставлен атрибут <code>a=inactive</code> (не соответствует RFC-6337 п.5.3.).
|-
|-
|Название: <code>Код результата в переменную</code>
|Название: <code>Применять huntblock</code>


Код: <code>resultCode</code>
Код: <code>huntblockenabled</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: false
|Переменная для сохранения кода внутренней ошибки.
|Включить/выключить применение huntblock.
 
Возможные варианты:
 
* <code>"001"</code> – Ошибка инициации вызова.
* <code>"002"</code> – Неудача вызова.
|-
|-
|Название: <code>Описание результата в переменную</code>
|Название: <code>Код hunt</code>


Код: <code>resultDescription</code>
Код: <code>huntblockcode</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Переменная для сохранения текстового описания внутренней ошибки.
|Код объекта доменного центра hunt. Применяется в случае указания huntblockenabled=true
|-
|-
|Название: <code>SIP-код ответа в переменную</code>
|Название: <code>Переход, время подписки</code>


Код: <code>resultSipCode</code>
Код: <code>transferSubTerminated</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Переменная для сохранения кода SIP-ответа на исходящий запрос INVITE.
|Компонент, которому передается управление, если истекло время подписки, а подтверждения получения окончательного ответа не последовало.
|-
|-
|Название: <code>Причина SIP ответа в переменную</code>
|Название: <code>Переход, отказ</code>
 
Код: <code>resultSipReason</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Переменная для сохранения фразы SIP-ответа на исходящий запрос INVITE.
|-
|Название: <code>Заголовки SIP ответа в переменную</code>
 
Код: <code>resultSipHeaders</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Переменная для сохранения совокупности заголовков SIP-ответа на исходящий запрос INVITE.
|-
|Название: <code>Переход, время подписки</code>
 
Код: <code>transferSubTerminated</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Компонент, которому передается управление, если истекло время подписки, а подтверждения получения окончательного ответа не последовало.
|-
|Название: <code>Переход, отказ</code>


Код: <code>transferRejected</code>
Код: <code>transferRejected</code>
Строка 1939: Строка 1794:
По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается управление в случае, если за ограниченное время не получен окончательный ответ на отправленный SIP-запрос re-INVITE или REFER.
|Компонент, которому передается управление в случае, если за ограниченное время не получен окончательный ответ на отправленный SIP-запрос re-INVITE или REFER.
|-
|}
|Название: <code>Переход, неудача</code>


Код: <code>transferFailed</code>


Усл. видимости: <code>нет</code>


По умолчанию: — 
==== Компонент Перевод с контролируемым вызовом ====
|Компонент, которому передается управление в случае, если вызываемый абонент не ответил, либо ответил неудачным окончательным кодом 3xx-6xx.
Производит контролируемый перевод на номер. Осуществляет самостоятельный вызов номера посредством нового экземпляра обработчика сценариев IVR, откладывая непосредственно перевод до момента, когда абонент уже ответил и ожидает. После ответа абонента, ему может быть предварительно воспроизведен IVR сценарий. Непосредственно перевод осуществляется отправкой абоненту SIP-запроса REFER с атрибутом Replaces.
|-
Вызов абонента может быть осуществлен с любыми параметрами, в том числе и без последующего выполнения IVR-сценария. После успешного завершения операции выполнение основной ветки сценария прерывается. На любом шаге процесса может произойти плановый отказ, тогда управление передается следующему компоненту по соответствующей ветке перехода.
|Название: <code>Переход, ошибка</code>


Код: <code>transferError</code>
Автоматически производит подписку на получение событий о состоянии перевода. Общее время работы компонента складывается из времени набора указанного номера, ожидания ответа, активности IVR-сценария предварительного воспроизведения.


Усл. видимости: <code>нет</code>
Некоторые абонентские устройства и приложения осуществляют запрос к пользователю с ожиданием его подтверждения при подмене звонка. Это может неограниченно увеличить время операции. Однако спустя 60 секунд управление в любом случае будет передано следующему компоненту по ветке "Время подписки".


По умолчанию: — 
При вызове абонента по номеру используется стандартный процесс маршрутизации от имени текущего сценария IVR.
|Компонент, которому передается управление в случае, если истекло время ожидания окончательного ответа на отправленный SIP-запрос INVITE, либо завершения IVR сценария предварительного воспроизведения.
|}


 
При необходимости следует заполнять интервал ожидания соединения мелодией фонового воспроизведения (предварительно установленный компонент воспроизведения). Медиа-режим sendonly с автоматически подключаемой мелодией ожидания активируется только непосредственно перед отправкой запроса REFER, и в случае компонента контролируемого перевода является кратковременным и не обеспечивает функциональности воспроизведения в полной мере.
=== Компонент Парковка ===
Осуществляет постановку текущего звонка на паркову (размещает информацию в хранилище), либо взятие абонента с парковки (переключает текущего абонента на абонента из парковки).
Компонент используется в сценариях постановки и взятия с парковки, применяемым в ходе вызова featurecode с типом parking. Может использоваться и в других сценариях.
{| class="wikitable"
{| class="wikitable"
|+Table 1. Системные характеристики
|+Table 1. Системные характеристики
Строка 1969: Строка 1815:
|-
|-
|Индекс
|Индекс
|<code>218</code>
|<code>217</code>
|-
|-
|Краткое название
|Краткое название
|<code>parking</code>
|<code>refer_attended</code>
|-
|-
|Типы сценариев
|Типы сценариев
Строка 1978: Строка 1824:
|-
|-
|Стартовый модуль
|Стартовый модуль
|<code>r_sip_ivr_script_component_parking</code>
|<code>r_sip_ivr_script_component_refer_attended</code>
|-
|-
|Режим
|Режим
Строка 1987: Строка 1833:
|-
|-
|Характер разветвления
|Характер разветвления
|Разветвляющий, замыкающий
|Разветвляющий, прерывающий
|}
|}
 
'''Свойства'''
==== Свойства ====
{| class="wikitable"
{| class="wikitable"
|+Table 2. Свойства
|+Table 2. Свойства
Строка 1996: Строка 1841:
!Описание
!Описание
|-
|-
|Название: <code>Действие</code>
|Название: <code>Номер</code>


Код: <code>action</code>
Код: <code>number</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Разместить на парковке</code>
По умолчанию: — 
|Возможные значения:
|Аргумент, содержащий телефонный номер абонента для осуществления перевода.
 
* <code>Разместить на парковке</code> (<code>push</code>, <code>0</code>) – Осуществляет сохранение данных о текущем звонке в журнал парковки и возвращает упрвление для дальнейшего перехода к воспроизведению. Запись из журнала автоматически удаляется при завершении сценария.
* <code>Взять с парковки</code> (<code>pop</code>, <code>1</code>) – Осуществляет поиск данных в журнале парковки, поиск активного звонка и переключение на него текущего абонента путем отправки SIP-запроса REFER с опцией Replaces. Применяет алгоритм компонента Перевод с подменой плеча.
|-
|-
|Название: <code>Номер парковки</code>
|Название: <code>Исходящий номер</code>


Код: <code>parkingCode</code>
Код: <code>callerId</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий номер парковки, с которым связана текущая операция.
|Аргумент, содержащий CallerId – значение username для подстановки в URI заголовка <code>From</code> отправляемого SIP-запроса INVITE.
 
Операция размещения может быть успешно проведена только если указанный номер в журнале парковки отсутствует, то есть парковочное место свободно.
|-
|-
|Название: <code>Код ошибки в переменную</code>
|Название: <code>Исходящее имя</code>


Код: <code>errorCodeVar</code>
Код: <code>callerName</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Переменная для сохранения кода ошибки.
|Аргумент, содержащий CallerName – значение displayname для подстановки в URI заголовка <code>From</code> отправляемого SIP-запроса INVITE.
|-
|-
|Название: <code>Переход</code>
|Название: <code>Время набора, с</code>


Код: <code>transfer</code>
Код: <code>dialingTimeout</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается упрваление при успешном завершении операции размещения на парковку.
|Нижнее ограничение на время вызова абонента.
 
По умолчанию время вызова внутренних абонентов 30 секунд, и может быть изменено в свойствах учетной записи SIP-пользователя.
|-
|-
|Название: <code>Переход, занято</code>
|Название: <code>Источник сценария IVR</code>


Код: <code>transferBusy</code>
Код: <code>setScrMode</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: ``
|Компонент, которому передается управление в случае, если при размещении на парковку указанное парковочное место занято.
|Способ выбора IVR-сценария для предварительного воспроизведения вызываемому абоненту.
 
Возможные значения:
 
* <code>Не использовать</code> (<code>none</code>,<code>3</code>) – Не использовать сценарий, только осуществить дозвон, проконтролировать ответ и переключить.
* <code>Из списка</code> (<code>code_sel</code>,<code>2</code>) – Указание кода сценария с помощью аргумента. Применяет значение свойства <code>Сценарий</code>.
* <code>По коду</code> (<code>code</code>,<code>0</code>) – Указание кода сценария с помощью аргумента. Применяет значение свойства <code>Код сценария</code>.
* <code>JSON</code> (<code>body</code>,<code>1</code>) – Указание кода сценария с помощью аргумента. Применяет значение свойства <code>Тело сценария</code>.
 
Сценарий предварительного воспроизведения должен успеть до таймаута завершиться компонентом Стоп для успешного осуществления перевода.
|-
|-
|Название: <code>Переход, не найдено</code>
|Название: <code>Код сценария</code>


Код: <code>transferNotFound</code>
Код: <code>ivrScriptCode</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается управление если при попытке взять абонента с парковки указанное парковочное место пусто.
|Аргумент с кодом IVR-сценария в текущем домене.
|-
|-
|Название: <code>Переход, ошибка</code>
|Название: <code>Тело сценария</code>


Код: <code>transferError</code>
Код: <code>ivrScriptJson</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается управление при возникновении ошибки.
|Аргумент, содержащий JSON-структуру с телом IVR-сценария (упакованный в строку JSON-массив).
|}
 
Формат структуры аналогичен разделу `scriptdata.objects`" в сущности IVR сценария.
|-
|Название: <code>Сценарий</code>


Код: <code>ivrScriptCodeSel</code>


=== Компонент Синтез речи (MRCPv2) ===
Усл. видимости: <code>нет</code>
Осуществляет синтез речи по тексту и воспроизведение текущему абоненту.
 
Взаимодействует с произвольным сервером TTS по протоколу MRCPv2. Может иметь технические ограничения горизонтальной масштабируемости из-за односерверного исполнения.
По умолчанию: — 
{| class="wikitable"
|Выпадающий список с кодами сценариев. Содержит все доступные (нескрытые) IVR сценарии, содержащиеся в текущем домене.
|+Table 1. Системные характеристики
!
!
|-
|-
|Индекс
|Название: <code>Значения переменных</code>
|<code>220</code>
 
Код: <code>ivrScriptVarValuesT</code>
 
Усл. видимости: <code>да</code>
 
По умолчанию: — 
|Таблица начальных значений для локальных переменных IVR сценария, запускаемого для предварительного воспроизведения вызываемому абоненту.
 
Доступно только если используется сценарий IVR предварительного воспроизведения вызываемому абоненту.
 
Ключи - названия переменных сценария IVR.
 
Сопоставление происходит по именам переменных, значения присваиваются только тем переменным, которые определены в сценарии.
 
Если запускаемый сценарий IVR передает управление вложенному, то присвоение значений каждой из указанных переменных производится не более одного раза, но может откладываться вплоть до загрузки вложенного сценария, имеющего переменную с соответствующим именем.
 
Установленные таким образом значения приоритетны перед значениями по умолчанию внутри сценария IVR.
|-
|-
|Краткое название
|Название: <code>Параметр 1</code>
|<code>tts</code>
 
Код: <code>param1</code>
 
Усл. видимости: <code>да</code>
 
По умолчанию: — 
|Первый параметр для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений <code>startparam(1)</code> или через сохранение значения в компоненте Старт.
|-
|-
|Типы сценариев
|Название: <code>Параметр 2</code>
|<code>IVR</code>
 
Код: <code>param2</code>
 
Усл. видимости: <code>да</code>
 
По умолчанию: — 
|Второй параметр для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений <code>startparam(2)</code>.
|-
|-
|Стартовый модуль
|Название: <code>Параметр 3</code>
|<code>r_sip_ivr_script_component_tts</code>
 
Код: <code>param3</code>
 
Усл. видимости: <code>да</code>
 
По умолчанию: — 
|Третий параметр для инициируемого IVR-сценария Доступ к значению осуществляется через функцию выражений <code>startparam(3)</code>.
|-
|-
|Режим
|Название: <code>Параметр 4</code>
|Асинхронный
 
Код: <code>param4</code>
 
Усл. видимости: <code>да</code>
 
По умолчанию: — 
|Четвертый параметр для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений <code>startparam(4)</code>.
|-
|-
|Состояние
|Название: <code>Параметр 5</code>
|Реализация отложена
 
|}
Код: <code>param5</code>
 
Усл. видимости: <code>да</code>


=== Компонент Распознавание речи (MRCPv2) ===
По умолчанию: — 
Осуществляет распознавание речи абонента в текстовый вид.
|Пятый параметр для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений <code>startparam(5)</code>.
Взаимодействует с произвольным сервером ASR по протоколу MRCPv2. Может иметь технические ограничения горизонтальной масштабируемости из-за односерверного исполнения.
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|-
|Индекс
|Название: <code>Прочие параметры</code>
|<code>221</code>
 
Код: <code>paramsOther</code>
 
Усл. видимости: <code>да</code>
 
По умолчанию: — 
|JSON-массив, содержащий параметры 6, 7, 8 и т.д. для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений <code>startparam(N)</code>, где N > 6.
|-
|-
|Краткое название
|Название: <code>Время IVR, c</code>
|<code>asr</code>
|-
|Типы сценариев
|<code>IVR</code>
|-
|Стартовый модуль
|<code>r_sip_ivr_script_component_asr</code>
|-
|Режим
|Асинхронный
|-
|Состояние
|Реализация отложена
|}


Код: <code>ivrTimeout</code>


=== Компонент Синтез речи (Yandex Cloud SpeechKit) ===
Усл. видимости: <code>нет</code>
Осуществляет синтез речи по тексту и воспроизведение текущему абоненту.
Сервис предоставляется облаком Yandex Cloud SpeechKit по протоколу HTTP (APIv1 REST). Не имеет технических ограничений по производительности.


Порядок регистрации учетной записи Yandex-облака и стоимость сервиса см. на Яндексе.
По умолчанию: — 
|Таймаут ожидания выполнения IVR сценария.
|-
|Название: <code>Режим re-INVITE</code>


Настройка токенов производится в разделе настройки домена, поле 'yandex_cloud'.
Код: <code>reinviteMode</code>


Позволяет воспроизводить результат, а также просто записывать его в аудио-файл.
Усл. видимости: <code>нет</code>


В режиме воспроизведения файл сначала синтезируется и выкачивается полностью, затем начинается воспроизведение.
По умолчанию: <code>Не использовать</code>
|Выбор режима предварительного преобразования медиа-сессии текущего диалога перед отправкой SIP-запроса REFER.


Скорость синтеза речи ориентировочно в 10 раз быстрее реального времени ее воспроизведения.
Возможные варианты:
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|Индекс
|<code>222</code>
|-
|Краткое название
|<code>tts_yandex</code>
|-
|Типы сценариев
|<code>IVR</code>
|-
|Стартовый модуль
|<code>r_sip_ivr_script_component_tts_yandex</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, прерывающий
|}


==== Свойства ====
* <code>Не использовать</code> (<code>not_used</code>, <code>0</code>) – Не производит преобразования.
{| class="wikitable"
* <code>Авто</code> (<code>auto</code>, <code>1</code>) – По текущим настройкам системы аналогично режиму <code>inactive</code>.
|+Table 2. Свойства
* <code>sendonly</code> (<code>2</code>) – Переводит медиа-сессию в режим удержания путем отправки re-INVITE с SDP, где у медиа-стримов выставлен атрибут <code>a=sendonly</code>.
!Спецификация
* <code>inactive</code> (<code>3</code>) – Переводит медиа-сессию в режим удержания путем отправки re-INVITE с SDP, где у медиа-стримов выставлен атрибут <code>a=inactive</code> (не соответствует RFC-6337 п.5.3.).
!Описание
|-
|-
|Название: <code>Аккаунт Яндекс</code>
|Название: <code>Код результата в переменную</code>


Код: <code>accountKey</code>
Код: <code>resultCode</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>default</code>
По умолчанию: — 
|Указание на аккаунт Яндекса, опции которого берутся для подключения к яндексу.
|Переменная для сохранения кода внутренней ошибки.


В список попадает значение 'default', устанавливающее к использованию корневые поля 'speech' и 'storage' в объекте 'settings.yandex_cloud'.
Возможные варианты:


Дополнительно в список попадают ключи объекта 'settings.yandex_cloud.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа.
* <code>"001"</code> – Ошибка инициации вызова.
* <code>"002"</code> – Неудача вызова.
|-
|-
|Название: <code>Режим</code>
|Название: <code>Описание результата в переменную</code>


Код: <code>mode</code>
Код: <code>resultDescription</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Воспроизведение</code>
По умолчанию: — 
|Режим работы компонента после получения ответа от сервиса TTS Yandex Cloud SpeechKit.
|Переменная для сохранения текстового описания внутренней ошибки.
|-
|Название: <code>SIP-код ответа в переменную</code>
 
Код: <code>resultSipCode</code>


Возможные варианты:
Усл. видимости: <code>нет</code>


* <code>Воспроизведение</code> (<code>play</code>, <code>0</code>) – Воспроизведение синтезированной речи абоненту с последующим удалением файла.
По умолчанию: — 
* <code>Генерация файла</code> (<code>file</code>, <code>1</code>) – Сохранение аудио-файла в локальный временный каталог и возврат пути к файлу в переменную.
|Переменная для сохранения кода SIP-ответа на исходящий запрос INVITE.
|-
|-
|Название: <code>Текст</code>
|Название: <code>Причина SIP ответа в переменную</code>


Код: <code>text</code>
Код: <code>resultSipReason</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Текст, подлежащий синтезу и последующему воспроизведению. Ограничение на длину строки: 5000 символов.
|Переменная для сохранения фразы SIP-ответа на исходящий запрос INVITE.
|-
|-
|Название: <code>Язык</code>
|Название: <code>Заголовки SIP ответа в переменную</code>


Код: <code>lang</code>
Код: <code>resultSipHeaders</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Русский</code>
По умолчанию: — 
|Параметр сервиса TTS Yandex Cloud SpeechKit: язык синтеза.
|Переменная для сохранения совокупности заголовков SIP-ответа на исходящий запрос INVITE.
|-
|Название: <code>Переход, время подписки</code>
 
Код: <code>transferSubTerminated</code>


Возможные варианты:
Усл. видимости: <code>нет</code>


* <code>ru-RU</code> (<code>0</code>) – Русский
По умолчанию: — 
* <code>en-US</code> (<code>1</code>) – Английский
|Компонент, которому передается управление, если истекло время подписки, а подтверждения получения окончательного ответа не последовало.
* <code>de-DE</code> (<code>2</code>) – Немецкий
* <code>he-IL</code> (<code>6</code>) – Иврит
* <code>kk-KZ</code> (<code>8</code>) – Казахский
* <code>uz-UZ</code> (<code>15</code>) – Узбекский
|-
|-
|Название: <code>Голос</code>
|Название: <code>Переход, отказ</code>


Код: <code>voice</code>
Код: <code>transferRejected</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Alyss (ж)</code>
По умолчанию: — 
|Параметр сервиса TTS Yandex Cloud SpeechKit: голос синтезируемой речи.
|Компонент, которому передается управление в случае, если при вызове получен неудачный окончательный ответ: <code>3xx-6xx</code> (на REFER или INVITE).
|-
|Название: <code>Переход, время</code>
 
Код: <code>transferTimeout</code>


Возможные варианты:
Усл. видимости: <code>нет</code>


* <code>Alyss (ж)</code> (<code>0</code>)
По умолчанию: — 
* <code>Jane (ж)</code> (<code>1</code>)
|Компонент, которому передается управление в случае, если за ограниченное время не получен окончательный ответ на отправленный SIP-запрос re-INVITE или REFER.
* <code>Oksana (ж)</code> (<code>2</code>)
* <code>Omazh (ж)</code> (<code>3</code>)
* <code>Zahar (м)</code> (<code>4</code>)
* <code>Ermil (м)</code> (<code>5</code>)
* <code>Alena (ж)</code> (<code>6</code>)
* <code>Filipp (м)</code> (<code>7</code>)
* <code>Другой</code> (<code>other</code>, <code>100</code>) – Указание произвольного голоса через аргумент.
|-
|-
|Название: <code>Другой голос</code>
|Название: <code>Переход, неудача</code>


Код: <code>voiceOther</code>
Код: <code>transferFailed</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий название голоса для сервиса TTS Yandex Cloud SpeechKit. Поддерживаемые голоса
|Компонент, которому передается управление в случае, если вызываемый абонент не ответил, либо ответил неудачным окончательным кодом 3xx-6xx.
|-
|-
|Название: <code>Эмоция</code>
|Название: <code>Переход, ошибка</code>


Код: <code>emotion</code>
Код: <code>transferError</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Good</code>
По умолчанию: — 
|Параметр сервиса TTS Yandex Cloud SpeechKit: эмоциональный эффект синтезируемой речи, амплуа.
|Компонент, которому передается управление в случае, если истекло время ожидания окончательного ответа на отправленный SIP-запрос INVITE, либо завершения IVR сценария предварительного воспроизведения.
|}


Возможные варианты:


* <code>Good</code> (<code>0</code>)
* <code>Evil</code> (<code>1</code>)
* <code>Neutral</code> (<code>2</code>)
|-
|Название: <code>Темп речи (0.1 – 3.0)</code>


Код: <code>speed</code>
==== Компонент Парковка ====
 
Осуществляет постановку текущего звонка на парковку (размещает информацию в хранилище), либо взятие абонента с парковки (переключает текущего абонента на абонента из парковки).
Усл. видимости: <code>нет</code>
Компонент используется в сценариях постановки и взятия с парковки, применяемым в ходе вызова featurecode с типом parking. Может использоваться и в других сценариях.
 
{| class="wikitable"
По умолчанию: <code>1.0</code>
|+Table 1. Системные характеристики
|Параметр сервиса TTS Yandex Cloud SpeechKit: темп синтезируемой речи.
!
 
!
Дробное значение от <code>0.1</code> до <code>3.0</code> с размерностью <code>0.1</code>
|-
|-
|Название: <code>Прерывать по DTMF</code>
|Индекс
 
|<code>218</code>
Код: <code>checkDTMF</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: <code>Нет</code>
|Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции.
|-
|-
|Название: <code>Буфер для DTMF</code>
|Краткое название
 
|<code>parking</code>
Код: <code>dtmfBuffer</code>
 
Усл. видимости: <code>да</code>
 
По умолчанию: — 
|Переменная для сохранения получаемых DTMF-символов.
|-
|-
|Название: <code>Очистить буфер DTMF</code>
|Типы сценариев
|<code>IVR</code>
|-
|Стартовый модуль
|<code>r_sip_ivr_script_component_parking</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, замыкающий
|}
'''Свойства'''
{| class="wikitable"
|+Table 2. Свойства
!Спецификация
!Описание
|-
|Название: <code>Действие</code>
 
Код: <code>action</code>


Код: <code>clearDtmfBuffer</code>
Усл. видимости: <code>нет</code>


Усл. видимости: <code>да</code>
По умолчанию: <code>Разместить на парковке</code>
|Возможные значения:


По умолчанию: <code>Да</code>
* <code>Разместить на парковке</code> (<code>push</code>, <code>0</code>) – Осуществляет сохранение данных о текущем звонке в журнал парковки и возвращает управление для дальнейшего перехода к воспроизведению. Запись из журнала автоматически удаляется при завершении сценария.
|Выключатель предварительной очистки буфера DTMF.
* <code>Взять с парковки</code> (<code>pop</code>, <code>1</code>) – Осуществляет поиск данных в журнале парковки, поиск активного звонка и переключение на него текущего абонента путем отправки SIP-запроса REFER с опцией Replaces. Применяет алгоритм компонента Перевод с подменой плеча.
|-
|-
|Название: <code>Количество символов</code>
|Название: <code>Номер парковки</code>


Код: <code>maxSymbolCount</code>
Код: <code>parkingCode</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий ограничение на количество вводимых символов.
|Аргумент, содержащий номер парковки, с которым связана текущая операция.


После получения во время исполнения компонента указанного количества символов DTMF завершается операции воспроизведения.
Операция размещения может быть успешно проведена только если указанный номер в журнале парковки отсутствует, то есть парковочное место свободно.
|-
|-
|Название: <code>Символы прерывания</code>
|Название: <code>Код ошибки в переменную</code>


Код: <code>interruptSymbols</code>
Код: <code>errorCodeVar</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Строка, содержащая последовательности символов прерывания через запятую.
|Переменная для сохранения кода ошибки.
 
После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, завершается операция воспроизведения.
 
Например, <code>*, 7, 123, 9395</code>.
|-
|-
|Название: <code>Таймаут ожидания ответа, с</code>
|Название: <code>Переход</code>


Код: <code>responseTimeoutSec</code>
Код: <code>transfer</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Таймаут ожидания ответа от сервиса TTS Yandex Cloud SpeechKit после отправки ему запроса.
|Компонент, которому передается управление при успешном завершении операции размещения на парковку.
 
По истечении таймаута управление передается следующему компоненту по ветке <code>Время</code>.
|-
|-
|Название: <code>Код ответа в переменную</code>
|Название: <code>Переход, занято</code>


Код: <code>varHttpCode</code>
Код: <code>transferBusy</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Переменная для сохранения кода HTTP-ответа сервиса распознавания.
|Компонент, которому передается управление в случае, если при размещении на парковку указанное парковочное место занято.
|-
|-
|Название: <code>Путь к файлу в переменную</code>
|Название: <code>Переход, не найдено</code>


Код: <code>varFile</code>
Код: <code>transferNotFound</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Переменная для сохранения пути к аудио-файлу с синтезированной речью в локальном временном каталоге.
|Компонент, которому передается управление если при попытке взять абонента с парковки указанное парковочное место пусто.
 
Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.
|-
|-
|Название: <code>Переход</code>
|Название: <code>Переход, ошибка</code>


Код: <code>transfer</code>
Код: <code>transferError</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается управление в случае успешного завершения операции.
|Компонент, которому передается управление при возникновении ошибки.
|-
|}
|Название: <code>Переход, время</code>


Код: <code>transferTimeout</code>
= Компоненты синтеза и распознавания речи =


Усл. видимости: <code>нет</code>
==== Компонент Синтез речи (MRCPv2) ====
 
Осуществляет синтез речи по тексту и воспроизведение текущему абоненту.
По умолчанию: — 
Взаимодействует с произвольным сервером TTS по протоколу MRCPv2. Может иметь технические ограничения горизонтальной масштабируемости из-за односерверного исполнения.
|Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса.
|-
|Название: <code>Переход, ошибка</code>
 
Код: <code>transferError</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Компонент, которому передается управление в случае возникновения ошибки.
|}
 
 
=== Компонент Распознавание речи (Yandex Cloud SpeechKit) ===
Осуществляет распознавание речи абонента в текстовый вид.
Сервис предоставляется облаком Yandex Cloud SpeechKit по протоколу HTTP. Не имеет технических ограничений по производительности.
 
Порядок регистрации учетной записи Yandex-облака и стоимость сервиса см. на Яндексе.
 
Настройка токенов производится в разделе настройки домена, поле 'yandex_cloud'..
 
Позволяет прерывать по тишине после произнесенной фразы.
{| class="wikitable"
{| class="wikitable"
|+Table 1. Системные характеристики
|+Table 1. Системные характеристики
Строка 2403: Строка 2237:
|-
|-
|Индекс
|Индекс
|<code>223</code>
|<code>220</code>
|-
|-
|Краткое название
|Краткое название
|<code>asr_yandex</code>
|<code>tts</code>
|-
|-
|Типы сценариев
|Типы сценариев
Строка 2412: Строка 2246:
|-
|-
|Стартовый модуль
|Стартовый модуль
|<code>r_sip_ivr_script_component_asr_yandex</code>
|<code>r_sip_ivr_script_component_tts</code>
|-
|-
|Режим
|Режим
|Асинхронный
|Асинхронный
|-
|-
|Иконка
|Состояние
|
|Реализация отложена
|-
|Характер разветвления
|Разветвляющий, прерывающий
|}
|}


==== Свойства ====
==== Компонент Распознавание речи (MRCPv2) ====
Осуществляет распознавание речи абонента в текстовый вид.
Взаимодействует с произвольным сервером ASR по протоколу MRCPv2. Может иметь технические ограничения горизонтальной масштабируемости из-за односерверного исполнения.
{| class="wikitable"
{| class="wikitable"
|+Table 2. Свойства
|+Table 1. Системные характеристики
!Спецификация
!
!Описание
!
|-
|Индекс
|<code>221</code>
|-
|Краткое название
|<code>asr</code>
|-
|Типы сценариев
|<code>IVR</code>
|-
|Стартовый модуль
|<code>r_sip_ivr_script_component_asr</code>
|-
|Режим
|Асинхронный
|-
|-
|Название: <code>Аккаунт Яндекс</code>
|Состояние
|Реализация отложена
|}


Код: <code>accountKey</code>


Усл. видимости: <code>нет</code>


По умолчанию: <code>default</code>
==== Компонент Синтез речи (Yandex Cloud SpeechKit) ====
|Указание на аккаунт Яндекса, опции которого берутся для подключения к яндексу.
Осуществляет синтез речи по тексту и воспроизведение текущему абоненту.
Сервис предоставляется облаком Yandex Cloud SpeechKit по протоколу HTTP (APIv1 REST). Не имеет технических ограничений по производительности.


В список попадает значение 'default', устанавливающее к использованию корневые поля 'speech' и 'storage' в объекте 'settings.yandex_cloud'.
Порядок регистрации учетной записи Yandex-облака и стоимость сервиса см. на Яндексе.


Дополнительно в список попадают ключи объекта 'settings.yandex_cloud.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа.
Настройка токенов производится в разделе настройки домена, поле 'yandex_cloud'.
|-
|Название: <code>Тема</code>


Код: <code>topic</code>
Позволяет воспроизводить результат, а также просто записывать его в аудио-файл.


Усл. видимости: <code>нет</code>
В режиме воспроизведения файл сначала синтезируется и выкачивается полностью, затем начинается воспроизведение.


По умолчанию: <code>general</code>
Скорость синтеза речи ориентировочно в 10 раз быстрее реального времени ее воспроизведения.
|Параметр сервиса распознавания Yandex Cloud SpeechKit: тема распознавания.
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|Индекс
|<code>222</code>
|-
|Краткое название
|<code>tts_yandex</code>
|-
|Типы сценариев
|<code>IVR</code>
|-
|Стартовый модуль
|<code>r_sip_ivr_script_component_tts_yandex</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, прерывающий
|}
'''Свойства'''
{| class="wikitable"
|+Table 2. Свойства
!Спецификация
!Описание
|-
|Название: <code>Аккаунт Яндекс</code>


Возможные варианты:
Код: <code>accountKey</code>


* <code>general</code> (<code>0</code>)
Усл. видимости: <code>нет</code>
* <code>maps</code> (<code>1</code>)
* <code>dates</code> (<code>2</code>)
* <code>names</code> (<code>3</code>)
* <code>numbers</code> (<code>4</code>)
* <code>Другая</code> (<code>custom</code>, <code>100</code>) – Указание произвольной темы через аргумент.
|-
|Название: <code>Пользовательская тема</code>


Код: <code>topicCustom</code>
По умолчанию: <code>default</code>
|Указание на аккаунт Яндекса, опции которого берутся для подключения к яндексу.
 
В список попадает значение 'default', устанавливающее к использованию корневые поля 'speech' и 'storage' в объекте 'settings.yandex_cloud'.
 
Дополнительно в список попадают ключи объекта 'settings.yandex_cloud.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа.
|-
|Название: <code>Режим</code>
 
Код: <code>mode</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: <code>Воспроизведение</code>
|Режим работы компонента после получения ответа от сервиса TTS Yandex Cloud SpeechKit.
 
Возможные варианты:
 
* <code>Воспроизведение</code> (<code>play</code>, <code>0</code>) – Воспроизведение синтезированной речи абоненту с последующим удалением файла.
* <code>Генерация файла</code> (<code>file</code>, <code>1</code>) – Сохранение аудио-файла в локальный временный каталог и возврат пути к файлу в переменную.
|-
|Название: <code>Текст</code>
 
Код: <code>text</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий пользовательскую тему для сервиса распознавания Yandex Cloud SpeechKit.
|Текст, подлежащий синтезу и последующему воспроизведению. Ограничение на длину строки: 5000 символов.
|-
|-
|Название: <code>Язык</code>
|Название: <code>Язык</code>
Строка 2477: Строка 2372:


По умолчанию: <code>Русский</code>
По умолчанию: <code>Русский</code>
|Параметр сервиса распознавания Yandex Cloud SpeechKit: язык распознавания.
|Параметр сервиса TTS Yandex Cloud SpeechKit: язык синтеза.


Возможные варианты:
Возможные варианты:


* <code>Авто</code> (<code>100</code>) – Автоматическое определение языка
* <code>ru-RU</code> (<code>0</code>) – Русский
* <code>ru-RU</code> (<code>0</code>) – Русский
* <code>en-US</code> (<code>1</code>) – Английский
* <code>en-US</code> (<code>1</code>) – Английский
* <code>de-DE</code> (<code>2</code>) – Немецкий
* <code>de-DE</code> (<code>2</code>) – Немецкий
* <code>es-ES</code> (<code>3</code>) – Испанский
* <code>he-IL</code> (<code>6</code>) – Иврит
* <code>fi-FI</code> (<code>4</code>) – Финский
* <code>fr-FR</code> (<code>5</code>) – Французский
* <code>he-HE</code> (<code>6</code>) – Иврит
* <code>it-IT</code> (<code>7</code>) – Итальянский
* <code>kk-KZ</code> (<code>8</code>) – Казахский
* <code>kk-KZ</code> (<code>8</code>) – Казахский
* <code>nl-NL</code> (<code>9</code>) – Голландский
* <code>uz-UZ</code> (<code>15</code>) – Узбекский
* <code>pl-PL</code> (<code>10</code>) – Польский
|-
* <code>pt-PT</code> (<code>11</code>) – Португальский
|Название: <code>Голос</code>
* <code>pt-BR</code> (<code>12</code>) – Бразильский португальский
* <code>sv-SE</code> (<code>13</code>) – Шведский
* <code>tr-TR</code> (<code>14</code>) – Турецкий
* <code>uz-UZ</code> (<code>15</code>) – Узбекский (латиница)
|-
|Название: <code>Фильтр ненормативной лексики</code>


Код: <code>profanityFilter</code>
Код: <code>voice</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Выключить</code>
По умолчанию: <code>Alyss (ж)</code>
|Параметр сервиса распознавания Yandex Cloud SpeechKit: выключатель фильтра ненормативной лексики.
|Параметр сервиса TTS Yandex Cloud SpeechKit: голос синтезируемой речи.
 
Возможные варианты:
 
* <code>Alyss (ж)</code> (<code>0</code>)
* <code>Jane (ж)</code> (<code>1</code>)
* <code>Oksana (ж)</code> (<code>2</code>)
* <code>Omazh (ж)</code> (<code>3</code>)
* <code>Zahar (м)</code> (<code>4</code>)
* <code>Ermil (м)</code> (<code>5</code>)
* <code>Alena (ж)</code> (<code>6</code>)
* <code>Filipp (м)</code> (<code>7</code>)
* <code>Другой</code> (<code>other</code>, <code>100</code>) – Указание произвольного голоса через аргумент.
|-
|-
|Название: <code>Таймаут записи, с</code>
|Название: <code>Другой голос</code>


Код: <code>recordTimeoutSec</code>
Код: <code>voiceOther</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>30</code>
По умолчанию: — 
|Максимально допустимое время записи с момента завершения предварительного воспроизведения, в секундах.
|Аргумент, содержащий название голоса для сервиса TTS Yandex Cloud SpeechKit. Поддерживаемые голоса
|-
|-
|Название: <code>Прерывать по DTMF</code>
|Название: <code>Эмоция</code>


Код: <code>checkDTMF</code>
Код: <code>emotion</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>нет</code>
По умолчанию: <code>Good</code>
|Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции.
|Параметр сервиса TTS Yandex Cloud SpeechKit: эмоциональный эффект синтезируемой речи, амплуа.
|-
 
|Название: <code>Буфер для DTMF</code>
Возможные варианты:
 
* <code>Good</code> (<code>0</code>)
* <code>Evil</code> (<code>1</code>)
* <code>Neutral</code> (<code>2</code>)
|-
|Название: <code>Темп речи (0.1 – 3.0)</code>
 
Код: <code>speed</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: <code>1.0</code>
|Параметр сервиса TTS Yandex Cloud SpeechKit: темп синтезируемой речи.
 
Дробное значение от <code>0.1</code> до <code>3.0</code> с размерностью <code>0.1</code>
|-
|Название: <code>Прерывать по DTMF</code>
 
Код: <code>checkDTMF</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: <code>Нет</code>
|Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции.
|-
|Название: <code>Буфер для DTMF</code>


Код: <code>dtmfBuffer</code>
Код: <code>dtmfBuffer</code>
Строка 2553: Строка 2475:
|Аргумент, содержащий ограничение на количество вводимых символов.
|Аргумент, содержащий ограничение на количество вводимых символов.


После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.
После получения во время исполнения компонента указанного количества символов DTMF завершается операции воспроизведения.
|-
|-
|Название: <code>Символы прерывания</code>
|Название: <code>Символы прерывания</code>
Строка 2564: Строка 2486:
|Строка, содержащая последовательности символов прерывания через запятую.
|Строка, содержащая последовательности символов прерывания через запятую.


После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.
После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, завершается операция воспроизведения.


Например, <code>*, 7, 123, 9395</code>.
Например, <code>*, 7, 123, 9395</code>.
|-
|-
|Название: <code>Прерывать при обнаружении тишины</code>
|Название: <code>Таймаут ожидания ответа, с</code>


Код: <code>abortOnSilence</code>
Код: <code>responseTimeoutSec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Да</code>
По умолчанию: — 
|Выключатель детектора голоса (VAD) для автоматического завершения записи и отправки последней порции голосовых данных сервису распознавания.
|Таймаут ожидания ответа от сервиса TTS Yandex Cloud SpeechKit после отправки ему запроса.


Критерием для остановки является наличие голоса в течение не менее чем 300 мс и последующее его отсутствие в течение указанного интервала.
По истечении таймаута управление передается следующему компоненту по ветке <code>Время</code>.
|-
|-
|Название: <code>Интервал тишины, с</code>
|Название: <code>Код ответа в переменную</code>


Код: <code>silenceTimeoutSec</code>
Код: <code>varHttpCode</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>2</code>
По умолчанию: — 
|Аргумент, содержащий время таймаута при обнаружении тишины в секундах. При появлении голоса выше порога чувствительности в течение указанного таймаута, таймер сбрасывается вплоть до обнаружения тишины снова.
|Переменная для сохранения кода HTTP-ответа сервиса распознавания.
 
В большинстве случаев 2 секунды - комфортный интервал.
 
Может указываться в формате десятичной дроби, например, '1.6'.
|-
|-
|Название: <code>Порог VAD, -дБ</code>
|Название: <code>Путь к файлу в переменную</code>


Код: <code>vadThreshold</code>
Код: <code>varFile</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>30</code>
По умолчанию: — 
|Аргумент, устанавливающий порог VAD. Параметр VAD-детектора.
|Переменная для сохранения пути к аудио-файлу с синтезированной речью в локальном временном каталоге.


Указанное значение применяется с отрицательным знаком (в децибеллах) для определения порога отсечения тишины относительно возможного максимума.
Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.
|-
|Название: <code>Переход</code>


Поток анализируется фреймами по 20 мс. Каждый звуковой фрейм на основании порога отсечения рассматривается либо как голос, либо как тишина (средний уровень громкости фрейма).
Код: <code>transfer</code>


Таким образом, детектор имеет два состояния: голос и тишина. При переходе между состояниями генерируется событие о переходе в другое состояние. Изначально детектор находится в состоянии тишины.
Усл. видимости: <code>нет</code>


Генерация сигнала обнаружения голоса происходит в состоянии тишины тогда, когда несколько фреймов подряд являются голосовыми (параметр 'Порог голоса, мс').
По умолчанию: — 
|Компонент, которому передается управление в случае успешного завершения операции.
|-
|Название: <code>Переход, время</code>


Генерация сигнала обнаружения тишины происходит в состоянии голоса тогда, после того, как несколько фреймов подряд признаны тишиной (параметр 'Порог тишины, мс').
Код: <code>transferTimeout</code>


При значении 30 детектор лучше определяет тишину, при значении 40 детектор лучше определяет появление голоса.
Усл. видимости: <code>нет</code>


Выход из компонента происходит по истечении таймаута, указанного в поле <code>Интервал тишины, с</code>, отсчитывая с начала отрезка тишины, обнаруженного детектором из состояния голоса.
По умолчанию: — 
|Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса.
|-
|-
|Название: <code>Голос, мин. длительность, мс</code>
|Название: <code>Переход, ошибка</code>


Код: <code>vadVoiceMinMs</code>
Код: <code>transferError</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>120</code>
По умолчанию: — 
|Аргумент, устанавливающий минимальную пороговую длительность VAD для генерации сигнала VAD UP.
|Компонент, которому передается управление в случае возникновения ошибки.
|}


Параметр VAD-детектора.


Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем выше установленного порога VAD.


Через указанное значение определяется количество фреймов.
==== Компонент Распознавание речи (Yandex Cloud SpeechKit) ====
|-
Осуществляет распознавание речи абонента в текстовый вид.
|Название: <code>Голос, допустимое отклонение, %</code>
Сервис предоставляется облаком Yandex Cloud SpeechKit по протоколу HTTP. Не имеет технических ограничений по производительности.


Код: <code>vadVoiceTol</code>
Порядок регистрации учетной записи Yandex-облака и стоимость сервиса см. на Яндексе.


Усл. видимости: <code>да</code>
Настройка токенов производится в разделе настройки домена, поле 'yandex_cloud'..


По умолчанию: <code>20</code>
Позволяет прерывать по тишине после произнесенной фразы.
|Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.
{| class="wikitable"
 
|+Table 1. Системные характеристики
Параметр VAD-детектора.
!
 
!
Например минимальная длительность задана 210 (мс), отклонение 20 (%). Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.
|-
 
|Индекс
Значение 0 означает что все 11 фреймов подряд должны быть голосовыми (иметь средний уровень выше порога VAD).
|<code>223</code>
|-
|Краткое название
|<code>asr_yandex</code>
|-
|-
|Название: <code>Тишина, мин. длительность, мс</code>
|Типы сценариев
 
|<code>IVR</code>
Код: <code>vadSilenceMinMs</code>
|-
 
|Стартовый модуль
Усл. видимости: <code>да</code>
|<code>r_sip_ivr_script_component_asr_yandex</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, прерывающий
|}
'''Свойства'''
{| class="wikitable"
|+Table 2. Свойства
!Спецификация
!Описание
|-
|Название: <code>Аккаунт Яндекс</code>


По умолчанию: <code>500</code>
Код: <code>accountKey</code>
|Аргумент, устанавливающий минимальную пороговую длительность фреймов с тишиной для генерации сигнала VAD DOWN.
 
Усл. видимости: <code>нет</code>


Параметр VAD-детектора.
По умолчанию: <code>default</code>
|Указание на аккаунт Яндекса, опции которого берутся для подключения к яндексу.


Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем ниже установленного порога VAD.
В список попадает значение 'default', устанавливающее к использованию корневые поля 'speech' и 'storage' в объекте 'settings.yandex_cloud'.


Через указанное значение определяется количество фреймов.
Дополнительно в список попадают ключи объекта 'settings.yandex_cloud.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа.
|-
|-
|Название: <code>Тишина, допустимое отклонение, %</code>
|Название: <code>Тема</code>


Код: <code>vadSilenceTol</code>
Код: <code>topic</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>10</code>
По умолчанию: <code>general</code>
|Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.
|Параметр сервиса распознавания Yandex Cloud SpeechKit: тема распознавания.


Параметр VAD-детектора.
Возможные варианты:


Например минимальная длительность задана 210 мс, отклонение 20%. Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.
* <code>general</code> (<code>0</code>)
 
* <code>maps</code> (<code>1</code>)
Значение 0 означает что все 11 фреймов подряд должны быть тишиной (иметь средний уровень ниже порога VAD).
* <code>dates</code> (<code>2</code>)
* <code>names</code> (<code>3</code>)
* <code>numbers</code> (<code>4</code>)
* <code>Другая</code> (<code>custom</code>, <code>100</code>) – Указание произвольной темы через аргумент.
|-
|-
|Название: <code>Таймаут ожидания ответа, с</code>
|Название: <code>Пользовательская тема</code>


Код: <code>responseTimeoutSec</code>
Код: <code>topicCustom</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>
 
По умолчанию: <code>5</code>
|Таймаут ожидания ответа от сервиса распознавания Yandex Cloud SpeechKit после отправки ему последней порции голосовых данных.
 
По истечении таймаута управление передается следующему компоненту по ветке <code>Время</code>.
|-
|Название: <code>Результат в переменную</code>
 
Код: <code>varText</code>
 
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Переменная для сохранения текстового результата распознавания.
|Аргумент, содержащий пользовательскую тему для сервиса распознавания Yandex Cloud SpeechKit.
|-
|-
|Название: <code>Код ответа в переменную</code>
|Название: <code>Язык</code>


Код: <code>varHttpCode</code>
Код: <code>lang</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>Русский</code>
|Переменная для сохранения кода HTTP-ответа сервиса распознавания.
|Параметр сервиса распознавания Yandex Cloud SpeechKit: язык распознавания.
|-
|Название: <code>Тело ответа в переменную</code>


Код: <code>varHttpBody</code>
Возможные варианты:
 
* <code>Авто</code> (<code>100</code>) – Автоматическое определение языка
* <code>ru-RU</code> (<code>0</code>) – Русский
* <code>en-US</code> (<code>1</code>) – Английский
* <code>de-DE</code> (<code>2</code>) – Немецкий
* <code>es-ES</code> (<code>3</code>) – Испанский
* <code>fi-FI</code> (<code>4</code>) – Финский
* <code>fr-FR</code> (<code>5</code>) – Французский
* <code>he-HE</code> (<code>6</code>) – Иврит
* <code>it-IT</code> (<code>7</code>) – Итальянский
* <code>kk-KZ</code> (<code>8</code>) – Казахский
* <code>nl-NL</code> (<code>9</code>) – Голландский
* <code>pl-PL</code> (<code>10</code>) – Польский
* <code>pt-PT</code> (<code>11</code>) – Португальский
* <code>pt-BR</code> (<code>12</code>) – Бразильский португальский
* <code>sv-SE</code> (<code>13</code>) – Шведский
* <code>tr-TR</code> (<code>14</code>) – Турецкий
* <code>uz-UZ</code> (<code>15</code>) – Узбекский (латиница)
|-
|Название: <code>Фильтр ненормативной лексики</code>
 
Код: <code>profanityFilter</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>Выключить</code>
|Переменная для сохранения полного содержания HTTP-ответа сервиса распознавания.
|Параметр сервиса распознавания Yandex Cloud SpeechKit: выключатель фильтра ненормативной лексики.
|-
|-
|Название: <code>Сохранить файл записи</code>
|Название: <code>Таймаут записи, с</code>


Код: <code>saveRec</code>
Код: <code>recordTimeoutSec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Нет</code>
По умолчанию: <code>30</code>
|Выключатель сохранения файла записи, отправленного сервису распознавания.
|Максимально допустимое время записи с момента завершения предварительного воспроизведения, в секундах.
|-
|-
|Название: <code>Путь к файлу в переменную</code>
|Название: <code>Прерывать по DTMF</code>


Код: <code>varRecordPath</code>
Код: <code>checkDTMF</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>нет</code>
|Переменная для сохранения пути к файлу записи.
|Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции.
 
Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.
 
Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.
 
Запись осуществляется на сервере с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.
|-
|-
|Название: <code>Предварительное воспроизведение</code>
|Название: <code>Буфер для DTMF</code>


Код: <code>prePlayFile</code>
Код: <code>dtmfBuffer</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Звуковой файл предварительного воспроизведения абоненту, во время которого также активирован голосовой детектор.
|Переменная для сохранения получаемых DTMF-символов.
|-
|Название: <code>Очистить буфер DTMF</code>


При отсутствии голоса от абонента (с учетом шумового порога VAD-детектора), отправка данных на сервис распознавания не производится.
Код: <code>clearDtmfBuffer</code>


Может быть выбран в одном из режимов:
Усл. видимости: <code>да</code>


* статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
По умолчанию: <code>Да</code>
* сформированный аргументами путь, который должен включать одну из файловых категорий.
|Выключатель предварительной очистки буфера DTMF.
|-
|-
|Название: <code>Переход</code>
|Название: <code>Количество символов</code>


Код: <code>transfer</code>
Код: <code>maxSymbolCount</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается упраление в случае успешного завершения операции.
|Аргумент, содержащий ограничение на количество вводимых символов.
 
После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.
|-
|-
|Название: <code>Переход, время</code>
|Название: <code>Символы прерывания</code>


Код: <code>transferTimeout</code>
Код: <code>interruptSymbols</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса распознавания.
|Строка, содержащая последовательности символов прерывания через запятую.
|-
|Название: <code>Переход, ошибка</code>


Код: <code>transferError</code>
После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.
 
Например, <code>*, 7, 123, 9395</code>.
|-
|Название: <code>Прерывать при обнаружении тишины</code>
 
Код: <code>abortOnSilence</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>Да</code>
|Компонент, которому передается управление в случае возникновения ошибки.
|Выключатель детектора голоса (VAD) для автоматического завершения записи и отправки последней порции голосовых данных сервису распознавания.
|}


Критерием для остановки является наличие голоса в течение не менее чем 300 мс и последующее его отсутствие в течение указанного интервала.
|-
|Название: <code>Интервал тишины, с</code>


=== Компонент Синтез речи (Sber SaluteSpeech) ===
Код: <code>silenceTimeoutSec</code>
Осуществляет синтез речи по тексту и воспроизведение текущему абоненту.
Используется on-premise сервис Sber SaluteSpeech, канал GRPC. +


Настройка точек подключения в разделе настройки домена, поле 'sber_salute'.
Усл. видимости: <code>да</code>


Позволяет воспроизводить результат, а также просто записывать его в аудио-файл.
По умолчанию: <code>2</code>
|Аргумент, содержащий время таймаута при обнаружении тишины в секундах. При появлении голоса выше порога чувствительности в течение указанного таймаута, таймер сбрасывается вплоть до обнаружения тишины снова.


<nowiki>:</nowiki>description1: В режиме воспроизведения речь начинает воспроизводиться при появлении в буфере данных длительностью на 1.5 секунды.
В большинстве случаев 2 секунды - комфортный интервал.


В зависимости от того, настроено ли на сервисе синтеза кэширование и имеются ли данные для синтезируемого текста, выдача первых полутора секунд может производиться от 300 до 1500 мс.
Может указываться в формате десятичной дроби, например, '1.6'.
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|-
|Индекс
|Название: <code>Порог VAD, -дБ</code>
|<code>226</code>
 
|-
Код: <code>vadThreshold</code>
|Краткое название
 
|<code>tts_sber</code>
Усл. видимости: <code>да</code>
|-
 
|Типы сценариев
По умолчанию: <code>30</code>
|<code>IVR</code>
|Аргумент, устанавливающий порог VAD. Параметр VAD-детектора.
|-
 
|Стартовый модуль
Указанное значение применяется с отрицательным знаком (в децибелах) для определения порога отсечения тишины относительно возможного максимума.
|<code>r_sip_ivr_script_component_tts_sber</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, прерывающий
|}


==== Свойства ====
Поток анализируется фреймами по 20 мс. Каждый звуковой фрейм на основании порога отсечения рассматривается либо как голос, либо как тишина (средний уровень громкости фрейма).
{| class="wikitable"
|+Table 2. Свойства
!Спецификация
!Описание
|-
|Название: <code>Аккаунт Сбер Салют</code>


Код: <code>accountKey</code>
Таким образом, детектор имеет два состояния: голос и тишина. При переходе между состояниями генерируется событие о переходе в другое состояние. Изначально детектор находится в состоянии тишины.


Усл. видимости: <code>нет</code>
Генерация сигнала обнаружения голоса происходит в состоянии тишины тогда, когда несколько фреймов подряд являются голосовыми (параметр 'Порог голоса, мс').


По умолчанию: <code>default</code>
Генерация сигнала обнаружения тишины происходит в состоянии голоса тогда, после того, как несколько фреймов подряд признаны тишиной (параметр 'Порог тишины, мс').
|Указание на аккаунт, определяющего точки подключения к сервису Sber SaluteSpeech.


В список попадает значение 'default', устанавливающее к использованию корневые поля 'speech' в объекте 'settings.sber_salute'.
При значении 30 детектор лучше определяет тишину, при значении 40 детектор лучше определяет появление голоса.


Дополнительно в список попадают ключи объекта 'settings.sber_salute.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа.
Выход из компонента происходит по истечении таймаута, указанного в поле <code>Интервал тишины, с</code>, отсчитывая с начала отрезка тишины, обнаруженного детектором из состояния голоса.
|-
|-
|Название: <code>Режим</code>
|Название: <code>Голос, мин. длительность, мс</code>


Код: <code>mode</code>
Код: <code>vadVoiceMinMs</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: <code>Воспроизведение</code>
По умолчанию: <code>120</code>
|Режим работы компонента после получения ответа от сервиса TTS Sber SaluteSpeech.
|Аргумент, устанавливающий минимальную пороговую длительность VAD для генерации сигнала VAD UP.
 
Параметр VAD-детектора.


Возможные варианты:
Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем выше установленного порога VAD.


* <code>Воспроизведение</code> (<code>play</code>, <code>0</code>) – Воспроизведение синтезированной речи абоненту с последующим удалением файла.
Через указанное значение определяется количество фреймов.
* <code>Генерация файла</code> (<code>file</code>, <code>1</code>) – Сохранение аудио-файла в локальный временный каталог и возврат пути к файлу в переменную.
|-
|-
|Название: <code>Тип контента</code>
|Название: <code>Голос, допустимое отклонение, %</code>
 
Код: <code>vadVoiceTol</code>


Код: <code>contentType</code>
Усл. видимости: <code>да</code>


Усл. видимости: <code>нет</code>
По умолчанию: <code>20</code>
|Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.


По умолчанию: <code>TEXT</code>
Параметр VAD-детектора.
|Параметр сервиса TTS Sber SluteSpeech: формат данных, передаваемых в теле запроса (content_type).


Возможные варианты:
Например минимальная длительность задана 210 (мс), отклонение 20 (%). Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.


* <code>TEXT</code> (<code>text</code>, <code>0</code>) – простой текст.
Значение 0 означает что все 11 фреймов подряд должны быть голосовыми (иметь средний уровень выше порога VAD).
* <code>SSML</code> (<code>ssml</code>, <code>1</code>) – SSML-разметка с текстом.
|-
|-
|Название: <code>Текст</code>
|Название: <code>Тишина, мин. длительность, мс</code>


Код: <code>text</code>
Код: <code>vadSilenceMinMs</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: <code>500</code>
|Текст, подлежащий синтезу и последующему воспроизведению, либо SSML-разметка с текстом (необходимо установить тип контента: SSML).
|Аргумент, устанавливающий минимальную пороговую длительность фреймов с тишиной для генерации сигнала VAD DOWN.
|-
|Название: <code>Язык</code>


Код: <code>lang</code>
Параметр VAD-детектора.


Усл. видимости: <code>нет</code>
Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем ниже установленного порога VAD.


По умолчанию: <code>ru-RU</code>
Через указанное значение определяется количество фреймов.
|Параметр сервиса TTS Sber SaluteSpeech: язык синтеза.
|-
|Название: <code>Тишина, допустимое отклонение, %</code>


Возможные варианты:
Код: <code>vadSilenceTol</code>


* <code>ru-RU</code> (<code>0</code>) – Русский язык
Усл. видимости: <code>да</code>
* <code>en-US</code> (<code>1</code>) – Английский язык
* <code>kk-KZ</code> (<code>2</code>) – Казахский язык
|-
|Название: <code>Голос</code>


Код: <code>voice</code>
По умолчанию: <code>10</code>
|Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.


Усл. видимости: <code>нет</code>
Параметр VAD-детектора.


По умолчанию: <code>Alyss (ж)</code>
Например минимальная длительность задана 210 мс, отклонение 20%. Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.
|Параметр сервиса TTS Sber SaluteSpeech: голос синтезируемой речи (voice).


Возможные варианты:
Значение 0 означает что все 11 фреймов подряд должны быть тишиной (иметь средний уровень ниже порога VAD).
 
* <code>Наталья (ж)</code> (<code>0</code>)
* <code>Борис (м)</code> (<code>1</code>)
* <code>Марфа (ж)</code> (<code>2</code>)
* <code>Тарас (м)</code> (<code>3</code>)
* <code>Александра (ж)</code> (<code>4</code>)
* <code>Сергей (м)</code> (<code>5</code>)
* <code>Kira (ж, англ)</code> (<code>5</code>)
* <code>Другой</code> (<code>other</code>, <code>100</code>) – Указание произвольного голоса через аргумент.
|-
|-
|Название: <code>Другой голос</code>
|Название: <code>Таймаут ожидания ответа, с</code>


Код: <code>voiceOther</code>
Код: <code>responseTimeoutSec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>5</code>
|Аргумент, содержащий название голоса для сервиса TTS Sber SaluteSpeech.
|Таймаут ожидания ответа от сервиса распознавания Yandex Cloud SpeechKit после отправки ему последней порции голосовых данных.
 
По истечении таймаута управление передается следующему компоненту по ветке <code>Время</code>.
|-
|-
|Название: <code>Кэширование</code>
|Название: <code>Результат в переменную</code>


Код: <code>useCache</code>
Код: <code>varText</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>нет</code>
По умолчанию: — 
|Режим кэширования результатов синтеза речи.
|Переменная для сохранения текстового результата распознавания.
|-
|Название: <code>Код ответа в переменную</code>


Кэширование призвано при частом обращении с одними и теми же заданиями к сервису синтеза ускорить выдачу результата, а также сократить нагрузку на сервис синтеза.
Код: <code>varHttpCode</code>


Если данные синтеза регулярно изменяются, такие операции вредно кэшировать, поскольку придется определять и настраивать процедуру их периодической очистки.
Усл. видимости: <code>нет</code>


Первый раз при остутствии значения файл генерируется с помощью сервиса и сохраняется в папку ':GlobalShare/domains/DOMAIN/cache/sber_tts/…​'.
По умолчанию: — 
|Переменная для сохранения кода HTTP-ответа сервиса распознавания.
|-
|Название: <code>Тело ответа в переменную</code>


В дальнейшем при обнаружении в кэше файла, обращений к сервису TTS Sber SaluteSpeech не происходит, файл копируется из кэша.
Код: <code>varHttpBody</code>


В уникальном имени файла скрывается отображение параметров синтеза: текст, язык, голос.
Усл. видимости: <code>нет</code>


Файлы из кэша автоматически не удаляются. Необходимо отдельно настраивать процедуру удаления устаревающих данных. Критерием может являться, например, время последнего обращения к файлу.
По умолчанию: — 
 
|Переменная для сохранения полного содержания HTTP-ответа сервиса распознавания.
Возможные варианты:
 
* <code>Выключить</code> (<code>0</code>) – Кэширование не используется. Каждый запрос отправляется на синтез в сервис TTS Sber SaluteSpeech.
* <code>Включить</code> (<code>1</code>) – Кэширование используется.
|-
|-
|Название: <code>Прерывать по DTMF</code>
|Название: <code>Сохранить файл записи</code>


Код: <code>checkDTMF</code>
Код: <code>saveRec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Нет</code>
По умолчанию: <code>Нет</code>
|Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции.
|Выключатель сохранения файла записи, отправленного сервису распознавания.
|-
|-
|Название: <code>Буфер для DTMF</code>
|Название: <code>Путь к файлу в переменную</code>


Код: <code>dtmfBuffer</code>
Код: <code>varRecordPath</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Переменная для сохранения получаемых DTMF-символов.
|Переменная для сохранения пути к файлу записи.
|-
 
|Название: <code>Очистить буфер DTMF</code>
Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.


Код: <code>clearDtmfBuffer</code>
Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.


Усл. видимости: <code>да</code>
Запись осуществляется на сервере с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.
 
По умолчанию: <code>Да</code>
|Выключатель предварительной очистки буфера DTMF.
|-
|-
|Название: <code>Количество символов</code>
|Название: <code>Предварительное воспроизведение</code>


Код: <code>maxSymbolCount</code>
Код: <code>prePlayFile</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий ограничение на количество вводимых символов.
|Звуковой файл предварительного воспроизведения абоненту, во время которого также активирован голосовой детектор.
 
При отсутствии голоса от абонента (с учетом шумового порога VAD-детектора), отправка данных на сервис распознавания не производится.
 
Может быть выбран в одном из режимов:


После получения во время исполнения компонента указанного количества символов DTMF завершается операции воспроизведения.
* статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
* сформированный аргументами путь, который должен включать одну из файловых категорий.
|-
|-
|Название: <code>Символы прерывания</code>
|Название: <code>Переход</code>


Код: <code>interruptSymbols</code>
Код: <code>transfer</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Строка, содержащая последовательности символов прерывания через запятую.
|Компонент, которому передается управление в случае успешного завершения операции.
 
После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, завершается операция воспроизведения.
 
Например, <code>*, 7, 123, 9395</code>.
|-
|-
|Название: <code>Таймаут ожидания ответа, с</code>
|Название: <code>Переход, время</code>


Код: <code>responseTimeoutSec</code>
Код: <code>transferTimeout</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Таймаут ожидания ответа от сервиса TTS Sber SaluteSpeech после отправки ему запроса.
|Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса распознавания.
 
По истечении таймаута управление передается следующему компоненту по ветке <code>Время</code>.
|-
|-
|Название: <code>Код ответа в переменную</code>
|Название: <code>Переход, ошибка</code>


Код: <code>varHttpCode</code>
Код: <code>transferError</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Переменная для сохранения кода HTTP-ответа сервиса распознавания.
|Компонент, которому передается управление в случае возникновения ошибки.
|-
|}
|Название: <code>Путь к файлу в переменную</code>


Код: <code>varFile</code>


Усл. видимости: <code>да</code>


По умолчанию: — 
==== Компонент Синтез речи (Sber SaluteSpeech) ====
|Переменная для сохранения пути к аудио-файлу с синтезированной речью в локальном временном каталоге.
Осуществляет синтез речи по тексту и воспроизведение текущему абоненту.
Используется on-premise сервис Sber SaluteSpeech, канал GRPC. +


Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.
Настройка точек подключения в разделе настройки домена, поле 'sber_salute'.
|-
|Название: <code>Переход</code>


Код: <code>transfer</code>
Позволяет воспроизводить результат, а также просто записывать его в аудио-файл.


Усл. видимости: <code>нет</code>
<nowiki>:</nowiki>description1: В режиме воспроизведения речь начинает воспроизводиться при появлении в буфере данных длительностью на 1.5 секунды.


По умолчанию: — 
В зависимости от того, настроено ли на сервисе синтеза кэширование и имеются ли данные для синтезируемого текста, выдача первых полутора секунд может производиться от 300 до 1500 мс.
|Компонент, которому передается управление в случае успешного завершения операции.
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|-
|Название: <code>Переход, время</code>
|Индекс
 
|<code>226</code>
Код: <code>transferTimeout</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса.
|-
|-
|Название: <code>Переход, ошибка</code>
|Краткое название
 
|<code>tts_sber</code>
Код: <code>transferError</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Компонент, которому передается управление в случае возникновения ошибки.
|}
 
 
=== Компонент Распознавание речи (Sber SaluteSpeech) ===
Осуществляет распознавание речи абонента в текстовый вид.
Используется on-premise сервис Sber SaluteSpeech, канал GRPC.
 
Настройка точек подключения производится в разделе настройки домена, поле 'sber_salute'.
 
Позволяет запускать предварительное воспроизведение файла, прерываемое голосом абонента.
 
Позволяет прерывать по тишине после произнесенной фразы. Позволяет быстро отсекать одну фразу средствами сервиса распознавания, а также настраивать ожидание нескольких фраз.
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|Индекс
|<code>223</code>
|-
|Краткое название
|<code>asr_sber</code>
|-
|-
|Типы сценариев
|Типы сценариев
Строка 3081: Строка 2971:
|-
|-
|Стартовый модуль
|Стартовый модуль
|<code>r_sip_ivr_script_component_asr_sber</code>
|<code>r_sip_ivr_script_component_tts_sber</code>
|-
|-
|Режим
|Режим
Строка 3092: Строка 2982:
|Разветвляющий, прерывающий
|Разветвляющий, прерывающий
|}
|}
 
'''Свойства'''
==== Свойства ====
{| class="wikitable"
{| class="wikitable"
|+Table 2. Свойства
|+Table 2. Свойства
Строка 3112: Строка 3001:
Дополнительно в список попадают ключи объекта 'settings.sber_salute.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа.
Дополнительно в список попадают ключи объекта 'settings.sber_salute.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа.
|-
|-
|Название: <code>Набор грамматик</code>
|Название: <code>Режим</code>


Код: <code>model</code>
Код: <code>mode</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>callcenter</code>
По умолчанию: <code>Воспроизведение</code>
|Параметр сервиса распознавания Sber SaluteSpeech: название набора грамматик.
|Режим работы компонента после получения ответа от сервиса TTS Sber SaluteSpeech.
|-
|Название: <code>Язык</code>


Код: <code>lang</code>
Возможные варианты:
 
* <code>Воспроизведение</code> (<code>play</code>, <code>0</code>) – Воспроизведение синтезированной речи абоненту с последующим удалением файла.
* <code>Генерация файла</code> (<code>file</code>, <code>1</code>) – Сохранение аудио-файла в локальный временный каталог и возврат пути к файлу в переменную.
|-
|Название: <code>Тип контента</code>
 
Код: <code>contentType</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>ru-RU</code>
По умолчанию: <code>TEXT</code>
|Параметр сервиса распознавания Sber SaluteSpeech: язык распознавания.
|Параметр сервиса TTS Sber SluteSpeech: формат данных, передаваемых в теле запроса (content_type).


Возможные варианты:
Возможные варианты:


* <code>ru-RU</code> (<code>0</code>) – Русский язык
* <code>TEXT</code> (<code>text</code>, <code>0</code>) – простой текст.
* <code>en-US</code> (<code>1</code>) – Английский язык
* <code>SSML</code> (<code>ssml</code>, <code>1</code>) – SSML-разметка с текстом.
* <code>kk-KZ</code> (<code>2</code>) – Казахский язык
|-
|-
|Название: <code>Фильтр ненормативной лексики</code>
|Название: <code>Текст</code>


Код: <code>profanityFilter</code>
Код: <code>text</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Выключить</code>
По умолчанию: — 
|Параметр сервиса распознавания Sber SaluteSpeech: выключатель фильтра ненормативной лексики.
|Текст, подлежащий синтезу и последующему воспроизведению, либо SSML-разметка с текстом (необходимо установить тип контента: SSML).
|-
|-
|Название: <code>Несколько предложений</code>
|Название: <code>Язык</code>


Код: <code>multiUtterance</code>
Код: <code>lang</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Выключить</code>
По умолчанию: <code>ru-RU</code>
|Параметр сервиса распознавания Sber SaluteSpeech: ожидание нескольких предложений.
|Параметр сервиса TTS Sber SaluteSpeech: язык синтеза.


Если выключено, то ответ приходит быстро вместе с обнаружением окончания первого предложения.
Возможные варианты:


Если включено, то собираются и склеиваются все результаты. Окончание распознавания определяется параметрами <nowiki>'Таймаут записи, с' и ''Интервал тишины, с'</nowiki>".
* <code>ru-RU</code> (<code>0</code>) – Русский язык
* <code>en-US</code> (<code>1</code>) – Английский язык
* <code>kk-KZ</code> (<code>2</code>) – Казахский язык
|-
|Название: <code>Голос</code>


"Название: <code>Длина предложения максимальная, с</code>
Код: <code>voice</code>
 
Код: <code>maxSpeechTimeoutSec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>20</code>
По умолчанию: <code>Alyss (ж)</code>
|-
|Параметр сервиса TTS Sber SaluteSpeech: голос синтезируемой речи (voice).
|Параметр сервиса распознавания Sber SaluteSpeech: максимальная длительность предложения.
|Название: <code>В кириллицу</code>


Код: <code>forceCyrillic</code>
Возможные варианты:


Усл. видимости: <code>нет</code>
* <code>Наталья (ж)</code> (<code>0</code>)
 
* <code>Борис (м)</code> (<code>1</code>)
По умолчанию: <code>Выключить</code>
* <code>Марфа (ж)</code> (<code>2</code>)
* <code>Тарас (м)</code> (<code>3</code>)
* <code>Александра (ж)</code> (<code>4</code>)
* <code>Сергей (м)</code> (<code>5</code>)
* <code>Kira (ж, англ)</code> (<code>5</code>)
* <code>Другой</code> (<code>other</code>, <code>100</code>) – Указание произвольного голоса через аргумент.
|-
|-
|Параметр сервиса распознавания Sber SaluteSpeech: Принудительное преобразование результата в кириллицу.
|Название: <code>Другой голос</code>
|Название: <code>Таймаут записи, с</code>


Код: <code>recordTimeoutSec</code>
Код: <code>voiceOther</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>30</code>
По умолчанию: — 
|Аргумент, содержащий название голоса для сервиса TTS Sber SaluteSpeech.
|-
|-
|Максимально допустимое время записи с момента завершения предварительного воспроизведения, в секундах.
|Название: <code>Кэширование</code>
|Название: <code>Прерывать по DTMF</code>


Код: <code>checkDTMF</code>
Код: <code>useCache</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>нет</code>
По умолчанию: <code>нет</code>
|-
|Режим кэширования результатов синтеза речи.
|Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции.
|Название: <code>Буфер для DTMF</code>


Код: <code>dtmfBuffer</code>
Кэширование призвано при частом обращении с одними и теми же заданиями к сервису синтеза ускорить выдачу результата, а также сократить нагрузку на сервис синтеза.


Усл. видимости: <code>да</code>
Если данные синтеза регулярно изменяются, такие операции вредно кэшировать, поскольку придется определять и настраивать процедуру их периодической очистки.
 
Первый раз при отсутствии значения файл генерируется с помощью сервиса и сохраняется в папку ':GlobalShare/domains/DOMAIN/cache/sber_tts/…​'.
 
В дальнейшем при обнаружении в кэше файла, обращений к сервису TTS Sber SaluteSpeech не происходит, файл копируется из кэша.
 
В уникальном имени файла скрывается отображение параметров синтеза: текст, язык, голос.
 
Файлы из кэша автоматически не удаляются. Необходимо отдельно настраивать процедуру удаления устаревающих данных. Критерием может являться, например, время последнего обращения к файлу.
 
Возможные варианты:
 
* <code>Выключить</code> (<code>0</code>) – Кэширование не используется. Каждый запрос отправляется на синтез в сервис TTS Sber SaluteSpeech.
* <code>Включить</code> (<code>1</code>) – Кэширование используется.
|-
|Название: <code>Прерывать по DTMF</code>
 
Код: <code>checkDTMF</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: <code>Нет</code>
|Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции.
|-
|Название: <code>Буфер для DTMF</code>
 
Код: <code>dtmfBuffer</code>
 
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Переменная для сохранения получаемых DTMF-символов.
|-
|-
|Переменная для сохранения получаемых DTMF-символов.
|Название: <code>Очистить буфер DTMF</code>
|Название: <code>Очистить буфер DTMF</code>


Строка 3210: Строка 3133:


По умолчанию: <code>Да</code>
По умолчанию: <code>Да</code>
|Выключатель предварительной очистки буфера DTMF.
|-
|-
|Выключатель предварительной очистки буфера DTMF.
|Название: <code>Количество символов</code>
|Название: <code>Количество символов</code>


Строка 3219: Строка 3142:


По умолчанию: — 
По умолчанию: — 
|-
|Аргумент, содержащий ограничение на количество вводимых символов.
|Аргумент, содержащий ограничение на количество вводимых символов.


После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.
После получения во время исполнения компонента указанного количества символов DTMF завершается операции воспроизведения.
|-
|Название: <code>Символы прерывания</code>
|Название: <code>Символы прерывания</code>


Строка 3230: Строка 3153:


По умолчанию: — 
По умолчанию: — 
|-
|Строка, содержащая последовательности символов прерывания через запятую.
|Строка, содержащая последовательности символов прерывания через запятую.


После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.
После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, завершается операция воспроизведения.


Например, <code>*, 7, 123, 9395</code>.
Например, <code>*, 7, 123, 9395</code>.
|Название: <code>Прерывать при обнаружении тишины</code>
|-
|Название: <code>Таймаут ожидания ответа, с</code>


Код: <code>abortOnSilence</code>
Код: <code>responseTimeoutSec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Да</code>
По умолчанию: — 
|Таймаут ожидания ответа от сервиса TTS Sber SaluteSpeech после отправки ему запроса.
 
По истечении таймаута управление передается следующему компоненту по ветке <code>Время</code>.
|-
|-
|Выключатель детектора голоса (VAD) для автоматического завершения записи и отправки последней порции голосовых данных сервису распознавания.
|Название: <code>Код ответа в переменную</code>


Критерием для остановки является наличие голоса в течение не менее чем 300 мс и последующее его отсутствие в течение указанного интервала.
Код: <code>varHttpCode</code>
|Название: <code>Интервал тишины, с</code>


Код: <code>silenceTimeoutSec</code>
Усл. видимости: <code>нет</code>


Усл. видимости: <code>да</code>
По умолчанию: — 
 
|Переменная для сохранения кода HTTP-ответа сервиса распознавания.
По умолчанию: <code>2</code>
|-
|-
|Аргумент, содержащий время таймаута при обнаружении тишины в секундах. При появлении голоса выше порога чувствительности в течение указанного таймаута, таймер сбрасывается вплоть до обнаружения тишины снова.
|Название: <code>Путь к файлу в переменную</code>


В большинстве случаев 2 секунды - комфортный интервал.
Код: <code>varFile</code>


Может указываться в формате десятичной дроби, например, '1.6'.
Усл. видимости: <code>да</code>
|Название: <code>Порог VAD, -дБ</code>


Код: <code>vadThreshold</code>
По умолчанию: — 
|Переменная для сохранения пути к аудио-файлу с синтезированной речью в локальном временном каталоге.


Усл. видимости: <code>да</code>
Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.
 
По умолчанию: <code>30</code>
|-
|-
|Аргумент, устанавливающий порог VAD. Параметр VAD-детектора.
|Название: <code>Переход</code>


Указанное значение применяется с отрицательным знаком (в децибеллах) для определения порога отсечения тишины относительно возможного максимума.
Код: <code>transfer</code>


Поток анализируется фреймами по 20 мс. Каждый звуковой фрейм на основании порога отсечения рассматривается либо как голос, либо как тишина (средний уровень громкости фрейма).
Усл. видимости: <code>нет</code>


Таким образом, детектор имеет два состояния: голос и тишина. При переходе между состояниями генерируется событие о переходе в другое состояние. Изначально детектор находится в состоянии тишины.
По умолчанию: — 
|Компонент, которому передается управление в случае успешного завершения операции.
|-
|Название: <code>Переход, время</code>


Генерация сигнала обнаружения голоса происходит в состоянии тишины тогда, когда несколько фреймов подряд являются голосовыми (параметр 'Порог голоса, мс').
Код: <code>transferTimeout</code>


Генерация сигнала обнаружения тишины происходит в состоянии голоса тогда, после того, как несколько фреймов подряд признаны тишиной (параметр 'Порог тишины, мс').
Усл. видимости: <code>нет</code>


При значении 30 детектор лучше определяет тишину, при значении 40 детектор лучше определяет появление голоса.
По умолчанию: — 
|Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса.
|-
|Название: <code>Переход, ошибка</code>


Выход из компонента происходит по истечении таймаута, указанного в поле <code>Интервал тишины, с</code>, отсчитывая с начала отрезка тишины, обнаруженного детектором из состояния голоса.
Код: <code>transferError</code>
|Название: <code>Голос, мин. длительность, мс</code>


Код: <code>vadVoiceMinMs</code>
Усл. видимости: <code>нет</code>


Усл. видимости: <code>да</code>
По умолчанию: — 
|Компонент, которому передается управление в случае возникновения ошибки.
|}


По умолчанию: <code>120</code>
|-
|Аргумент, устанавливающий минимальную пороговую длительность VAD для генерации сигнала VAD UP.


Параметр VAD-детектора.


Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем выше установленного порога VAD.
==== Компонент Распознавание речи (Sber SaluteSpeech) ====
Осуществляет распознавание речи абонента в текстовый вид.
Используется on-premise сервис Sber SaluteSpeech, канал GRPC.


Через указанное значение определяется количество фреймов.
Настройка точек подключения производится в разделе настройки домена, поле 'sber_salute'.
|Название: <code>Голос, допустимое отклонение, %</code>


Код: <code>vadVoiceTol</code>
Позволяет запускать предварительное воспроизведение файла, прерываемое голосом абонента.


Усл. видимости: <code>да</code>
Позволяет прерывать по тишине после произнесенной фразы. Позволяет быстро отсекать одну фразу средствами сервиса распознавания, а также настраивать ожидание нескольких фраз.
 
{| class="wikitable"
По умолчанию: <code>20</code>
|+Table 1. Системные характеристики
!
!
|-
|-
|Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.
|Индекс
 
|<code>223</code>
Параметр VAD-детектора.
|-
 
|Краткое название
Например минимальная длительность задана 210 (мс), отклонение 20 (%). Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.
|<code>asr_sber</code>
 
|-
Значение 0 означает что все 11 фреймов подряд должны быть голосовыми (иметь средний уровень выше порога VAD).
|Типы сценариев
|Название: <code>Тишина, мин. длительность, мс</code>
|<code>IVR</code>
|-
|Стартовый модуль
|<code>r_sip_ivr_script_component_asr_sber</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, прерывающий
|}
'''Свойства'''
{| class="wikitable"
|+Table 2. Свойства
!Спецификация
!Описание
|-
|Название: <code>Аккаунт Сбер Салют</code>
 
Код: <code>accountKey</code>
 
Усл. видимости: <code>нет</code>


Код: <code>vadSilenceMinMs</code>
По умолчанию: <code>default</code>
|Указание на аккаунт, определяющего точки подключения к сервису Sber SaluteSpeech.


Усл. видимости: <code>да</code>
В список попадает значение 'default', устанавливающее к использованию корневые поля 'speech' в объекте 'settings.sber_salute'.


По умолчанию: <code>500</code>
Дополнительно в список попадают ключи объекта 'settings.sber_salute.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа.
|-
|-
|Аргумент, устанавливающий минимальную пороговую длительность фреймов с тишиной для генерации сигнала VAD DOWN.
|Название: <code>Набор грамматик</code>


Параметр VAD-детектора.
Код: <code>model</code>


Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем ниже установленного порога VAD.
Усл. видимости: <code>нет</code>


Через указанное значение определяется количество фреймов.
По умолчанию: <code>callcenter</code>
|Название: <code>Тишина, допустимое отклонение, %</code>
|Параметр сервиса распознавания Sber SaluteSpeech: название набора грамматик.
|-
|Название: <code>Язык</code>


Код: <code>vadSilenceTol</code>
Код: <code>lang</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>10</code>
По умолчанию: <code>ru-RU</code>
|-
|Параметр сервиса распознавания Sber SaluteSpeech: язык распознавания.
|Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.


Параметр VAD-детектора.
Возможные варианты:


Например минимальная длительность задана 210 мс, отклонение 20%. Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.
* <code>ru-RU</code> (<code>0</code>) – Русский язык
* <code>en-US</code> (<code>1</code>) – Английский язык
* <code>kk-KZ</code> (<code>2</code>) – Казахский язык
|-
|Название: <code>Фильтр ненормативной лексики</code>


Значение 0 означает что все 11 фреймов подряд должны быть тишиной (иметь средний уровень ниже порога VAD).
Код: <code>profanityFilter</code>
|Название: <code>Таймаут ожидания ответа, с</code>
 
Код: <code>responseTimeoutSec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>5</code>
По умолчанию: <code>Выключить</code>
|Параметр сервиса распознавания Sber SaluteSpeech: выключатель фильтра ненормативной лексики.
|-
|-
|Таймаут ожидания ответа от сервиса распознавания Sber SaluteSpeech после отправки ему последней порции голосовых данных.
|Название: <code>Несколько предложений</code>


По истечении таймаута управление передается следующему компоненту по ветке <code>Время</code>.
Код: <code>multiUtterance</code>
|Название: <code>Результат в переменную</code>
 
Код: <code>varText</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>Выключить</code>
|-
|Параметр сервиса распознавания Sber SaluteSpeech: ожидание нескольких предложений.
|Переменная для сохранения текстового результата распознавания.
|Название: <code>Нормализованный результат в переменную</code>


Код: <code>varNormText</code>
Если выключено, то ответ приходит быстро вместе с обнаружением окончания первого предложения.


Усл. видимости: <code>нет</code>
Если включено, то собираются и склеиваются все результаты. Окончание распознавания определяется параметрами <nowiki>'Таймаут записи, с' и ''Интервал тишины, с'</nowiki>".


По умолчанию: — 
"Название: <code>Длина предложения максимальная, с</code>
|-
|Переменная для сохранения нормализованного текстового результата распознавания.
|Название: <code>Код ответа в переменную</code>


Код: <code>varCode</code>
Код: <code>maxSpeechTimeoutSec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>20</code>
|-
|-
|Переменная для сохранения кода ответа сервиса распознавания (код эмулируется по аналогии с HTTP: 200, 408, 500).
|Параметр сервиса распознавания Sber SaluteSpeech: максимальная длительность предложения.
|Название: <code>Тело ответа в переменную</code>
|Название: <code>В кириллицу</code>


Код: <code>varBody</code>
Код: <code>forceCyrillic</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>Выключить</code>
|-
|-
|Переменная для сохранения полного содержания ответа сервиса распознавания.
|Параметр сервиса распознавания Sber SaluteSpeech: Принудительное преобразование результата в кириллицу.
|Название: <code>Таймаут записи, с</code>


Если одно высказывание - объект, если несколько высказываний - массив объектов.
Код: <code>recordTimeoutSec</code>
|Название: <code>Сохранить файл записи</code>
 
Код: <code>saveRec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Нет</code>
По умолчанию: <code>30</code>
|-
|-
|Выключатель сохранения файла записи, отправленного сервису распознавания.
|Максимально допустимое время записи с момента завершения предварительного воспроизведения, в секундах.
|Название: <code>Путь к файлу в переменную</code>
|Название: <code>Прерывать по DTMF</code>


Код: <code>varRecordPath</code>
Код: <code>checkDTMF</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>нет</code>
|-
|-
|Переменная для сохранения пути к файлу записи.
|Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции.
|Название: <code>Буфер для DTMF</code>


Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.
Код: <code>dtmfBuffer</code>


Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.
Усл. видимости: <code>да</code>
 
Запись осуществляется на сервере с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.
|Название: <code>Предварительное воспроизведение</code>
 
Код: <code>prePlayFile</code>
 
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|-
|-
|Звуковой файл предварительного воспроизведения абоненту, во время которого также активирован голосовой детектор.
|Переменная для сохранения получаемых DTMF-символов.
|Название: <code>Очистить буфер DTMF</code>


При отсутствии голоса от абонента (с учетом шумового порога VAD-детектора), отправка данных на сервис распознавания не производится.
Код: <code>clearDtmfBuffer</code>


Может быть выбран в одном из режимов:
Усл. видимости: <code>да</code>


* статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
По умолчанию: <code>Да</code>
* сформированный аргументами путь, который должен включать одну из файловых категорий.
|-
|Название: <code>Переход</code>
|Выключатель предварительной очистки буфера DTMF.
|Название: <code>Количество символов</code>


Код: <code>transfer</code>
Код: <code>maxSymbolCount</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|-
|-
|Компонент, которому передается упраление в случае успешного завершения операции.
|Аргумент, содержащий ограничение на количество вводимых символов.
|Название: <code>Переход, время</code>
 
После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.
|Название: <code>Символы прерывания</code>


Код: <code>transferTimeout</code>
Код: <code>interruptSymbols</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|-
|-
|Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса распознавания.
|Строка, содержащая последовательности символов прерывания через запятую.
|Название: <code>Переход, ошибка</code>
 
После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.
 
Например, <code>*, 7, 123, 9395</code>.
|Название: <code>Прерывать при обнаружении тишины</code>


Код: <code>transferError</code>
Код: <code>abortOnSilence</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>Да</code>
|}
|-
|Выключатель детектора голоса (VAD) для автоматического завершения записи и отправки последней порции голосовых данных сервису распознавания.
 
Критерием для остановки является наличие голоса в течение не менее чем 300 мс и последующее его отсутствие в течение указанного интервала.
|Название: <code>Интервал тишины, с</code>
 
Код: <code>silenceTimeoutSec</code>


Усл. видимости: <code>да</code>


=== Компонент Внешнее управление через API ===
По умолчанию: <code>2</code>
Переводит сценарий во время своей активности под внешнее управление через API (HTTP/WebSocket). +
|-
Если диалог еще не установлен (в событии `api_start` поле `state` имеет значение, отличное от `dialog`), то от управляющей системы требуется соблюдение SIP workflow. То есть необходимо отправлять соответствующие ответов прежде, чем использовать функционал воспроизведения, записи, переводов.
|Аргумент, содержащий время таймаута при обнаружении тишины в секундах. При появлении голоса выше порога чувствительности в течение указанного таймаута, таймер сбрасывается вплоть до обнаружения тишины снова.


Событие `api_start` может сообщить о следующих состояниях: `dialog`, `early`, `ringing`, `incoming`. В соответствии с ними, а также пользуясь передаваемыми параметрами, внешняя система может определить текущее состояние и выбрать правильное поведение.
В большинстве случаев 2 секунды - комфортный интервал.


До момента отправки ответа 2хх следует: а) Перевод (203, refer) заменять отправкой ответа 3хх (202, `answer`). б) Завершение разговора (201, bye) следует заменять отправкой ответа 4хх-6хх (202, `answer`). в) Не использовать компоненты перевода. г) Не использовать компоненты по работе с медиа-трафиком (воспроизведение, запись и т.д.), за исключением случая, когда текущее состояние диалога - `early`, то есть последний отправленный ответ был `183 Session Progress`.
Может указываться в формате десятичной дроби, например, '1.6'.
|Название: <code>Порог VAD, -дБ</code>


О начале и завершении работы компонента генерируются события типов `ivrevents.api_start` и `ivrevents.api_stop`. Они отправляются в том числе по подписке в websocket-подключения (сообщение `notify` в рамках token-api `subscribe`).
Код: <code>vadThreshold</code>


Управление может перехватить только одна из подключенных систем - та, которая первой отправит сообщение `"ivrapi_accept"` в рамках своего websocket-подключения (token-api: `ivrapi`).
Усл. видимости: <code>да</code>


Дальнейшее управление производится через websocket token-api `ivrapi`.
По умолчанию: <code>30</code>
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|-
|Индекс
|Аргумент, устанавливающий порог VAD. Параметр VAD-детектора.
|<code>224</code>
 
|-
Указанное значение применяется с отрицательным знаком (в децибелах) для определения порога отсечения тишины относительно возможного максимума.
|Краткое название
|<code>api</code>
|-
|Типы сценариев
|<code>IVR</code>
|-
|Стартовый модуль
|<code>era_sip_ivr_script_component_api</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, замыкающий
|}


==== Свойства ====
Поток анализируется фреймами по 20 мс. Каждый звуковой фрейм на основании порога отсечения рассматривается либо как голос, либо как тишина (средний уровень громкости фрейма).
{| class="wikitable"
|+Table 2. Свойства
!Спецификация
!Описание
|-
|Название: <code>Ключ</code>


Код: <code>key</code>
Таким образом, детектор имеет два состояния: голос и тишина. При переходе между состояниями генерируется событие о переходе в другое состояние. Изначально детектор находится в состоянии тишины.


Усл. видимости: <code>нет</code>
Генерация сигнала обнаружения голоса происходит в состоянии тишины тогда, когда несколько фреймов подряд являются голосовыми (параметр 'Порог голоса, мс').


По умолчанию: — 
Генерация сигнала обнаружения тишины происходит в состоянии голоса тогда, после того, как несколько фреймов подряд признаны тишиной (параметр 'Порог тишины, мс').
|Аргумент, содержащий ключ. Передается внешней системе в сообщении о начале работы компонента (событие <code>ivrevents.api_start</code>) и завершении работы компонента (событие <code>ivrevents.api_stop</code>).


Внешняя система должна указывать этот ключ рядом с указанием идентификатора IVR-диалога в каждом запросе, отправляемом в рамках websocket token-api <code>ivrapi</code> с целью осуществления внешнего управления этим компонентом.
При значении 30 детектор лучше определяет тишину, при значении 40 детектор лучше определяет появление голоса.
|-
|Название: <code>Параметры</code>


Код: <code>params</code>
Выход из компонента происходит по истечении таймаута, указанного в поле <code>Интервал тишины, с</code>, отсчитывая с начала отрезка тишины, обнаруженного детектором из состояния голоса.
|Название: <code>Голос, мин. длительность, мс</code>


Усл. видимости: <code>нет</code>
Код: <code>vadVoiceMinMs</code>


По умолчанию: — 
Усл. видимости: <code>да</code>
|Аргумент, содержащий дополнительные параметры для внешней системы.


Указанные параметры передаются в сообщении о начале работы компонента (событие <code>ivrevents.api_start</code>).
По умолчанию: <code>120</code>
|-
|-
|Название: <code>Таймаут подтверждения взятия управления, мс</code>
|Аргумент, устанавливающий минимальную пороговую длительность VAD для генерации сигнала VAD UP.


Код: <code>reportTimeoutMs</code>
Параметр VAD-детектора.


Усл. видимости: <code>нет</code>
Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем выше установленного порога VAD.


По умолчанию: 3000
Через указанное значение определяется количество фреймов.
|Аргумент, определяющий таймаут ожидания подтверждения от одной из подключенных по websocket token api внешних систем, в миллисекундах.
|Название: <code>Голос, допустимое отклонение, %</code>
|-
|Название: <code>Причина выхода в переменную</code>


Код: <code>varReason</code>
Код: <code>vadVoiceTol</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: <code>20</code>
|Переменная, куда заносится причина завершения работы компонента.
|-
|-
|Название: <code>Переход</code>
|Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.


Код: <code>transfer</code>
Параметр VAD-детектора.


Усл. видимости: <code>нет</code>
Например минимальная длительность задана 210 (мс), отклонение 20 (%). Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.


По умолчанию: — 
Значение 0 означает что все 11 фреймов подряд должны быть голосовыми (иметь средний уровень выше порога VAD).
|Компонент, которому передается управление после завершения работы компонента отключением внешней системы.
|Название: <code>Тишина, мин. длительность, мс</code>
|-
|Название: <code>Переход, время</code>


Код: <code>transferTimeout</code>
Код: <code>vadSilenceMinMs</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: <code>500</code>
|Компонент, которому передается управление при завершении по таймауту.
|-
|-
|Название: <code>Переход, ошибка</code>
|Аргумент, устанавливающий минимальную пороговую длительность фреймов с тишиной для генерации сигнала VAD DOWN.
 
Параметр VAD-детектора.
 
Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем ниже установленного порога VAD.


Код: <code>transferError</code>
Через указанное значение определяется количество фреймов.
|Название: <code>Тишина, допустимое отклонение, %</code>


Усл. видимости: <code>нет</code>
Код: <code>vadSilenceTol</code>


По умолчанию: — 
Усл. видимости: <code>да</code>
|Компонент, которому передается управление в случае возникновения ошибки.
|}


По умолчанию: <code>10</code>
|-
|Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.


=== Компонент CPD (детектор ответов) ===
Параметр VAD-детектора.
Применяется в исходящих кампаниях для детекции ответа "живого" человека.
Выполняет запись разговора в течении указанного времени (5-7 секунд), в течение которых пытается определить тип источника звука.


Определение человека производится по истечении секунды тишины после окончания приветственной реплики абонента.
Например минимальная длительность задана 210 мс, отклонение 20%. Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.


Определение роботов и автоматов производится по окончанию таймаута или длительной (более 2 секунд) приветственной реплики робота.
Значение 0 означает что все 11 фреймов подряд должны быть тишиной (иметь средний уровень ниже порога VAD).
|Название: <code>Таймаут ожидания ответа, с</code>


Определение тишины производится по окончании указанного интервала времени.
Код: <code>responseTimeoutSec</code>


Определение факса производится почти сразу при обнаружении соответствующего тонального сигнала.
Усл. видимости: <code>нет</code>


Алгоритм CPD, используемый компонентом, не требователен к ресурсам системы.
По умолчанию: <code>5</code>
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|-
|Индекс
|Таймаут ожидания ответа от сервиса распознавания Sber SaluteSpeech после отправки ему последней порции голосовых данных.
|<code>225</code>
 
|-
По истечении таймаута управление передается следующему компоненту по ветке <code>Время</code>.
|Краткое название
|Название: <code>Результат в переменную</code>
|<code>cpd</code>
 
|-
Код: <code>varText</code>
|Типы сценариев
 
|<code>IVR</code>
Усл. видимости: <code>нет</code>
|-
|Стартовый модуль
|<code>era_sip_ivr_script_component_cpd</code>
|-
|Режим
|Асинхронный
|-
|Иконка
|
|-
|Характер разветвления
|Разветвляющий, замыкающий
|}


==== Свойства ====
По умолчанию: — 
{| class="wikitable"
|+Table 2. Свойства
!Спецификация
!Описание
|-
|-
|Название: <code>Таймаут, с</code>
|Переменная для сохранения текстового результата распознавания.
|Название: <code>Нормализованный результат в переменную</code>


Код: <code>collectTimeSec</code>
Код: <code>varNormText</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: 5
По умолчанию: — 
|Аргумент, содержащий время в секундах. Определяет сколько времени будет накапливаться запись разговора для дальнейшего анализа детектором ответа.
|-
|-
|Название: <code>Сохранить файл записи</code>
|Переменная для сохранения нормализованного текстового результата распознавания.
|Название: <code>Код ответа в переменную</code>


Код: <code>saveRecord</code>
Код: <code>varCode</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: <code>Нет</code>
По умолчанию: — 
|Признак сохранения файла записи, отправленного сервису детектора ответа. Сохранение выполняется в каталог <code>/var/lib/era_files/answer_detector_records/<domain>/<type></code>
|-
|Переменная для сохранения кода ответа сервиса распознавания (код эмулируется по аналогии с HTTP: 200, 408, 500).
|Название: <code>Тело ответа в переменную</code>


* domain - домен в рамках которого выполнялся разговор.
Код: <code>varBody</code>
* type - тип результата, который вернул детектор ответа.
|-
|Название: <code>Результат в переменную</code>
 
Код: <code>result</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Переменная, куда заносится причина завершения работы компонента.
|-
|-
|Название: <code>Переход, обнаружено</code>
|Переменная для сохранения полного содержания ответа сервиса распознавания.
 
Если одно высказывание - объект, если несколько высказываний - массив объектов.
|Название: <code>Сохранить файл записи</code>


Код: <code>transferFound</code>
Код: <code>saveRec</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: <code>Нет</code>
|Компонент, которому передается управление после обнаружения "живого" человека детектором ответа.
|-
|-
|Название: <code>Переход, не обнаружено</code>
|Выключатель сохранения файла записи, отправленного сервису распознавания.
|Название: <code>Путь к файлу в переменную</code>


Код: <code>transferNotFound</code>
Код: <code>varRecordPath</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>да</code>


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается управление в случае если детектор ответа не обнаружил в записи "живого" человека.
|-
|-
|Название: <code>Переход, ошибка</code>
|Переменная для сохранения пути к файлу записи.
 
Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.
 
Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.
 
Запись осуществляется на сервере с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.
|Название: <code>Предварительное воспроизведение</code>


Код: <code>transferError</code>
Код: <code>prePlayFile</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается управление в случае возникновения ошибки.
|-
|}
|Звуковой файл предварительного воспроизведения абоненту, во время которого также активирован голосовой детектор.


==== Параметризация ====
При отсутствии голоса от абонента (с учетом шумового порога VAD-детектора), отправка данных на сервис распознавания не производится.
Анализ CPD проводится входящим в состав платформы консольным приложения cpd (/era_sip/priv/cpd/cpd).


Компонент запускает CPD в режиме анализа.
Может быть выбран в одном из режимов:


В режиме анализа приложение принимает на input порции аудио-данных (PCM 8000Hz 16bit mono), и выдает один из возможных результатов:
* статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
* сформированный аргументами путь, который должен включать одну из файловых категорий.
|Название: <code>Переход</code>


* human
Код: <code>transfer</code>
* ivr
* tone
* fax
* silence


Компонент завершается успехом только при результате 'human'.
Усл. видимости: <code>нет</code>


Алгоритм может параметризоваться. В качестве параметров используются файлы SettingsML.json и SettingsSpectrum.json.
По умолчанию: — 
|-
|Компонент, которому передается управление в случае успешного завершения операции.
|Название: <code>Переход, время</code>


Файлы располагаются в каталоге ':SYNC/common/cpd'.
Код: <code>transferTimeout</code>


Пример командной строки запуска в режиме анализа:
Усл. видимости: <code>нет</code>
cpd --mode=analyze --ml-settings-path=/some/path/to/SettingsML.json --spectrum-settings-path=/some/path/to/SettingsSpectrum.json --timeout=7000 --recv-timeout=3000
Расшифровка параметров:
--ml-settings-path  -  путь к json-файлу с ML-параметрами, полученными в результате обучения. Необязательный параметр. Если не задавать, то используются некоторые зашитые (и неоптимальные) ML-параметры.
--spectrum-settings-path  -  путь к json-файлу с частотными параметрами, сформированными инженером. Необязательный параметр. Если не задавать, то частотный анализатор не используется.
--timeout  -  полный таймаут работы анализатора в мс; через это время анализатор выдает получившийся результат. Необязательный параметр. По умолчанию 7000.
--recv-timeout  -  таймаут на прием очередной порции данных через stdin; если столько времени нет входящих данных, анализатор выдает получившийся результат. Необязательный параметр. По умолчанию 3000.
Приложение поддерживает режим машинного обучения.


Обучение – это подбор оптимальных параметров для заранее размеченного (разложенного по папкам) набора голосовых файлов с учетом биаса (отклонения).
По умолчанию: — 
|-
|Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса распознавания.
|Название: <code>Переход, ошибка</code>


Биас позволяет задать приоритет – допустить потерю живых ответов или допустить плохие звонки на операторов.
Код: <code>transferError</code>


Для обучения нужно:
Усл. видимости: <code>нет</code>


# Подготовить файлы и разместить рядом с анализатором в папке ML в пяти подпапках (Human, IVR, Tone, Fax, Silence)
По умолчанию: — 
# Запустить анализатор из командной строки с двум параметрами – биас (от -9 до 9, 0 – нейтрально) и количество итераций обучения (рекомендуется 1 для вывода текущей статистики и 10000 для реального обучения).  По результатам обучения выводится отчет о достигнутой точности, средней продолжительности определения человека и выставленных параметрах (которые при этом сохраняются рядом в файле SettingsML.json для дальнейшего использования в боевом режиме).
|}
# Результат SettingsML.json для применения компонентом следует разместить в каталоге ':SYNC/common/cpd', заменив предыдущий.


Пример командной строки запуска в режиме обучения:
= Другие компоненты =
cpd --mode=learn --learn-bias=0 --learn-iterations=10000 --learn-data-dir-path=/some/path/to/wavs/ --learn-output-file-path=/some/path/to/SettingsML.json
Расшифровка параметров:
--learn-bias  -  приоритет от -9 до +9, где -9 - допускать потерю живых ответов, 9 - допускать плохие звонки на операторов, 0 - нейтрально. Необязательный параметр. По умолчанию 0.
--learn-iterations  -  количество итераций обучения. Необязательный параметр. По умолчанию 10000.
--learn-data-dir-path  -  путь к папке с размеченными данными для обучения. Обязательный параметр.
--learn-output-file-path  -  путь к выходному файлу с результатом обучения. Необязательный параметр. Если не задавать, то результат просто распечается в консоли.
Папка с размеченными данными должна содержать примеры аудио-записей для обучающего прогона. Формат файлов: *.wav PCM 8000Hz 16bit mono.


Файлы должны быть сгруппированы по типу содержимого и размещаться внутри подпапок:
==== Компонент Внешнее управление через API ====
Переводит сценарий во время своей активности под внешнее управление через API (HTTP/WebSocket). +
Если диалог еще не установлен (в событии `api_start` поле `state` имеет значение, отличное от `dialog`), то от управляющей системы требуется соблюдение SIP workflow. То есть необходимо отправлять соответствующие ответов прежде, чем использовать функционал воспроизведения, записи, переводов.


* Fax - примеры записи факса;
Событие `api_start` может сообщить о следующих состояниях: `dialog`, `early`, `ringing`, `incoming`. В соответствии с ними, а также пользуясь передаваемыми параметрами, внешняя система может определить текущее состояние и выбрать правильное поведение.
* Human - примеры живых ответов людей;
* IVR - примеры IVR (музыка, роботы, голосовое меню и т.п.);
* Silence - примеры тишины;
* Tone - различные тональные сигналы, гудки, пр.


До момента отправки ответа 2хх следует: а) Перевод (203, refer) заменять отправкой ответа 3хх (202, `answer`). б) Завершение разговора (201, bye) следует заменять отправкой ответа 4хх-6хх (202, `answer`). в) Не использовать компоненты перевода. г) Не использовать компоненты по работе с медиа-трафиком (воспроизведение, запись и т.д.), за исключением случая, когда текущее состояние диалога - `early`, то есть последний отправленный ответ был `183 Session Progress`.


=== Компонент Колл-центр ===
О начале и завершении работы компонента генерируются события типов `ivrevents.api_start` и `ivrevents.api_stop`. Они отправляются в том числе по подписке в websocket-подключения (сообщение `notify` в рамках token-api `subscribe`).
Переводит сценарий во время своей активности под внешнее управление коллцентра.
Позволяет:


<nowiki>*</nowiki> ставить вызов в очередь под управление колл-центра;
Управление может перехватить только одна из подключенных систем - та, которая первой отправит сообщение `"ivrapi_accept"` в рамках своего websocket-подключения (token-api: `ivrapi`).


<nowiki>*</nowiki> запускать сценарии колл-центра;
Дальнейшее управление производится через websocket token-api `ivrapi`.
 
<nowiki>*</nowiki> изменять контекст вызова;
 
<nowiki>*</nowiki> присваивать метки к вызову.
{| class="wikitable"
{| class="wikitable"
|+Table 1. Системные характеристики
|+Table 1. Системные характеристики
Строка 3758: Строка 3642:
|-
|-
|Индекс
|Индекс
|<code>228</code>
|<code>224</code>
|-
|-
|Краткое название
|Краткое название
|<code>api_сс</code>
|<code>api</code>
|-
|-
|Типы сценариев
|Типы сценариев
Строка 3767: Строка 3651:
|-
|-
|Стартовый модуль
|Стартовый модуль
|<code>era_sip_ivr_script_component_api_сс</code>
|<code>era_sip_ivr_script_component_api</code>
|-
|-
|Режим
|Режим
Строка 3778: Строка 3662:
|Разветвляющий, замыкающий
|Разветвляющий, замыкающий
|}
|}
 
'''Свойства'''
==== Свойства ====
{| class="wikitable"
{| class="wikitable"
|+Table 2. Свойства
|+Table 2. Свойства
Строка 3785: Строка 3668:
!Описание
!Описание
|-
|-
|Название: <code>Действие</code>
|Название: <code>Ключ</code>


Код: <code>action</code>
Код: <code>key</code>


Усл. видимости: <code>нет</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Возможные значения:
|Аргумент, содержащий ключ. Передается внешней системе в сообщении о начале работы компонента (событие <code>ivrevents.api_start</code>) и завершении работы компонента (событие <code>ivrevents.api_stop</code>).


* Поставить в очередь (<code>acd</code>) - размещает вызов в очереди под управлением колл-центра.
Внешняя система должна указывать этот ключ рядом с указанием идентификатора IVR-диалога в каждом запросе, отправляемом в рамках websocket token-api <code>ivrapi</code> с целью осуществления внешнего управления этим компонентом.
* Запустить сценарий (<code>scenario</code>) - запускает сценарий колл-центра.
* Изменить контекст (<code>context</code>) - изменяет контекст вызова, делая доступными данные о звонке в карточках и сценариях колл-центра.
* Присвоить метку (<code>addtag</code>) - добавляет метку к вызову, позволяя разветвлять логику в сценариях колл-центра и производить фильтрацию в отчетах по вызовам.
|-
|-
|Название: <code>Код очереди</code>
|Название: <code>Параметры</code>


Код: <code>acdCode</code>
Код: <code>params</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий код очереди в колл-центре. Очередь должна существовать.
|Аргумент, содержащий дополнительные параметры для внешней системы.


Доступно только для действия 'Поставить в очередь'.
Указанные параметры передаются в сообщении о начале работы компонента (событие <code>ivrevents.api_start</code>).
|-
|-
|Название: <code>Приоритет</code>
|Название: <code>Таймаут подтверждения взятия управления, мс</code>


Код: <code>priority</code>
Код: <code>reportTimeoutMs</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: 100
По умолчанию: 3000
|Аргумент, определяющий приоритет текущего вызова в очереди. Чем меньше значение, тем больше приоритет.
|Аргумент, определяющий таймаут ожидания подтверждения от одной из подключенных по websocket token api внешних систем, в миллисекундах.
 
Доступно только для действия 'Поставить в очередь'.
|-
|-
|Название: <code>Подменять предыдущий вызов</code>
|Название: <code>Причина выхода в переменную</code>


Код: <code>deleteLastArchiveACDCall</code>
Код: <code>varReason</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: нет
По умолчанию: — 
|Выключатель режима подмены предыдущего сохраненного вызова в архиве сеанса текущим вызовом. Применяется в том случае, если необходимо в статистике по вызову видеть только одну очередь, даже если вызов прошел через несколько очередей.
|Переменная, куда заносится причина завершения работы компонента.
 
Доступно только для действия 'Поставить в очередь'.
|-
|-
|Название: <code>Код сценария</code>
|Название: <code>Переход</code>


Код: <code>scenarioCode</code>
Код: <code>transfer</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Аргумент, содержащий код сценария колл-центра, подлежащий синхронному исполнению.
|Компонент, которому передается управление после завершения работы компонента отключением внешней системы.
 
Доступно только для действия 'Запустить сценарий'.
|-
|-
|Название: <code>Контекст</code>
|Название: <code>Переход, время</code>


Код: <code>context</code>
Код: <code>transferTimeout</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Таблица опций вида Ключ-Значение, обновляющая текущий контекст. Пустые ключи игнорируются, пустые значения приводят к обнулению поля с соответствующим ключом в контексте.
|Компонент, которому передается управление при завершении по таймауту.
 
Доступно только для действий 'Поставить в очередь' и 'Изменить контекст'.
|-
|-
|Название: <code>Параметры вызова</code>
|Название: <code>Переход, ошибка</code>


Код: <code>queueOpts</code>
Код: <code>transferError</code>


Усл. видимости: <code>да</code>
Усл. видимости: <code>нет</code>


По умолчанию: — 
По умолчанию: — 
|Таблица опций вида Ключ-Значение, обновляющая параметры вызова в очереди. Пустые ключи игнорируются.
|Компонент, которому передается управление в случае возникновения ошибки.
|}


Доступно только для действия 'Поставить в очередь'.
|-
|Название: <code>Метка</code>


Код: <code>tag</code>


Усл. видимости: <code>да</code>
==== Компонент CPD (детектор ответов) ====
Применяется в исходящих кампаниях для детекции ответа "живого" человека.
Выполняет запись разговора в течение указанного времени (5-7 секунд), в течение которых пытается определить тип источника звука.


По умолчанию: — 
Определение человека производится по истечении секунды тишины после окончания приветственной реплики абонента.
|Аргумент, содержащий новую метку (строка).


Доступно только для действия 'Добавить метку'.
Определение роботов и автоматов производится по окончанию таймаута или длительной (более 2 секунд) приветственной реплики робота.
|-
 
|Название: <code>Переход</code>
Определение тишины производится по окончании указанного интервала времени.
 
 
Код: <code>transfer</code>
Определение факса производится почти сразу при обнаружении соответствующего тонального сигнала.
 
 
Усл. видимости: <code>нет</code>
Алгоритм CPD, используемый компонентом, не требователен к ресурсам системы.
 
{| class="wikitable"
По умолчанию: — 
|+Table 1. Системные характеристики
|Компонент, которому передается управление после завершения работы компонента отключением внешней системы.
!
|-
!
|Название: <code>Переход, время</code>
|-
 
|Индекс
Код: <code>transferTimeout</code>
|<code>225</code>
 
|-
Усл. видимости: <code>нет</code>
|Краткое название
 
|<code>cpd</code>
По умолчанию: — 
|-
|Компонент, которому передается управление при завершении по таймауту принятия управления сервисами колл-центра (3 секунды).
|Типы сценариев
|-
|<code>IVR</code>
|Название: <code>Переход, ошибка</code>
|-
 
|Стартовый модуль
Код: <code>transferError</code>
|<code>era_sip_ivr_script_component_cpd</code>
 
|-
Усл. видимости: <code>нет</code>
|Режим
 
|Асинхронный
По умолчанию: — 
|-
|Компонент, которому передается управление в случае возникновения ошибки.
|Иконка
|}
|
 
|-
 
|Характер разветвления
=== Компонент Распознавание речи (Azure Cloud Speech) ===
|Разветвляющий, замыкающий
Осуществляет распознавание речи абонента в текстовый вид.
|}
Сервис предоставляется облаком Microsoft Azure Speech STT по протоколу HTTP. Не имеет технических ограничений по производительности.
'''Свойства'''
 
{| class="wikitable"
Порядок регистрации учетной записи MS Azure и стоимость сервиса см. на <nowiki>https://learn.microsoft.com/en-us/azure/ai-services/speech-service/</nowiki>.
|+Table 2. Свойства
 
!Спецификация
Настройка токенов производится в разделе настройки домена, поле 'azure_cloud'..
!Описание
 
|-
Позволяет прерывать по тишине после произнесенной фразы.
|Название: <code>Таймаут, с</code>
{| class="wikitable"
 
|+Table 1. Системные характеристики
Код: <code>collectTimeSec</code>
!
 
!
Усл. видимости: <code>нет</code>
 
По умолчанию: 5
|Аргумент, содержащий время в секундах. Определяет сколько времени будет накапливаться запись разговора для дальнейшего анализа детектором ответа.
|-
|Название: <code>Сохранить файл записи</code>
 
Код: <code>saveRecord</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: <code>Нет</code>
|Признак сохранения файла записи, отправленного сервису детектора ответа. Сохранение выполняется в каталог <code>/var/lib/era_files/answer_detector_records/<domain>/<type></code>
 
* domain - домен в рамках которого выполнялся разговор.
* type - тип результата, который вернул детектор ответа.
|-
|Название: <code>Результат в переменную</code>
 
Код: <code>result</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Переменная, куда заносится причина завершения работы компонента.
|-
|Название: <code>Переход, обнаружено</code>
 
Код: <code>transferFound</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Компонент, которому передается управление после обнаружения "живого" человека детектором ответа.
|-
|Название: <code>Переход, не обнаружено</code>
 
Код: <code>transferNotFound</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Компонент, которому передается управление в случае если детектор ответа не обнаружил в записи "живого" человека.
|-
|Название: <code>Переход, ошибка</code>
 
Код: <code>transferError</code>
 
Усл. видимости: <code>нет</code>
 
По умолчанию: — 
|Компонент, которому передается управление в случае возникновения ошибки.
|}
 
===== Параметризация =====
Анализ CPD проводится входящим в состав платформы консольным приложения cpd (/era_sip/priv/cpd/cpd).
 
Компонент запускает CPD в режиме анализа.
 
В режиме анализа приложение принимает на input порции аудио-данных (PCM 8000Hz 16bit mono), и выдает один из возможных результатов:
 
* human
* ivr
* tone
* fax
* silence
 
Компонент завершается успехом только при результате 'human'.
 
Алгоритм может параметризоваться. В качестве параметров используются файлы SettingsML.json и SettingsSpectrum.json.
 
Файлы располагаются в каталоге ':SYNC/common/cpd'.
 
Пример командной строки запуска в режиме анализа:
cpd --mode=analyze --ml-settings-path=/some/path/to/SettingsML.json --spectrum-settings-path=/some/path/to/SettingsSpectrum.json --timeout=7000 --recv-timeout=3000
Расшифровка параметров:
--ml-settings-path  -  путь к json-файлу с ML-параметрами, полученными в результате обучения. Необязательный параметр. Если не задавать, то используются некоторые зашитые (и неоптимальные) ML-параметры.
--spectrum-settings-path  -  путь к json-файлу с частотными параметрами, сформированными инженером. Необязательный параметр. Если не задавать, то частотный анализатор не используется.
--timeout  -  полный таймаут работы анализатора в мс; через это время анализатор выдает получившийся результат. Необязательный параметр. По умолчанию 7000.
--recv-timeout  -  таймаут на прием очередной порции данных через stdin; если столько времени нет входящих данных, анализатор выдает получившийся результат. Необязательный параметр. По умолчанию 3000.
Приложение поддерживает режим машинного обучения.
 
Обучение – это подбор оптимальных параметров для заранее размеченного (разложенного по папкам) набора голосовых файлов с учетом биаса (отклонения).
 
Биас позволяет задать приоритет – допустить потерю живых ответов или допустить плохие звонки на операторов.
 
Для обучения нужно:
 
# Подготовить файлы и разместить рядом с анализатором в папке ML в пяти подпапках (Human, IVR, Tone, Fax, Silence)
# Запустить анализатор из командной строки с двум параметрами – биас (от -9 до 9, 0 – нейтрально) и количество итераций обучения (рекомендуется 1 для вывода текущей статистики и 10000 для реального обучения).  По результатам обучения выводится отчет о достигнутой точности, средней продолжительности определения человека и выставленных параметрах (которые при этом сохраняются рядом в файле SettingsML.json для дальнейшего использования в боевом режиме).
# Результат SettingsML.json для применения компонентом следует разместить в каталоге ':SYNC/common/cpd', заменив предыдущий.
 
Пример командной строки запуска в режиме обучения:
cpd --mode=learn --learn-bias=0 --learn-iterations=10000 --learn-data-dir-path=/some/path/to/wavs/ --learn-output-file-path=/some/path/to/SettingsML.json
Расшифровка параметров:
--learn-bias  -  приоритет от -9 до +9, где -9 - допускать потерю живых ответов, 9 - допускать плохие звонки на операторов, 0 - нейтрально. Необязательный параметр. По умолчанию 0.
--learn-iterations  -  количество итераций обучения. Необязательный параметр. По умолчанию 10000.
--learn-data-dir-path  -  путь к папке с размеченными данными для обучения. Обязательный параметр.
--learn-output-file-path  -  путь к выходному файлу с результатом обучения. Необязательный параметр. Если не задавать, то результат просто распечатается в консоли.
Папка с размеченными данными должна содержать примеры аудио-записей для обучающего прогона. Формат файлов: *.wav PCM 8000Hz 16bit mono.
 
Файлы должны быть сгруппированы по типу содержимого и размещаться внутри подпапок:
 
* Fax - примеры записи факса;
* Human - примеры живых ответов людей;
* IVR - примеры IVR (музыка, роботы, голосовое меню и т.п.);
* Silence - примеры тишины;
* Tone - различные тональные сигналы, гудки, пр.
 
 
 
=== Компонент Распознавание речи (Azure Cloud Speech) ===
Осуществляет распознавание речи абонента в текстовый вид.
Сервис предоставляется облаком Microsoft Azure Speech STT по протоколу HTTP. Не имеет технических ограничений по производительности.
 
Порядок регистрации учетной записи MS Azure и стоимость сервиса см. на <nowiki>https://learn.microsoft.com/en-us/azure/ai-services/speech-service/</nowiki>.
 
Настройка токенов производится в разделе настройки домена, поле 'azure_cloud'..
 
Позволяет прерывать по тишине после произнесенной фразы.
{| class="wikitable"
|+Table 1. Системные характеристики
!
!
|-
|-
|Индекс
|Индекс
Строка 3940: Строка 3939:
|Разветвляющий, прерывающий
|Разветвляющий, прерывающий
|}
|}
 
'''Свойства'''
==== Свойства ====
{| class="wikitable"
{| class="wikitable"
|+Table 2. Свойства
|+Table 2. Свойства
Строка 4113: Строка 4111:
Возможные варианты:
Возможные варианты:


* <code>false</code> (<code>0</code>) - False. Мatching to reference text is not used.
* <code>false</code> (<code>0</code>) - False. Matching to reference text is not used.
* <code>true</code> (<code>1</code>) - True. The pronounced words are compared to the reference text. They are marked with omission or insertion based on the comparison.
* <code>true</code> (<code>1</code>) - True. The pronounced words are compared to the reference text. They are marked with omission or insertion based on the comparison.
|-
|-
Строка 4220: Строка 4218:
|Аргумент, устанавливающий порог VAD. Параметр VAD-детектора.
|Аргумент, устанавливающий порог VAD. Параметр VAD-детектора.


Указанное значение применяется с отрицательным знаком (в децибеллах) для определения порога отсечения тишины относительно возможного максимума.
Указанное значение применяется с отрицательным знаком (в децибелах) для определения порога отсечения тишины относительно возможного максимума.


Поток анализируется фреймами по 20 мс. Каждый звуковой фрейм на основании порога отсечения рассматривается либо как голос, либо как тишина (средний уровень громкости фрейма).
Поток анализируется фреймами по 20 мс. Каждый звуковой фрейм на основании порога отсечения рассматривается либо как голос, либо как тишина (средний уровень громкости фрейма).
Строка 4379: Строка 4377:


По умолчанию: — 
По умолчанию: — 
|Компонент, которому передается упраление в случае успешного завершения операции.
|Компонент, которому передается управление в случае успешного завершения операции.
|-
|-
|Название: <code>Переход, время</code>
|Название: <code>Переход, время</code>

Текущая версия от 21:21, 27 октября 2026

Сценарии IVR (Interactive Voice Response) служат для автоматического обслуживания звонков. Обработчик сценариев является SIP-UA (user-agent), одной из сторон диалога. То есть для каждого подлежащего автоматическому обслуживанию звонка запускается отдельный обработчик сценария IVR.

Запуск производится:

  • при поступления звонка, смаршрутизированного на featurecode с типами ivr, parking, voicemail, hunt;
  • при инициации звонка компонентом Исходящий звонок;
  • сервисом управления звонками (API calls, conferences);
  • сервисом селекторных совещаний в режиме предварительного воспроизведения после ответа абонента (сущность selector);
  • сервисом очередей после ответа оператора перед соединением с абонентом в режиме предварительного воспроизведения (сущность hunt-групп с типом user);

Алгоритм работы каждого сценария описываются сущностью ivrscript. Создаются в веб-приложении "Редактор сценариев" или могут управляться через API.

Сценарий IVR имеет основную ветвь и ветви пост-обработки. Основная ветвь активна только одновременно с активностью обслуживаемого диалога, а при завершении диалога выполнение основной ветви сценария прерывается. При этом его работа может быть продолжена на ветке пост-обработки.

Сценарий IVR, обслуживающий поступивший вызов, должен производить ответ (удачный 2xx или неудачный 3xx-6xx) на поступивший входящий SIP-запрос INVITE. Также может отправлять предварительные ответы 1xx.

Исполняется ролью ivr на одном из сайтов, обслуживающих домен.

Компоненты сценариев IVR

Компоненты управления вызовом

Компонент Завершение звонка

Разрывает текущий диалог отправкой SIP-запроса BYE.

Если диалог еще не установлен (не был предварительно отправлен SIP-ответ 2xx), то компонент завершается ошибкой и прерывает работу основной ветки сценария.

Индекс 201
Краткое название bye
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_bye
Режим Асинхронный
Иконка
Характер разветвления Не разветвляющий

Компонент SIP-ответ

Отправляет SIP-ответ на входящий INVITE, инициировавший запуск IVR сценария. Это может быть: * предварительный ответ 1xx,

* окончательный успешный ответ 2xx,

* окончательный ответ о переадресации 3xx,

* окончательный ответ о неудаче 4xx – 6xx.

После неудачных окончательных ответов выполнение основной ветки сценария автоматически прекращается.

В соответствии с протоколом SIP последовательно в течение ограниченного интервала времени (~30 секунд) может быть отправлено произвольное количество предварительных ответов, и только один окончательный.

Table 1. Системные характеристики
Индекс 202
Краткое название answer
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_answer
Режим Асинхронный
Иконка
Характер разветвления Не разветвляющий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Код ответа SIP

Код: sipCode

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий код SIP-ответа.

Число 1xx – 6xx.

Название: Текст ответа SIP

Код: phrase

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий фразу SIP-ответа.

Например Not Found для 404.

Название: Причина

Код: reason

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий причину. Отправляется в SIP-ответе в заголовке Reason.

По умолчанию заголовок не добавляется.

Название: Отображаемое имя

Код: remotePartyDisplay

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий имя абонента. Отправляется в SIP-ответе в качестве displayname в заголовке Remote-Party-Id.

По умолчанию заголовок не добавляется.

Название: Переадресация на номер

Код: redirectTo

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий телефонный номер абонента для осуществления переадресации. Необходимо к указанию в случае ответа кодами 3хх.
Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление.

Компонент Перевод на номер

Производит перевод абонента текущего звонка на указанный номер путем отправки ему SIP-запроса REFER. После успешного выполнения компонента выполнение основной ветки сценария прерывается. На любом шаге процесса может произойти плановый отказ, тогда управление передается следующему компоненту по соответствующей ветке перехода.

Автоматически производит подписку на получение событий о состоянии перевода. Общее время процесса перевода складывается из времени ответа на REFER (может включать в себя выдачу запроса абоненту с ожиданием подтверждения), набора указанного номера и ожидания ответа. Однако спустя 60 секунд управление в любом случае будет передано следующему компоненту по ветке "Время подписки".

При переводе используется стандартный процесс маршрутизации от имени текущего сценария IVR.

Table 1. Системные характеристики
Индекс 203
Краткое название refer
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_refer
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, прерывающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Номер

Код: number

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий телефонный номер абонента для осуществления перевода.
Название: Режим re-INVITE

Код: reinviteMode

Усл. видимости: нет

По умолчанию: Не использовать

Выбор режима предварительного преобразования медиа-сессии текущего диалога перед отправкой SIP-запроса REFER.

Возможные варианты:

  • Не использовать (not_used, 0) – Не производит преобразования.
  • Авто (auto, 1) – По текущим настройкам системы аналогично режиму inactive.
  • sendonly (2) – Переводит медиа-сессию в режим удержания путем отправки re-INVITE с SDP, где у медиа-стримов выставлен атрибут a=sendonly.
  • inactive (3) – Переводит медиа-сессию в режим удержания путем отправки re-INVITE с SDP, где у медиа-стримов выставлен атрибут a=inactive (не соответствует RFC-6337 п.5.3.).
Название: Код результата в переменную

Код: resultCode

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения кода внутренней ошибки.

Возможные варианты:

  • "001" – Ошибка инициации вызова.
  • "002" – Неудача вызова.
Название: Описание результата в переменную

Код: resultDescription

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения текстового описания внутренней ошибки.
Название: SIP-код ответа в переменную

Код: resultSipCode

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения кода SIP-ответа на исходящий запрос INVITE.
Название: Причина SIP ответа в переменную

Код: resultSipReason

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения фразы SIP-ответа на исходящий запрос INVITE.
Название: Переход, время подписки

Код: transferSubTerminated

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление, если истекло время подписки, а подтверждения получения окончательного ответа не последовало.
Название: Переход, отказ

Код: transferRejected

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае, если при вызове получен неудачный окончательный ответ: 3xx-6xx (на REFER или INVITE).
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае, если за ограниченное время не получен окончательный ответ на отправленный SIP-запрос re-INVITE или REFER.

Компонент Колл-центр

Переводит сценарий во время своей активности под внешнее управление коллцентра. Позволяет:

* ставить вызов в очередь под управление колл-центра;

* запускать сценарии колл-центра;

* изменять контекст вызова;

* присваивать метки к вызову.

Table 1. Системные характеристики
Индекс 228
Краткое название api_сс
Типы сценариев IVR
Стартовый модуль era_sip_ivr_script_component_api_сс
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, замыкающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Действие

Код: action

Усл. видимости: нет

По умолчанию: — 

Возможные значения:
  • Поставить в очередь (acd) - размещает вызов в очереди под управлением колл-центра.
  • Запустить сценарий (scenario) - запускает сценарий колл-центра.
  • Изменить контекст (context) - изменяет контекст вызова, делая доступными данные о звонке в карточках и сценариях колл-центра.
  • Присвоить метку (addtag) - добавляет метку к вызову, позволяя разветвлять логику в сценариях колл-центра и производить фильтрацию в отчетах по вызовам.
Название: Код очереди

Код: acdCode

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий код очереди в колл-центре. Очередь должна существовать.

Доступно только для действия 'Поставить в очередь'.

Название: Приоритет

Код: priority

Усл. видимости: да

По умолчанию: 100

Аргумент, определяющий приоритет текущего вызова в очереди. Чем меньше значение, тем больше приоритет.

Доступно только для действия 'Поставить в очередь'.

Название: Подменять предыдущий вызов

Код: deleteLastArchiveACDCall

Усл. видимости: да

По умолчанию: нет

Выключатель режима подмены предыдущего сохраненного вызова в архиве сеанса текущим вызовом. Применяется в том случае, если необходимо в статистике по вызову видеть только одну очередь, даже если вызов прошел через несколько очередей.

Доступно только для действия 'Поставить в очередь'.

Название: Код сценария

Код: scenarioCode

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий код сценария колл-центра, подлежащий синхронному исполнению.

Доступно только для действия 'Запустить сценарий'.

Название: Контекст

Код: context

Усл. видимости: да

По умолчанию: — 

Таблица опций вида Ключ-Значение, обновляющая текущий контекст. Пустые ключи игнорируются, пустые значения приводят к обнулению поля с соответствующим ключом в контексте.

Доступно только для действий 'Поставить в очередь' и 'Изменить контекст'.

Название: Параметры вызова

Код: queueOpts

Усл. видимости: да

По умолчанию: — 

Таблица опций вида Ключ-Значение, обновляющая параметры вызова в очереди. Пустые ключи игнорируются.

Доступно только для действия 'Поставить в очередь'.

Название: Метка

Код: tag

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий новую метку (строка).

Доступно только для действия 'Добавить метку'.

Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление после завершения работы компонента отключением внешней системы.
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при завершении по таймауту принятия управления сервисами колл-центра (3 секунды).
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае возникновения ошибки.


Компонент Воспроизведение

Осуществляет воспроизведение аудио-файла абоненту. Может инициировать как синхронное воспроизведение, при котором управление следующему компоненту будет передано только после окончания воспроизведения, так и фоновое воспроизведение, при котором передача управления следующему компоненту произойдет сразу после запуска воспроизведения. Управление фоновым воспроизведением допускает паузы и остановки. Возобновление воспроизведения возможно с указанной миллисекунды конкретного файла.

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

Table 1. Системные характеристики
Индекс 204
Краткое название play
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_play
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, замыкающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Слой

Код: playerId

Усл. видимости: нет

По умолчанию: "default"

Выбор слоя воспроизведения.

Слоем называется отдельный терминейшен в медиа-контексте IVR, который воспроизводит единовременно не более одного файла.

Таким образом, IVR сценарий в различных режимах воспроизведения, включающих фоновый, может одновременно воспроизводить несколько файлов – все они микшируются.

Название: Режим

Код: mode

Усл. видимости: нет

По умолчанию: Файл полностью

Выбор режима работы компонента.

Возможные варианты:

  • Файл полностью (syncPlayFile, 0) – Производит воспроизведение аудио-файла с ожиданием его завершения. Если в качестве параметров указан каталог, то производится воспроизведение случайного файла из каталога.
  • Предпрослушивание (syncPlayFileLimit, 1) – Производит воспроизведение с ожиданием его завершения и ограничением по времени воспроизведения.
  • Файл + дополнительное время (syncPlayFileExtra, 2) – Производит воспроизведение с ожиданием его завершения и ожиданием дополнительной паузы, применяемой для доввода DTMF символов.
  • Список файлов (syncPlayFiles, 7) – Производит воспроизведение последовательного списка файлов. Опционально может ожидать дополнительной паузы, применяемой для доввода DTMF символов.
  • Фоновое воспроизведение (asyncPlayStart, 3) – Добавляет слой и инициирует фоновое воспроизведение в нем, сразу передавая управление следующему компоненту. Если в указанном слое уже производится воспроизведение, то оно автоматически прерывается.
  • Остановка фона (asyncPlayStop, 4) – Производит остановку воспроизведения в указанном слое.
  • Изменить громкость фона (asyncModifyVolume, 6) – Производит изменение громкости воспроизводимого в фоне файла на указанном слое.
Название: Время, с

Код: playTimeSec

Усл. видимости: да

По умолчанию: — 

Ограничение на время воспроизведения, в секундах.

Применяется в режиме Предпрослушивание.

Название: Доп. время, с

Код: extraTimeSec

Усл. видимости: да

По умолчанию: 0

Таймаут дополнительной паузы после завершения воспроизведения, в секундах.

Применяется в режимах Файл + дополнительное время и Список файлов.

Название: Каталог

Код: folder

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий путь к каталогу.

Должен включать одну из файловых категорий.

Название: Случайно

Код: randomize

Усл. видимости: да

По умолчанию: Да

Режим случайного выбора очередного файла из каталога.

Применяется при указании в качестве источника каталога с аудио-файлами.

  • Да – в начале и при завершении воспроизведения каждого аудио-файла очередной файл выбирается случайным образом.
  • Нет – файлы воспроизводятся в порядке лексикографической сортировки по именам.
Название: Файл

Код: file

Усл. видимости: да

По умолчанию: — 

Файл для воспроизведения.

Может быть выбран в одном из режимов:

  • статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
  • сформированный аргументами путь, который должен включать одну из файловых категорий.
Название: Потоковый файл

Код: fileCanGrow

Усл. видимости: да

По умолчанию: Нет

Режим потокового воспроизведения растущего файла.

Применяется только в режимах воспроизведения Файл полностью, Предпрослушивание, Файл + дополнительное время, Фоновое воспроизведение при воспроизведении одного конкретного файла.

Режим полезен для нужд организации потокового воспроизведения, например когда данные генерируются внешним сервисом постепенно, и их необходимо сразу отдавать в голосовой канал.

В таком режиме может воспроизводиться только WAV-файл, у которого в заголовке размер заведомо больше того объема сэмплов, которые размещены в файле.

Если воспроизведение доходит до текущего конца файла, а размер файла, указанный в WAV-заголовке не достигнут, плеер генерирует тишину.

По мере добавления сэмплов в конец файла воспроизведение продолжается.

Воспроизведение завершается тогда, когда количество воспроизведенных сэмплов из файла совпадет с указанным количеством сэмплов в Wav-заголовке.

При этом в Wav-заголовок допускается перезаписать размер, когда данные закончатся.

Возможные варианты:

* Нет – обычный режим воспроизведения.

* Да – допускается воспроизведение из растущего WAV-файла.

Название: Таймаут получения данных, мс

Код: growingTimeoutMs

Усл. видимости: да

По умолчанию: 0

При воспроизведении потокового файла с ожиданием поступления данных, в момент когда данных недостаточно, воспроизводится тишина. Чтобы завершить воспроизведение необходимо прописать в заголовок реальный размер данных.

Параметр позволяет установить предельное время в миллисекундах, когда воспроизводится тишина в ожидании поступления данных.

Значение 0 - таймаут не применяется.

Название: Файлы (JSON-список)

Код: filesArg

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий JSON-структуру в виде массива строк, каждая из которых представляет путь к файлу.

Каждый путь должен включать одну из файловых категорий.

Файлы воспроизводятся в порядке указания в списке.

Название: Зацикливать

Код: loop

Усл. видимости: да

По умолчанию: Нет

Выключение режима непрерывного зацикленного воспроизведения.

При воспроизведении через выбор каталога, всякий раз производится случайный выбор нового файла.

Название: Начало, мс

Код: startAt

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий смещение для старта воспроизведения, в миллисекундах.

Имеет смысл при незацикленном воспроизведении файла.

Название: Конец, мс

Код: stopAt

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий финальную позицию в файле, в миллисекундах.

Имеет смысл при незацикленном воспроизведении файла.

Название: Громкость (делитель)

Код: volumeDiv

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий делитель громкости воспроизведения в слое
Название: Буфер для DTMF

Код: dtmfBuffer

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения получаемых DTMF-символов.
Название: Очистить буфер DTMF

Код: clearDtmfBuffer

Усл. видимости: да

По умолчанию: Да

Выключатель предварительной очистки буфера DTMF.
Название: Количество символов

Код: maxSymbolCount

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий ограничение на количество вводимых символов.

После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.

Название: Символы прерывания

Код: interruptSymbols

Усл. видимости: да

По умолчанию: — 

Строка, содержащая последовательности символов прерывания через запятую.

После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.

Например, *, 7, 123, 9395.

Название: Вырезать символы прерывания

Код: clearInterrupt

Усл. видимости: да

По умолчанию: Да

Выключатель операции удаления символов прерывания из буфера DTMF после обнаружения последовательности прерывания.
Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при успешном завершении операции.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае возникновения ошибки.

Компонент Воспроизведение числительных

Осуществляет построение фразы по числу и указанному формату и последующее ее воспроизведение абоненту. Операция проводится синхронно, то есть управление следующему компоненту передается только после завершения воспроизведения.

Файлы числительных для воспроизведения в рантайме находятся в локальном автоматически синхронизирующемся каталоге :SYNC в подкаталоге /common/standardexpressions/<VOICE>.

Table 1. Системные характеристики
Индекс 205
Краткое название playnum
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_playnum
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, прерывающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Число

Код: number

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий воспроизводимое числительное либо наборную фразу.
Название: Языковой алгоритм

Код: lang

Усл. видимости: нет

По умолчанию: RUS

Выбор языкового алгоритма.

Возможные варианты:

  • RUS (ru, 0) - Русский язык.
  • ENG (en, 1) – Английский язык.
Название: Формат

Код: mode

Усл. видимости: нет

По умолчанию: Количество

Выбор формата воспроизведения.

Возможные варианты:

  • По формату (byformat, 0) – Выбор формата построения фразы по значению: способ разбиения.
  • Количество (quantity, 1) – Числительное XXX, например сто двадцать три.
  • Порядковое числительное (ordinal, 2) – XXX, например сто двадцать третий. Применяет род.
  • Телефонный номер (phone, 3) – XXX XXX-XX-XX, XXX-XX-XX, XX-XX-XX, XX-XX, XXX, например девятсот двадцать пять шестьдесят три двадцать.
  • Дата (date, 4) – Например, двадцать пятое декабря две тысячи шестидесятого года.
  • Время (time, 5) – Например, тринадцать часов двадцать пять минут.
  • Дата / время (datetime, 6) – двадцать пятое декабря две тысячи шестидесятого года тринадцать часов двадцать пять минут.
  • День недели (weekday, 7) – Например, понедельник.
  • Время без нулей в начале (timewo0b, 8) – Время, где нули в начале не воспроизводятся, например: двадцать минут ноль секунд вместо ноль часов двадцать минут ноль секунд.
  • Время без нулей в конце (timewo0e, 9) – Время, где нули в конце не воспроизводятся, например: ноль часов двадцать минут вместо ноль часов двадцать минут ноль секунд.
  • Время в секундах (timesec, 10) – Например, шестьсот секунд.
  • Деньги, USD (moneyusd, 11) – XXX долларов или XXX долларов XX центов.
  • Деньги, EUR (moneyeur, 12) – XXX евро или XXX долларов XX евроцентов.
  • Деньги, RUR (moneyrub, 13) – XXX рублей или XXX рублей XX копеек.
  • Процент (percent, 14) – XX процентов.

Важно, чтобы соответствующие файлы озвучки находились в каталоге выбранного голоса.

Название: Тип проигрывания

Код: format

Усл. видимости: да

По умолчанию: Посимвольно

Выбор способа озвучивания числительного.

Возможные варианты:

  • Посимвольно (sym1, 0) – Каждая цифра числа проговаривается отдельно.
  • По 2 символа (sym2, 1) – Цифры объединяются парами.
  • По 3 символа (sym3, 2) – Цифры объединяются в группы по три.
  • Целиком (number, 3) – Число проговаривается целиком.
  • Буквы и числа (letters, 4) – Значение проговаривается в виде отдельных букв (аббревиатур) и чисел.
  • Слова и фразы (words, 5) – Проговариваются отдельные слова, разделенные пробелами, заранее озвученные и представленные в каталоге озвучки.
Название: Род

Код: gender

Усл. видимости: да

По умолчанию: Мужской

Выбор рода для окончаний при формировании фразы.

Возможные варианты:

  • Мужской (masculine, 0)
  • Женский (feminine, 1)
  • Средний (neuter, 2)
Название: Понижать тон

Код: downTone

Усл. видимости: нет

По умолчанию: Нет

Выключатель режима преимущественного применения аудио-файла с понижающим тоном в конце фразы.

Такие файлы в каталогах озвучки существуют отдельно и имеют префикс _.

Название: Голос

Код: voice

Усл. видимости: нет

По умолчанию: — 

Выбор голоса. Каталоги с голосовой озвучкой располагаются в ассетах.
Название: Символы прерывания

Код: interruptSymbols

Усл. видимости: да

По умолчанию: — 

Строка, содержащая последовательности символов прерывания через запятую.

После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.

Например, *, 7, 123, 9395.

Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае успешного завершения операции.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае ошибки.


Компонент Прием DTMF

Осуществляет ожидание ввода абонентом символов DTMF с клавиатуры телефона. Поддерживает поставку символов по RFC-2833 и через SIP-INFO.

Table 1. Системные характеристики
Индекс 206
Краткое название dtmf
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_dtmf
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, замыкающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Inband-детектор

Код: inband

Усл. видимости: нет

По умолчанию: disable

Режим работы детектора Inband dtmf.

Возможные значения:

  • Выключить (disable, 0) - DTесли ранее был включен .
  • Включить (enable, 1).
  • Включить и выключить (turn, 2).

Особенности Inband-DTMF детектора:

  • Потребляет дополнительные вычислительные ресурсы - как на само детектирование, так и на включение и выключение, что может приводить в нагруженных системах к снижению общей производительности.
  • Создает риск дублирования сигналов, передаваемых одновременно в звуке и в другом протоколе.
  • Если в сценарии несколько компонентов анализа DTMF, то оптимальнее включить его в первом компоненте и не выключать до конца.
  • Если необходимо вылавливать Inband-DTMF в других компонентах, например прерывание воспроизведения, то следует исполнить компонент Ввода DTMF с нулевым таймаутом и включением режима Inband.

Без острой необходимости не следует активировать режим Inband-DTMF.

Название: Таймаут, с

Код: timeoutSec

Усл. видимости: нет

По умолчанию: — 

Общий таймаут ожидания ввода полного значения.
Название: Межсимвольный таймаут, с

Код: symbolTimeoutSec

Усл. видимости: нет

По умолчанию: — 

Таймаут ожидания ввода следующего символа, начиная с первого, в секундах.
Название: Буфер для DTMF

Код: dtmfBuffer

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения получаемых DTMF-символов.
Название: Очистить буфер DTMF

Код: clearDtmfBuffer

Усл. видимости: да

По умолчанию: Да

Выключатель предварительной очистки буфера DTMF.
Название: Количество символов

Код: maxSymbolCount

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий ограничение на количество вводимых символов.

После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.

Название: Символы прерывания

Код: interruptSymbols

Усл. видимости: нет

По умолчанию: — 

Строка, содержащая последовательности символов прерывания через запятую.

После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.

Например, *, 7, 123, 9395.

Название: Вырезать символы прерывания

Код: clearInterrupt

Усл. видимости: да

По умолчанию: Да

Выключатель операции удаления символов прерывания из буфера DTMF после обнаружения последовательности прерывания.
Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при завершении операции по набору нужного числа символов.
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при завершении по таймауту.


Компонент Запись звука

Осуществляет запись звука, поступающего от абонента, в локальный файл. Размещает файл во временном каталоге на время жизни сценария. Для сохранения файла от сценария требуется последующее перемещение его в любое место стационарного хранения.

Table 1. Системные характеристики
Индекс 208
Краткое название record
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_record
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, замыкающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Режим

Код: mode

Усл. видимости: нет

По умолчанию: Синхронная запись

Выбор режима записи.

Возможные варианты:

  • Синхронная запись (syncRecFile, 0) - обычный режим записи в файл с последующей упаковкой в выбранный кодек и возвратом пути к файлу в переменную.
  • Потоковая запись (growingRaw, 1) - режим записи в указанный файл короткими порциями, например для организации потоковой отправки в сервис распознавания речи внешними средствами.
Название: Путь в переменную

Код: pathToVarMode

Усл. видимости: да

По умолчанию: Да

Выключатель сохранения пути к файлу с записью в переменную.
Название: Путь к файлу в переменную

Код: nameVar

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения пути к файлу с записанным голосом.

Применяется только в режиме синхронной записи.

Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.

Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.

Запись осуществляется на сервере с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.

Название: Путь к файлу

Код: toFilepath

Усл. видимости: да

По умолчанию: — 

Аргумент, указывающий путь к файлу для потоковой записи (растущий файл).

Применяется только в режиме потоковой записи.

Название: Wav-заголовок

Код: addWavHeader

Усл. видимости: да

По умолчанию: Нет

Позволяет добавить wav-заголовок к растущему файлу.

Применяется только в режиме потоковой записи.

В Wav-заголовок прописывается размер, эквивалентный выбранному максимальному времени записи.

Название: Кодек

Код: codec

Усл. видимости: да

По умолчанию: PCMA

Кодек/формат записываемого файла (только для режима синхронной записи). Упаковка производится по окончании записи с помощью микшера.

Возможные варианты:

  • PCM (pcm, '0')
  • PCMA (pcma, '1')
  • PCMU (pcmu, '2')
  • GSM (gsm, '3')
  • MP3 8-bit (mp3_8, '4')
  • MP3 16-bit (mp3_16, '5')
  • MP3 24-bit (mp3_24, '6')
Название: Кодек

Код: codecRaw

Усл. видимости: да

По умолчанию: PCMA

Кодек/формат записываемого файла (только для режима потоковой записи).

Возможные варианты:

  • L16/8000 (pcm8000, '0') - PCM 8000 Hz 16 bit mono.
  • L16/16000 (pcm16000, '1') - PCM 16000 Hz 16 bit mono.
Название: Буфер, мс

Код: bufferDurMs

Усл. видимости: нет

По умолчанию: 250

Аргумент, определяющий период сброса записанных данных в потоковый файл.

Применяется только для режима потоковой записи.

Название: Таймаут, с

Код: recTimeSec

Усл. видимости: нет

По умолчанию: — 

Таймаут записи до автоматического прерывания, в секундах.
Название: Буфер для DTMF

Код: dtmfBuffer

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения получаемых DTMF-символов.
Название: Очистить буфер DTMF

Код: clearDtmfBuffer

Усл. видимости: да

По умолчанию: Да

Выключатель предварительной очистки буфера DTMF.
Название: Количество символов

Код: maxSymbolCount

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий ограничение на количество вводимых символов.

После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.

Название: Символы прерывания

Код: interruptSymbols

Усл. видимости: нет

По умолчанию: — 

Строка, содержащая последовательности символов прерывания через запятую.

После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.

Например, *, 7, 123, 9395.

Название: Вырезать символы прерывания

Код: clearInterrupt

Усл. видимости: да

По умолчанию: Да

Выключатель операции удаления символов прерывания из буфера DTMF после обнаружения последовательности прерывания.
Название: Прерывать фон (слой) при обнаружении голоса

Код: `stopPlayerIdOnVad

Усл. видимости: нет

По умолчанию: "default"

Слой фонового воспроизведения (поле playerId компонента воспроизведение в фоновом режиме, запущенного ранее), который следует остановить при обнаружении голоса в канале абонента.
Название: Прерывать при обнаружении тишины

Код: abortOnSilence

Усл. видимости: нет

По умолчанию: Нет

Выключатель режима обнаружения тишины и автоматического прерывания.

Тишиной считается сигнал ниже порога чувствительности длиной более 200 мс.

Таймер засекается только после обнаружения голоса (сигнал выше порога чувствительности продолжительностью более полусекунды, внутри которого могут обнаруживаться зоны сигнала ниже порога чувствительности продолжительностью менее 200 мс).

Название: Интервал тишины, с

Код: silenceTimeoutSec

Усл. видимости: да

По умолчанию: 2

Аргумент, содержащий время таймаута при обнаружении тишины в секундах. При появлении голоса выше порога чувствительности в течение указанного таймаута, таймер сбрасывается вплоть до обнаружения тишины снова.

В большинстве случаев 2 секунды - комфортный интервал.

Может указываться в формате десятичной дроби, например, '1.6'.

Название: Порог VAD, -дБ

Код: vadThreshold

Усл. видимости: да

По умолчанию: 30

Аргумент, устанавливающий порог VAD. Параметр VAD-детектора.

Указанное значение применяется с отрицательным знаком (в децибелах) для определения порога отсечения тишины относительно возможного максимума.

Поток анализируется фреймами по 20 мс. Каждый звуковой фрейм на основании порога отсечения рассматривается либо как голос, либо как тишина (средний уровень громкости фрейма).

Таким образом, детектор имеет два состояния: голос и тишина. При переходе между состояниями генерируется событие о переходе в другое состояние. Изначально детектор находится в состоянии тишины.

Генерация сигнала обнаружения голоса происходит в состоянии тишины тогда, когда несколько фреймов подряд являются голосовыми (параметр 'Порог голоса, мс').

Генерация сигнала обнаружения тишины происходит в состоянии голоса тогда, после того, как несколько фреймов подряд признаны тишиной (параметр 'Порог тишины, мс').

При значении 30 детектор лучше определяет тишину, при значении 40 детектор лучше определяет появление голоса.

Выход из компонента происходит по истечении таймаута, указанного в поле Интервал тишины, с, отсчитывая с начала отрезка тишины, обнаруженного детектором из состояния голоса.

Название: Голос, мин. длительность, мс

Код: vadVoiceMinMs

Усл. видимости: да

По умолчанию: 120

Аргумент, устанавливающий минимальную пороговую длительность VAD для генерации сигнала VAD UP.

Параметр VAD-детектора.

Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем выше установленного порога VAD.

Через указанное значение определяется количество фреймов.

Название: Голос, допустимое отклонение, %

Код: vadVoiceTol

Усл. видимости: да

По умолчанию: 20

Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.

Параметр VAD-детектора.

Например минимальная длительность задана 210 (мс), отклонение 20 (%). Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.

Значение 0 означает что все 11 фреймов подряд должны быть голосовыми (иметь средний уровень выше порога VAD).

Название: Тишина, мин. длительность, мс

Код: vadSilenceMinMs

Усл. видимости: да

По умолчанию: 500

Аргумент, устанавливающий минимальную пороговую длительность фреймов с тишиной для генерации сигнала VAD DOWN.

Параметр VAD-детектора.

Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем ниже установленного порога VAD.

Через указанное значение определяется количество фреймов.

Название: Тишина, допустимое отклонение, %

Код: vadSilenceTol

Усл. видимости: да

По умолчанию: 10

Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.

Параметр VAD-детектора.

Например минимальная длительность задана 210 мс, отклонение 20%. Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.

Значение 0 означает что все 11 фреймов подряд должны быть тишиной (иметь средний уровень ниже порога VAD).

Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при завершении операции по набору нужного числа символов.
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при завершении по таймауту.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при обнаружении ошибки, например неверно задан путь к файлу для потоковой записи.


Компонент Отправка факса

Отправляет изображение по факсимильному протоколу T.30 или T.38.

Table 1. Системные характеристики
Индекс 213
Краткое название fax_send
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_fax_send
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, замыкающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Протокол

Код: proto

Усл. видимости: нет

По умолчанию: T30

Выбор факсимильного протокола.
  • Авто (auto, 0) – Сначала производится попытка переключиться в протокол T38, а при отказе удаленной стороны производится переключение в T30.
  • T30 (t30, 1) – Переключение в T30 и ожидание переключения в T30 удаленной стороны.
  • T38 (t38, 2) – Переключение в T38, а при отказе удаленной стороны, завершение работы с ошибкой.
Название: Таймаут, с

Код: timeoutSec

Усл. видимости: нет

По умолчанию: — 

Таймаут приема до автоматического прерывания, в секундах.
Название: Файл

Код: file

Усл. видимости: да

По умолчанию: — 

Файл для отправки факсимильным сообщением.

Может быть выбран в одном из режимов:

  • статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
  • сформированный аргументами путь, который должен включать одну из файловых категорий.

Формат файла: tiff – одностраничное или многостраничное битовое изображение.

Отправка сообщения осуществляется сервером с ролью mg, обслуживающим текущий звонок. Перенос всегда происходит внутри сайта.

Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при завершении операции по набору нужного числа символов.
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при завершении по таймауту.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае возникновения ошибки.


Компонент Прием факса

Переключается в режим приема изображения по факсимильному протоколу T.30 или T.38. Компонент завершает работу при успешном приеме или по истечении установленного таймаута. Размещает файл во временном каталоге на время жизни сценария. Для сохранения файла от сценария требуется последующее перемещение его в любое место стационарного хранения.

Table 1. Системные характеристики
Индекс 214
Краткое название fax_receive
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_fax_receive
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, замыкающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Протокол

Код: proto

Усл. видимости: нет

По умолчанию: T30

Выбор факсимильного протокола.
  • Авто (auto, 0) – Сначала производится попытка переключиться в протокол T38, а при отказе удаленной стороны производится переключение в T30.
  • T30 (t30, 1) – Переключение в T30 и ожидание переключения в T30 удаленной стороны.
  • T38 (t38, 2) – Переключение в T38, а при отказе удаленной стороны, завершение работы с ошибкой.
Название: Таймаут, с

Код: timeoutSec

Усл. видимости: нет

По умолчанию: — 

Таймаут приема до автоматического прерывания, в секундах.
Название: Сохранить путь

Код: pathToVarMode

Усл. видимости: нет

По умолчанию: Да

Выключатель сохранения пути к файлу с записью в переменную и выбор содержания.

Возможные варианты:

  • Не сохранять (dont_save, 0)
  • С ключом папки (script_key_path, 1) – Значение включает в категорию, относительный путь и имя файла.
  • Только имя файла (only_file_name, 2) – Значение содержит только имя файла.
Название: Путь в переменную

Код: nameVar

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения пути к файлу с принятым факсимильным сообщением.

Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.

Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.

Формат файла: tiff – одностраничное или многостраничное битовое изображение.

Запись сообщения осуществляется сервером с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.

Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при завершении операции по набору нужного числа символов.
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при завершении по таймауту.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае возникновения ошибки.


Компонент Перевод с подменой плеча

Производит перевод абонента текущего звонка на другой указанный диалог путем отправки одному из его абонентов SIP-запроса REFER с атрибутом Replaces. После успешного завершения операции выполнение основной ветки сценария прерывается.

Автоматически производит подписку на получение событий о состоянии перевода.

При плановом протекании процесса такой перевод завершается в течение 1 секунды. Некоторые абонентские устройства и приложения осуществляют запрос к пользователю с ожиданием его подтверждения при подмене звонка. Это может неограниченно увеличить время операции. Однако спустя 60 секунд управление в любом случае будет передано следующему компоненту по ветке "Время подписки".

Компонент предназначен исключительно для внутренних нужд системы.

Table 1. Системные характеристики
Индекс 215
Краткое название refer_replace
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_refer_replace
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, прерывающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: URI адресата

Код: referToUri

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий значение заголовка ReferTo отправляемого SIP-запроса REFER.

Определяет URI абонента, соответствующий значению URI в заголовке To или From подменяемого диалога.

Например: sip:user1@domain1.

Название: Замещаемый CallId

Код: replacesCallId

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий основное значение параметра Replaces в заголовке ReferTo отправляемого SIP-запроса REFER.

Определяет CallId подменяемого плеча.

Название: Замещаемый To-tag

Код: replacesToTag

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий значение атрибута to-tag параметра Replaces в заголовке ReferTo отправляемого SIP-запроса REFER.
Название: Замещаемый From-tag

Код: replacesFromTag

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий значение атрибута from-tag параметра Replaces в заголовке ReferTo отправляемого SIP-запроса REFER.
Название: Режим re-INVITE

Код: reinviteMode

Усл. видимости: нет

По умолчанию: Не использовать

Выбор режима предварительного преобразования медиа-сессии текущего диалога перед отправкой SIP-запроса REFER.

Возможные варианты:

  • Не использовать (not_used, 0) – Не производит преобразования.
  • Авто (auto, 1) – По текущим настройкам системы аналогично режиму inactive.
  • sendonly (2) – Переводит медиа-сессию в режим удержания путем отправки re-INVITE с SDP, где у медиа-стримов выставлен атрибут a=sendonly.
  • inactive (3) – Переводит медиа-сессию в режим удержания путем отправки re-INVITE с SDP, где у медиа-стримов выставлен атрибут a=inactive (не соответствует RFC-6337 п.5.3.).
Название: Применять huntblock

Код: huntblockenabled

Усл. видимости: нет

По умолчанию: false

Включить/выключить применение huntblock.
Название: Код hunt

Код: huntblockcode

Усл. видимости: нет

По умолчанию: — 

Код объекта доменного центра hunt. Применяется в случае указания huntblockenabled=true
Название: Переход, время подписки

Код: transferSubTerminated

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление, если истекло время подписки, а подтверждения получения окончательного ответа не последовало.
Название: Переход, отказ

Код: transferRejected

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае, если при вызове получен неудачный окончательный ответ: 3xx-6xx (на REFER или INVITE).
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае, если за ограниченное время не получен окончательный ответ на отправленный SIP-запрос re-INVITE или REFER.


Компонент Перевод с контролируемым вызовом

Производит контролируемый перевод на номер. Осуществляет самостоятельный вызов номера посредством нового экземпляра обработчика сценариев IVR, откладывая непосредственно перевод до момента, когда абонент уже ответил и ожидает. После ответа абонента, ему может быть предварительно воспроизведен IVR сценарий. Непосредственно перевод осуществляется отправкой абоненту SIP-запроса REFER с атрибутом Replaces. Вызов абонента может быть осуществлен с любыми параметрами, в том числе и без последующего выполнения IVR-сценария. После успешного завершения операции выполнение основной ветки сценария прерывается. На любом шаге процесса может произойти плановый отказ, тогда управление передается следующему компоненту по соответствующей ветке перехода.

Автоматически производит подписку на получение событий о состоянии перевода. Общее время работы компонента складывается из времени набора указанного номера, ожидания ответа, активности IVR-сценария предварительного воспроизведения.

Некоторые абонентские устройства и приложения осуществляют запрос к пользователю с ожиданием его подтверждения при подмене звонка. Это может неограниченно увеличить время операции. Однако спустя 60 секунд управление в любом случае будет передано следующему компоненту по ветке "Время подписки".

При вызове абонента по номеру используется стандартный процесс маршрутизации от имени текущего сценария IVR.

При необходимости следует заполнять интервал ожидания соединения мелодией фонового воспроизведения (предварительно установленный компонент воспроизведения). Медиа-режим sendonly с автоматически подключаемой мелодией ожидания активируется только непосредственно перед отправкой запроса REFER, и в случае компонента контролируемого перевода является кратковременным и не обеспечивает функциональности воспроизведения в полной мере.

Table 1. Системные характеристики
Индекс 217
Краткое название refer_attended
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_refer_attended
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, прерывающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Номер

Код: number

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий телефонный номер абонента для осуществления перевода.
Название: Исходящий номер

Код: callerId

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий CallerId – значение username для подстановки в URI заголовка From отправляемого SIP-запроса INVITE.
Название: Исходящее имя

Код: callerName

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий CallerName – значение displayname для подстановки в URI заголовка From отправляемого SIP-запроса INVITE.
Название: Время набора, с

Код: dialingTimeout

Усл. видимости: нет

По умолчанию: — 

Нижнее ограничение на время вызова абонента.

По умолчанию время вызова внутренних абонентов 30 секунд, и может быть изменено в свойствах учетной записи SIP-пользователя.

Название: Источник сценария IVR

Код: setScrMode

Усл. видимости: нет

По умолчанию: ``

Способ выбора IVR-сценария для предварительного воспроизведения вызываемому абоненту.

Возможные значения:

  • Не использовать (none,3) – Не использовать сценарий, только осуществить дозвон, проконтролировать ответ и переключить.
  • Из списка (code_sel,2) – Указание кода сценария с помощью аргумента. Применяет значение свойства Сценарий.
  • По коду (code,0) – Указание кода сценария с помощью аргумента. Применяет значение свойства Код сценария.
  • JSON (body,1) – Указание кода сценария с помощью аргумента. Применяет значение свойства Тело сценария.

Сценарий предварительного воспроизведения должен успеть до таймаута завершиться компонентом Стоп для успешного осуществления перевода.

Название: Код сценария

Код: ivrScriptCode

Усл. видимости: да

По умолчанию: — 

Аргумент с кодом IVR-сценария в текущем домене.
Название: Тело сценария

Код: ivrScriptJson

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий JSON-структуру с телом IVR-сценария (упакованный в строку JSON-массив).

Формат структуры аналогичен разделу `scriptdata.objects`" в сущности IVR сценария.

Название: Сценарий

Код: ivrScriptCodeSel

Усл. видимости: нет

По умолчанию: — 

Выпадающий список с кодами сценариев. Содержит все доступные (нескрытые) IVR сценарии, содержащиеся в текущем домене.
Название: Значения переменных

Код: ivrScriptVarValuesT

Усл. видимости: да

По умолчанию: — 

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

Доступно только если используется сценарий IVR предварительного воспроизведения вызываемому абоненту.

Ключи - названия переменных сценария IVR.

Сопоставление происходит по именам переменных, значения присваиваются только тем переменным, которые определены в сценарии.

Если запускаемый сценарий IVR передает управление вложенному, то присвоение значений каждой из указанных переменных производится не более одного раза, но может откладываться вплоть до загрузки вложенного сценария, имеющего переменную с соответствующим именем.

Установленные таким образом значения приоритетны перед значениями по умолчанию внутри сценария IVR.

Название: Параметр 1

Код: param1

Усл. видимости: да

По умолчанию: — 

Первый параметр для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений startparam(1) или через сохранение значения в компоненте Старт.
Название: Параметр 2

Код: param2

Усл. видимости: да

По умолчанию: — 

Второй параметр для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений startparam(2).
Название: Параметр 3

Код: param3

Усл. видимости: да

По умолчанию: — 

Третий параметр для инициируемого IVR-сценария Доступ к значению осуществляется через функцию выражений startparam(3).
Название: Параметр 4

Код: param4

Усл. видимости: да

По умолчанию: — 

Четвертый параметр для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений startparam(4).
Название: Параметр 5

Код: param5

Усл. видимости: да

По умолчанию: — 

Пятый параметр для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений startparam(5).
Название: Прочие параметры

Код: paramsOther

Усл. видимости: да

По умолчанию: — 

JSON-массив, содержащий параметры 6, 7, 8 и т.д. для инициируемого IVR-сценария. Доступ к значению осуществляется через функцию выражений startparam(N), где N > 6.
Название: Время IVR, c

Код: ivrTimeout

Усл. видимости: нет

По умолчанию: — 

Таймаут ожидания выполнения IVR сценария.
Название: Режим re-INVITE

Код: reinviteMode

Усл. видимости: нет

По умолчанию: Не использовать

Выбор режима предварительного преобразования медиа-сессии текущего диалога перед отправкой SIP-запроса REFER.

Возможные варианты:

  • Не использовать (not_used, 0) – Не производит преобразования.
  • Авто (auto, 1) – По текущим настройкам системы аналогично режиму inactive.
  • sendonly (2) – Переводит медиа-сессию в режим удержания путем отправки re-INVITE с SDP, где у медиа-стримов выставлен атрибут a=sendonly.
  • inactive (3) – Переводит медиа-сессию в режим удержания путем отправки re-INVITE с SDP, где у медиа-стримов выставлен атрибут a=inactive (не соответствует RFC-6337 п.5.3.).
Название: Код результата в переменную

Код: resultCode

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения кода внутренней ошибки.

Возможные варианты:

  • "001" – Ошибка инициации вызова.
  • "002" – Неудача вызова.
Название: Описание результата в переменную

Код: resultDescription

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения текстового описания внутренней ошибки.
Название: SIP-код ответа в переменную

Код: resultSipCode

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения кода SIP-ответа на исходящий запрос INVITE.
Название: Причина SIP ответа в переменную

Код: resultSipReason

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения фразы SIP-ответа на исходящий запрос INVITE.
Название: Заголовки SIP ответа в переменную

Код: resultSipHeaders

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения совокупности заголовков SIP-ответа на исходящий запрос INVITE.
Название: Переход, время подписки

Код: transferSubTerminated

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление, если истекло время подписки, а подтверждения получения окончательного ответа не последовало.
Название: Переход, отказ

Код: transferRejected

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае, если при вызове получен неудачный окончательный ответ: 3xx-6xx (на REFER или INVITE).
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае, если за ограниченное время не получен окончательный ответ на отправленный SIP-запрос re-INVITE или REFER.
Название: Переход, неудача

Код: transferFailed

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае, если вызываемый абонент не ответил, либо ответил неудачным окончательным кодом 3xx-6xx.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае, если истекло время ожидания окончательного ответа на отправленный SIP-запрос INVITE, либо завершения IVR сценария предварительного воспроизведения.


Компонент Парковка

Осуществляет постановку текущего звонка на парковку (размещает информацию в хранилище), либо взятие абонента с парковки (переключает текущего абонента на абонента из парковки). Компонент используется в сценариях постановки и взятия с парковки, применяемым в ходе вызова featurecode с типом parking. Может использоваться и в других сценариях.

Table 1. Системные характеристики
Индекс 218
Краткое название parking
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_parking
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, замыкающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Действие

Код: action

Усл. видимости: нет

По умолчанию: Разместить на парковке

Возможные значения:
  • Разместить на парковке (push, 0) – Осуществляет сохранение данных о текущем звонке в журнал парковки и возвращает управление для дальнейшего перехода к воспроизведению. Запись из журнала автоматически удаляется при завершении сценария.
  • Взять с парковки (pop, 1) – Осуществляет поиск данных в журнале парковки, поиск активного звонка и переключение на него текущего абонента путем отправки SIP-запроса REFER с опцией Replaces. Применяет алгоритм компонента Перевод с подменой плеча.
Название: Номер парковки

Код: parkingCode

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий номер парковки, с которым связана текущая операция.

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

Название: Код ошибки в переменную

Код: errorCodeVar

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения кода ошибки.
Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при успешном завершении операции размещения на парковку.
Название: Переход, занято

Код: transferBusy

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае, если при размещении на парковку указанное парковочное место занято.
Название: Переход, не найдено

Код: transferNotFound

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление если при попытке взять абонента с парковки указанное парковочное место пусто.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при возникновении ошибки.

Компоненты синтеза и распознавания речи

Компонент Синтез речи (MRCPv2)

Осуществляет синтез речи по тексту и воспроизведение текущему абоненту. Взаимодействует с произвольным сервером TTS по протоколу MRCPv2. Может иметь технические ограничения горизонтальной масштабируемости из-за односерверного исполнения.

Table 1. Системные характеристики
Индекс 220
Краткое название tts
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_tts
Режим Асинхронный
Состояние Реализация отложена

Компонент Распознавание речи (MRCPv2)

Осуществляет распознавание речи абонента в текстовый вид. Взаимодействует с произвольным сервером ASR по протоколу MRCPv2. Может иметь технические ограничения горизонтальной масштабируемости из-за односерверного исполнения.

Table 1. Системные характеристики
Индекс 221
Краткое название asr
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_asr
Режим Асинхронный
Состояние Реализация отложена


Компонент Синтез речи (Yandex Cloud SpeechKit)

Осуществляет синтез речи по тексту и воспроизведение текущему абоненту. Сервис предоставляется облаком Yandex Cloud SpeechKit по протоколу HTTP (APIv1 REST). Не имеет технических ограничений по производительности.

Порядок регистрации учетной записи Yandex-облака и стоимость сервиса см. на Яндексе.

Настройка токенов производится в разделе настройки домена, поле 'yandex_cloud'.

Позволяет воспроизводить результат, а также просто записывать его в аудио-файл.

В режиме воспроизведения файл сначала синтезируется и выкачивается полностью, затем начинается воспроизведение.

Скорость синтеза речи ориентировочно в 10 раз быстрее реального времени ее воспроизведения.

Table 1. Системные характеристики
Индекс 222
Краткое название tts_yandex
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_tts_yandex
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, прерывающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Аккаунт Яндекс

Код: accountKey

Усл. видимости: нет

По умолчанию: default

Указание на аккаунт Яндекса, опции которого берутся для подключения к яндексу.

В список попадает значение 'default', устанавливающее к использованию корневые поля 'speech' и 'storage' в объекте 'settings.yandex_cloud'.

Дополнительно в список попадают ключи объекта 'settings.yandex_cloud.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа.

Название: Режим

Код: mode

Усл. видимости: нет

По умолчанию: Воспроизведение

Режим работы компонента после получения ответа от сервиса TTS Yandex Cloud SpeechKit.

Возможные варианты:

  • Воспроизведение (play, 0) – Воспроизведение синтезированной речи абоненту с последующим удалением файла.
  • Генерация файла (file, 1) – Сохранение аудио-файла в локальный временный каталог и возврат пути к файлу в переменную.
Название: Текст

Код: text

Усл. видимости: нет

По умолчанию: — 

Текст, подлежащий синтезу и последующему воспроизведению. Ограничение на длину строки: 5000 символов.
Название: Язык

Код: lang

Усл. видимости: нет

По умолчанию: Русский

Параметр сервиса TTS Yandex Cloud SpeechKit: язык синтеза.

Возможные варианты:

  • ru-RU (0) – Русский
  • en-US (1) – Английский
  • de-DE (2) – Немецкий
  • he-IL (6) – Иврит
  • kk-KZ (8) – Казахский
  • uz-UZ (15) – Узбекский
Название: Голос

Код: voice

Усл. видимости: нет

По умолчанию: Alyss (ж)

Параметр сервиса TTS Yandex Cloud SpeechKit: голос синтезируемой речи.

Возможные варианты:

  • Alyss (ж) (0)
  • Jane (ж) (1)
  • Oksana (ж) (2)
  • Omazh (ж) (3)
  • Zahar (м) (4)
  • Ermil (м) (5)
  • Alena (ж) (6)
  • Filipp (м) (7)
  • Другой (other, 100) – Указание произвольного голоса через аргумент.
Название: Другой голос

Код: voiceOther

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий название голоса для сервиса TTS Yandex Cloud SpeechKit. Поддерживаемые голоса
Название: Эмоция

Код: emotion

Усл. видимости: нет

По умолчанию: Good

Параметр сервиса TTS Yandex Cloud SpeechKit: эмоциональный эффект синтезируемой речи, амплуа.

Возможные варианты:

  • Good (0)
  • Evil (1)
  • Neutral (2)
Название: Темп речи (0.1 – 3.0)

Код: speed

Усл. видимости: нет

По умолчанию: 1.0

Параметр сервиса TTS Yandex Cloud SpeechKit: темп синтезируемой речи.

Дробное значение от 0.1 до 3.0 с размерностью 0.1

Название: Прерывать по DTMF

Код: checkDTMF

Усл. видимости: нет

По умолчанию: Нет

Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции.
Название: Буфер для DTMF

Код: dtmfBuffer

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения получаемых DTMF-символов.
Название: Очистить буфер DTMF

Код: clearDtmfBuffer

Усл. видимости: да

По умолчанию: Да

Выключатель предварительной очистки буфера DTMF.
Название: Количество символов

Код: maxSymbolCount

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий ограничение на количество вводимых символов.

После получения во время исполнения компонента указанного количества символов DTMF завершается операции воспроизведения.

Название: Символы прерывания

Код: interruptSymbols

Усл. видимости: да

По умолчанию: — 

Строка, содержащая последовательности символов прерывания через запятую.

После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, завершается операция воспроизведения.

Например, *, 7, 123, 9395.

Название: Таймаут ожидания ответа, с

Код: responseTimeoutSec

Усл. видимости: нет

По умолчанию: — 

Таймаут ожидания ответа от сервиса TTS Yandex Cloud SpeechKit после отправки ему запроса.

По истечении таймаута управление передается следующему компоненту по ветке Время.

Название: Код ответа в переменную

Код: varHttpCode

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения кода HTTP-ответа сервиса распознавания.
Название: Путь к файлу в переменную

Код: varFile

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения пути к аудио-файлу с синтезированной речью в локальном временном каталоге.

Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.

Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае успешного завершения операции.
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае возникновения ошибки.


Компонент Распознавание речи (Yandex Cloud SpeechKit)

Осуществляет распознавание речи абонента в текстовый вид. Сервис предоставляется облаком Yandex Cloud SpeechKit по протоколу HTTP. Не имеет технических ограничений по производительности.

Порядок регистрации учетной записи Yandex-облака и стоимость сервиса см. на Яндексе.

Настройка токенов производится в разделе настройки домена, поле 'yandex_cloud'..

Позволяет прерывать по тишине после произнесенной фразы.

Table 1. Системные характеристики
Индекс 223
Краткое название asr_yandex
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_asr_yandex
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, прерывающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Аккаунт Яндекс

Код: accountKey

Усл. видимости: нет

По умолчанию: default

Указание на аккаунт Яндекса, опции которого берутся для подключения к яндексу.

В список попадает значение 'default', устанавливающее к использованию корневые поля 'speech' и 'storage' в объекте 'settings.yandex_cloud'.

Дополнительно в список попадают ключи объекта 'settings.yandex_cloud.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа.

Название: Тема

Код: topic

Усл. видимости: нет

По умолчанию: general

Параметр сервиса распознавания Yandex Cloud SpeechKit: тема распознавания.

Возможные варианты:

  • general (0)
  • maps (1)
  • dates (2)
  • names (3)
  • numbers (4)
  • Другая (custom, 100) – Указание произвольной темы через аргумент.
Название: Пользовательская тема

Код: topicCustom

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий пользовательскую тему для сервиса распознавания Yandex Cloud SpeechKit.
Название: Язык

Код: lang

Усл. видимости: нет

По умолчанию: Русский

Параметр сервиса распознавания Yandex Cloud SpeechKit: язык распознавания.

Возможные варианты:

  • Авто (100) – Автоматическое определение языка
  • ru-RU (0) – Русский
  • en-US (1) – Английский
  • de-DE (2) – Немецкий
  • es-ES (3) – Испанский
  • fi-FI (4) – Финский
  • fr-FR (5) – Французский
  • he-HE (6) – Иврит
  • it-IT (7) – Итальянский
  • kk-KZ (8) – Казахский
  • nl-NL (9) – Голландский
  • pl-PL (10) – Польский
  • pt-PT (11) – Португальский
  • pt-BR (12) – Бразильский португальский
  • sv-SE (13) – Шведский
  • tr-TR (14) – Турецкий
  • uz-UZ (15) – Узбекский (латиница)
Название: Фильтр ненормативной лексики

Код: profanityFilter

Усл. видимости: нет

По умолчанию: Выключить

Параметр сервиса распознавания Yandex Cloud SpeechKit: выключатель фильтра ненормативной лексики.
Название: Таймаут записи, с

Код: recordTimeoutSec

Усл. видимости: нет

По умолчанию: 30

Максимально допустимое время записи с момента завершения предварительного воспроизведения, в секундах.
Название: Прерывать по DTMF

Код: checkDTMF

Усл. видимости: нет

По умолчанию: нет

Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции.
Название: Буфер для DTMF

Код: dtmfBuffer

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения получаемых DTMF-символов.
Название: Очистить буфер DTMF

Код: clearDtmfBuffer

Усл. видимости: да

По умолчанию: Да

Выключатель предварительной очистки буфера DTMF.
Название: Количество символов

Код: maxSymbolCount

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий ограничение на количество вводимых символов.

После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.

Название: Символы прерывания

Код: interruptSymbols

Усл. видимости: да

По умолчанию: — 

Строка, содержащая последовательности символов прерывания через запятую.

После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.

Например, *, 7, 123, 9395.

Название: Прерывать при обнаружении тишины

Код: abortOnSilence

Усл. видимости: нет

По умолчанию: Да

Выключатель детектора голоса (VAD) для автоматического завершения записи и отправки последней порции голосовых данных сервису распознавания.

Критерием для остановки является наличие голоса в течение не менее чем 300 мс и последующее его отсутствие в течение указанного интервала.

Название: Интервал тишины, с

Код: silenceTimeoutSec

Усл. видимости: да

По умолчанию: 2

Аргумент, содержащий время таймаута при обнаружении тишины в секундах. При появлении голоса выше порога чувствительности в течение указанного таймаута, таймер сбрасывается вплоть до обнаружения тишины снова.

В большинстве случаев 2 секунды - комфортный интервал.

Может указываться в формате десятичной дроби, например, '1.6'.

Название: Порог VAD, -дБ

Код: vadThreshold

Усл. видимости: да

По умолчанию: 30

Аргумент, устанавливающий порог VAD. Параметр VAD-детектора.

Указанное значение применяется с отрицательным знаком (в децибелах) для определения порога отсечения тишины относительно возможного максимума.

Поток анализируется фреймами по 20 мс. Каждый звуковой фрейм на основании порога отсечения рассматривается либо как голос, либо как тишина (средний уровень громкости фрейма).

Таким образом, детектор имеет два состояния: голос и тишина. При переходе между состояниями генерируется событие о переходе в другое состояние. Изначально детектор находится в состоянии тишины.

Генерация сигнала обнаружения голоса происходит в состоянии тишины тогда, когда несколько фреймов подряд являются голосовыми (параметр 'Порог голоса, мс').

Генерация сигнала обнаружения тишины происходит в состоянии голоса тогда, после того, как несколько фреймов подряд признаны тишиной (параметр 'Порог тишины, мс').

При значении 30 детектор лучше определяет тишину, при значении 40 детектор лучше определяет появление голоса.

Выход из компонента происходит по истечении таймаута, указанного в поле Интервал тишины, с, отсчитывая с начала отрезка тишины, обнаруженного детектором из состояния голоса.

Название: Голос, мин. длительность, мс

Код: vadVoiceMinMs

Усл. видимости: да

По умолчанию: 120

Аргумент, устанавливающий минимальную пороговую длительность VAD для генерации сигнала VAD UP.

Параметр VAD-детектора.

Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем выше установленного порога VAD.

Через указанное значение определяется количество фреймов.

Название: Голос, допустимое отклонение, %

Код: vadVoiceTol

Усл. видимости: да

По умолчанию: 20

Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.

Параметр VAD-детектора.

Например минимальная длительность задана 210 (мс), отклонение 20 (%). Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.

Значение 0 означает что все 11 фреймов подряд должны быть голосовыми (иметь средний уровень выше порога VAD).

Название: Тишина, мин. длительность, мс

Код: vadSilenceMinMs

Усл. видимости: да

По умолчанию: 500

Аргумент, устанавливающий минимальную пороговую длительность фреймов с тишиной для генерации сигнала VAD DOWN.

Параметр VAD-детектора.

Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем ниже установленного порога VAD.

Через указанное значение определяется количество фреймов.

Название: Тишина, допустимое отклонение, %

Код: vadSilenceTol

Усл. видимости: да

По умолчанию: 10

Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.

Параметр VAD-детектора.

Например минимальная длительность задана 210 мс, отклонение 20%. Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.

Значение 0 означает что все 11 фреймов подряд должны быть тишиной (иметь средний уровень ниже порога VAD).

Название: Таймаут ожидания ответа, с

Код: responseTimeoutSec

Усл. видимости: нет

По умолчанию: 5

Таймаут ожидания ответа от сервиса распознавания Yandex Cloud SpeechKit после отправки ему последней порции голосовых данных.

По истечении таймаута управление передается следующему компоненту по ветке Время.

Название: Результат в переменную

Код: varText

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения текстового результата распознавания.
Название: Код ответа в переменную

Код: varHttpCode

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения кода HTTP-ответа сервиса распознавания.
Название: Тело ответа в переменную

Код: varHttpBody

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения полного содержания HTTP-ответа сервиса распознавания.
Название: Сохранить файл записи

Код: saveRec

Усл. видимости: нет

По умолчанию: Нет

Выключатель сохранения файла записи, отправленного сервису распознавания.
Название: Путь к файлу в переменную

Код: varRecordPath

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения пути к файлу записи.

Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.

Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.

Запись осуществляется на сервере с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.

Название: Предварительное воспроизведение

Код: prePlayFile

Усл. видимости: нет

По умолчанию: — 

Звуковой файл предварительного воспроизведения абоненту, во время которого также активирован голосовой детектор.

При отсутствии голоса от абонента (с учетом шумового порога VAD-детектора), отправка данных на сервис распознавания не производится.

Может быть выбран в одном из режимов:

  • статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
  • сформированный аргументами путь, который должен включать одну из файловых категорий.
Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае успешного завершения операции.
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса распознавания.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае возникновения ошибки.


Компонент Синтез речи (Sber SaluteSpeech)

Осуществляет синтез речи по тексту и воспроизведение текущему абоненту. Используется on-premise сервис Sber SaluteSpeech, канал GRPC. +

Настройка точек подключения в разделе настройки домена, поле 'sber_salute'.

Позволяет воспроизводить результат, а также просто записывать его в аудио-файл.

:description1: В режиме воспроизведения речь начинает воспроизводиться при появлении в буфере данных длительностью на 1.5 секунды.

В зависимости от того, настроено ли на сервисе синтеза кэширование и имеются ли данные для синтезируемого текста, выдача первых полутора секунд может производиться от 300 до 1500 мс.

Table 1. Системные характеристики
Индекс 226
Краткое название tts_sber
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_tts_sber
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, прерывающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Аккаунт Сбер Салют

Код: accountKey

Усл. видимости: нет

По умолчанию: default

Указание на аккаунт, определяющего точки подключения к сервису Sber SaluteSpeech.

В список попадает значение 'default', устанавливающее к использованию корневые поля 'speech' в объекте 'settings.sber_salute'.

Дополнительно в список попадают ключи объекта 'settings.sber_salute.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа.

Название: Режим

Код: mode

Усл. видимости: нет

По умолчанию: Воспроизведение

Режим работы компонента после получения ответа от сервиса TTS Sber SaluteSpeech.

Возможные варианты:

  • Воспроизведение (play, 0) – Воспроизведение синтезированной речи абоненту с последующим удалением файла.
  • Генерация файла (file, 1) – Сохранение аудио-файла в локальный временный каталог и возврат пути к файлу в переменную.
Название: Тип контента

Код: contentType

Усл. видимости: нет

По умолчанию: TEXT

Параметр сервиса TTS Sber SluteSpeech: формат данных, передаваемых в теле запроса (content_type).

Возможные варианты:

  • TEXT (text, 0) – простой текст.
  • SSML (ssml, 1) – SSML-разметка с текстом.
Название: Текст

Код: text

Усл. видимости: нет

По умолчанию: — 

Текст, подлежащий синтезу и последующему воспроизведению, либо SSML-разметка с текстом (необходимо установить тип контента: SSML).
Название: Язык

Код: lang

Усл. видимости: нет

По умолчанию: ru-RU

Параметр сервиса TTS Sber SaluteSpeech: язык синтеза.

Возможные варианты:

  • ru-RU (0) – Русский язык
  • en-US (1) – Английский язык
  • kk-KZ (2) – Казахский язык
Название: Голос

Код: voice

Усл. видимости: нет

По умолчанию: Alyss (ж)

Параметр сервиса TTS Sber SaluteSpeech: голос синтезируемой речи (voice).

Возможные варианты:

  • Наталья (ж) (0)
  • Борис (м) (1)
  • Марфа (ж) (2)
  • Тарас (м) (3)
  • Александра (ж) (4)
  • Сергей (м) (5)
  • Kira (ж, англ) (5)
  • Другой (other, 100) – Указание произвольного голоса через аргумент.
Название: Другой голос

Код: voiceOther

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий название голоса для сервиса TTS Sber SaluteSpeech.
Название: Кэширование

Код: useCache

Усл. видимости: нет

По умолчанию: нет

Режим кэширования результатов синтеза речи.

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

Если данные синтеза регулярно изменяются, такие операции вредно кэшировать, поскольку придется определять и настраивать процедуру их периодической очистки.

Первый раз при отсутствии значения файл генерируется с помощью сервиса и сохраняется в папку ':GlobalShare/domains/DOMAIN/cache/sber_tts/…​'.

В дальнейшем при обнаружении в кэше файла, обращений к сервису TTS Sber SaluteSpeech не происходит, файл копируется из кэша.

В уникальном имени файла скрывается отображение параметров синтеза: текст, язык, голос.

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

Возможные варианты:

  • Выключить (0) – Кэширование не используется. Каждый запрос отправляется на синтез в сервис TTS Sber SaluteSpeech.
  • Включить (1) – Кэширование используется.
Название: Прерывать по DTMF

Код: checkDTMF

Усл. видимости: нет

По умолчанию: Нет

Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции.
Название: Буфер для DTMF

Код: dtmfBuffer

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения получаемых DTMF-символов.
Название: Очистить буфер DTMF

Код: clearDtmfBuffer

Усл. видимости: да

По умолчанию: Да

Выключатель предварительной очистки буфера DTMF.
Название: Количество символов

Код: maxSymbolCount

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий ограничение на количество вводимых символов.

После получения во время исполнения компонента указанного количества символов DTMF завершается операции воспроизведения.

Название: Символы прерывания

Код: interruptSymbols

Усл. видимости: да

По умолчанию: — 

Строка, содержащая последовательности символов прерывания через запятую.

После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, завершается операция воспроизведения.

Например, *, 7, 123, 9395.

Название: Таймаут ожидания ответа, с

Код: responseTimeoutSec

Усл. видимости: нет

По умолчанию: — 

Таймаут ожидания ответа от сервиса TTS Sber SaluteSpeech после отправки ему запроса.

По истечении таймаута управление передается следующему компоненту по ветке Время.

Название: Код ответа в переменную

Код: varHttpCode

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения кода HTTP-ответа сервиса распознавания.
Название: Путь к файлу в переменную

Код: varFile

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения пути к аудио-файлу с синтезированной речью в локальном временном каталоге.

Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.

Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае успешного завершения операции.
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае возникновения ошибки.


Компонент Распознавание речи (Sber SaluteSpeech)

Осуществляет распознавание речи абонента в текстовый вид. Используется on-premise сервис Sber SaluteSpeech, канал GRPC.

Настройка точек подключения производится в разделе настройки домена, поле 'sber_salute'.

Позволяет запускать предварительное воспроизведение файла, прерываемое голосом абонента.

Позволяет прерывать по тишине после произнесенной фразы. Позволяет быстро отсекать одну фразу средствами сервиса распознавания, а также настраивать ожидание нескольких фраз.

Table 1. Системные характеристики
Индекс 223
Краткое название asr_sber
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_asr_sber
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, прерывающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Аккаунт Сбер Салют

Код: accountKey

Усл. видимости: нет

По умолчанию: default

Указание на аккаунт, определяющего точки подключения к сервису Sber SaluteSpeech.

В список попадает значение 'default', устанавливающее к использованию корневые поля 'speech' в объекте 'settings.sber_salute'.

Дополнительно в список попадают ключи объекта 'settings.sber_salute.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа.

Название: Набор грамматик

Код: model

Усл. видимости: нет

По умолчанию: callcenter

Параметр сервиса распознавания Sber SaluteSpeech: название набора грамматик.
Название: Язык

Код: lang

Усл. видимости: нет

По умолчанию: ru-RU

Параметр сервиса распознавания Sber SaluteSpeech: язык распознавания.

Возможные варианты:

  • ru-RU (0) – Русский язык
  • en-US (1) – Английский язык
  • kk-KZ (2) – Казахский язык
Название: Фильтр ненормативной лексики

Код: profanityFilter

Усл. видимости: нет

По умолчанию: Выключить

Параметр сервиса распознавания Sber SaluteSpeech: выключатель фильтра ненормативной лексики.
Название: Несколько предложений

Код: multiUtterance

Усл. видимости: нет

По умолчанию: Выключить

Параметр сервиса распознавания Sber SaluteSpeech: ожидание нескольких предложений.

Если выключено, то ответ приходит быстро вместе с обнаружением окончания первого предложения.

Если включено, то собираются и склеиваются все результаты. Окончание распознавания определяется параметрами 'Таймаут записи, с' и ''Интервал тишины, с'".

"Название: Длина предложения максимальная, с

Код: maxSpeechTimeoutSec

Усл. видимости: нет

По умолчанию: 20

Параметр сервиса распознавания Sber SaluteSpeech: максимальная длительность предложения. Название: В кириллицу

Код: forceCyrillic

Усл. видимости: нет

По умолчанию: Выключить

Параметр сервиса распознавания Sber SaluteSpeech: Принудительное преобразование результата в кириллицу. Название: Таймаут записи, с

Код: recordTimeoutSec

Усл. видимости: нет

По умолчанию: 30

Максимально допустимое время записи с момента завершения предварительного воспроизведения, в секундах. Название: Прерывать по DTMF

Код: checkDTMF

Усл. видимости: нет

По умолчанию: нет

Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции. Название: Буфер для DTMF

Код: dtmfBuffer

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения получаемых DTMF-символов. Название: Очистить буфер DTMF

Код: clearDtmfBuffer

Усл. видимости: да

По умолчанию: Да

Выключатель предварительной очистки буфера DTMF. Название: Количество символов

Код: maxSymbolCount

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий ограничение на количество вводимых символов.

После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.

Название: Символы прерывания

Код: interruptSymbols

Усл. видимости: да

По умолчанию: — 

Строка, содержащая последовательности символов прерывания через запятую.

После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.

Например, *, 7, 123, 9395.

Название: Прерывать при обнаружении тишины

Код: abortOnSilence

Усл. видимости: нет

По умолчанию: Да

Выключатель детектора голоса (VAD) для автоматического завершения записи и отправки последней порции голосовых данных сервису распознавания.

Критерием для остановки является наличие голоса в течение не менее чем 300 мс и последующее его отсутствие в течение указанного интервала.

Название: Интервал тишины, с

Код: silenceTimeoutSec

Усл. видимости: да

По умолчанию: 2

Аргумент, содержащий время таймаута при обнаружении тишины в секундах. При появлении голоса выше порога чувствительности в течение указанного таймаута, таймер сбрасывается вплоть до обнаружения тишины снова.

В большинстве случаев 2 секунды - комфортный интервал.

Может указываться в формате десятичной дроби, например, '1.6'.

Название: Порог VAD, -дБ

Код: vadThreshold

Усл. видимости: да

По умолчанию: 30

Аргумент, устанавливающий порог VAD. Параметр VAD-детектора.

Указанное значение применяется с отрицательным знаком (в децибелах) для определения порога отсечения тишины относительно возможного максимума.

Поток анализируется фреймами по 20 мс. Каждый звуковой фрейм на основании порога отсечения рассматривается либо как голос, либо как тишина (средний уровень громкости фрейма).

Таким образом, детектор имеет два состояния: голос и тишина. При переходе между состояниями генерируется событие о переходе в другое состояние. Изначально детектор находится в состоянии тишины.

Генерация сигнала обнаружения голоса происходит в состоянии тишины тогда, когда несколько фреймов подряд являются голосовыми (параметр 'Порог голоса, мс').

Генерация сигнала обнаружения тишины происходит в состоянии голоса тогда, после того, как несколько фреймов подряд признаны тишиной (параметр 'Порог тишины, мс').

При значении 30 детектор лучше определяет тишину, при значении 40 детектор лучше определяет появление голоса.

Выход из компонента происходит по истечении таймаута, указанного в поле Интервал тишины, с, отсчитывая с начала отрезка тишины, обнаруженного детектором из состояния голоса.

Название: Голос, мин. длительность, мс

Код: vadVoiceMinMs

Усл. видимости: да

По умолчанию: 120

Аргумент, устанавливающий минимальную пороговую длительность VAD для генерации сигнала VAD UP.

Параметр VAD-детектора.

Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем выше установленного порога VAD.

Через указанное значение определяется количество фреймов.

Название: Голос, допустимое отклонение, %

Код: vadVoiceTol

Усл. видимости: да

По умолчанию: 20

Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.

Параметр VAD-детектора.

Например минимальная длительность задана 210 (мс), отклонение 20 (%). Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.

Значение 0 означает что все 11 фреймов подряд должны быть голосовыми (иметь средний уровень выше порога VAD).

Название: Тишина, мин. длительность, мс

Код: vadSilenceMinMs

Усл. видимости: да

По умолчанию: 500

Аргумент, устанавливающий минимальную пороговую длительность фреймов с тишиной для генерации сигнала VAD DOWN.

Параметр VAD-детектора.

Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем ниже установленного порога VAD.

Через указанное значение определяется количество фреймов.

Название: Тишина, допустимое отклонение, %

Код: vadSilenceTol

Усл. видимости: да

По умолчанию: 10

Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.

Параметр VAD-детектора.

Например минимальная длительность задана 210 мс, отклонение 20%. Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.

Значение 0 означает что все 11 фреймов подряд должны быть тишиной (иметь средний уровень ниже порога VAD).

Название: Таймаут ожидания ответа, с

Код: responseTimeoutSec

Усл. видимости: нет

По умолчанию: 5

Таймаут ожидания ответа от сервиса распознавания Sber SaluteSpeech после отправки ему последней порции голосовых данных.

По истечении таймаута управление передается следующему компоненту по ветке Время.

Название: Результат в переменную

Код: varText

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения текстового результата распознавания. Название: Нормализованный результат в переменную

Код: varNormText

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения нормализованного текстового результата распознавания. Название: Код ответа в переменную

Код: varCode

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения кода ответа сервиса распознавания (код эмулируется по аналогии с HTTP: 200, 408, 500). Название: Тело ответа в переменную

Код: varBody

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения полного содержания ответа сервиса распознавания.

Если одно высказывание - объект, если несколько высказываний - массив объектов.

Название: Сохранить файл записи

Код: saveRec

Усл. видимости: нет

По умолчанию: Нет

Выключатель сохранения файла записи, отправленного сервису распознавания. Название: Путь к файлу в переменную

Код: varRecordPath

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения пути к файлу записи.

Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.

Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.

Запись осуществляется на сервере с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.

Название: Предварительное воспроизведение

Код: prePlayFile

Усл. видимости: нет

По умолчанию: — 

Звуковой файл предварительного воспроизведения абоненту, во время которого также активирован голосовой детектор.

При отсутствии голоса от абонента (с учетом шумового порога VAD-детектора), отправка данных на сервис распознавания не производится.

Может быть выбран в одном из режимов:

  • статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
  • сформированный аргументами путь, который должен включать одну из файловых категорий.
Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае успешного завершения операции. Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса распознавания. Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Другие компоненты

Компонент Внешнее управление через API

Переводит сценарий во время своей активности под внешнее управление через API (HTTP/WebSocket). + Если диалог еще не установлен (в событии `api_start` поле `state` имеет значение, отличное от `dialog`), то от управляющей системы требуется соблюдение SIP workflow. То есть необходимо отправлять соответствующие ответов прежде, чем использовать функционал воспроизведения, записи, переводов.

Событие `api_start` может сообщить о следующих состояниях: `dialog`, `early`, `ringing`, `incoming`. В соответствии с ними, а также пользуясь передаваемыми параметрами, внешняя система может определить текущее состояние и выбрать правильное поведение.

До момента отправки ответа 2хх следует: а) Перевод (203, refer) заменять отправкой ответа 3хх (202, `answer`). б) Завершение разговора (201, bye) следует заменять отправкой ответа 4хх-6хх (202, `answer`). в) Не использовать компоненты перевода. г) Не использовать компоненты по работе с медиа-трафиком (воспроизведение, запись и т.д.), за исключением случая, когда текущее состояние диалога - `early`, то есть последний отправленный ответ был `183 Session Progress`.

О начале и завершении работы компонента генерируются события типов `ivrevents.api_start` и `ivrevents.api_stop`. Они отправляются в том числе по подписке в websocket-подключения (сообщение `notify` в рамках token-api `subscribe`).

Управление может перехватить только одна из подключенных систем - та, которая первой отправит сообщение `"ivrapi_accept"` в рамках своего websocket-подключения (token-api: `ivrapi`).

Дальнейшее управление производится через websocket token-api `ivrapi`.

Table 1. Системные характеристики
Индекс 224
Краткое название api
Типы сценариев IVR
Стартовый модуль era_sip_ivr_script_component_api
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, замыкающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Ключ

Код: key

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий ключ. Передается внешней системе в сообщении о начале работы компонента (событие ivrevents.api_start) и завершении работы компонента (событие ivrevents.api_stop).

Внешняя система должна указывать этот ключ рядом с указанием идентификатора IVR-диалога в каждом запросе, отправляемом в рамках websocket token-api ivrapi с целью осуществления внешнего управления этим компонентом.

Название: Параметры

Код: params

Усл. видимости: нет

По умолчанию: — 

Аргумент, содержащий дополнительные параметры для внешней системы.

Указанные параметры передаются в сообщении о начале работы компонента (событие ivrevents.api_start).

Название: Таймаут подтверждения взятия управления, мс

Код: reportTimeoutMs

Усл. видимости: нет

По умолчанию: 3000

Аргумент, определяющий таймаут ожидания подтверждения от одной из подключенных по websocket token api внешних систем, в миллисекундах.
Название: Причина выхода в переменную

Код: varReason

Усл. видимости: нет

По умолчанию: — 

Переменная, куда заносится причина завершения работы компонента.
Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление после завершения работы компонента отключением внешней системы.
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление при завершении по таймауту.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае возникновения ошибки.


Компонент CPD (детектор ответов)

Применяется в исходящих кампаниях для детекции ответа "живого" человека. Выполняет запись разговора в течение указанного времени (5-7 секунд), в течение которых пытается определить тип источника звука.

Определение человека производится по истечении секунды тишины после окончания приветственной реплики абонента.

Определение роботов и автоматов производится по окончанию таймаута или длительной (более 2 секунд) приветственной реплики робота.

Определение тишины производится по окончании указанного интервала времени.

Определение факса производится почти сразу при обнаружении соответствующего тонального сигнала.

Алгоритм CPD, используемый компонентом, не требователен к ресурсам системы.

Table 1. Системные характеристики
Индекс 225
Краткое название cpd
Типы сценариев IVR
Стартовый модуль era_sip_ivr_script_component_cpd
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, замыкающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Таймаут, с

Код: collectTimeSec

Усл. видимости: нет

По умолчанию: 5

Аргумент, содержащий время в секундах. Определяет сколько времени будет накапливаться запись разговора для дальнейшего анализа детектором ответа.
Название: Сохранить файл записи

Код: saveRecord

Усл. видимости: нет

По умолчанию: Нет

Признак сохранения файла записи, отправленного сервису детектора ответа. Сохранение выполняется в каталог /var/lib/era_files/answer_detector_records/<domain>/<type>
  • domain - домен в рамках которого выполнялся разговор.
  • type - тип результата, который вернул детектор ответа.
Название: Результат в переменную

Код: result

Усл. видимости: нет

По умолчанию: — 

Переменная, куда заносится причина завершения работы компонента.
Название: Переход, обнаружено

Код: transferFound

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление после обнаружения "живого" человека детектором ответа.
Название: Переход, не обнаружено

Код: transferNotFound

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае если детектор ответа не обнаружил в записи "живого" человека.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае возникновения ошибки.
Параметризация

Анализ CPD проводится входящим в состав платформы консольным приложения cpd (/era_sip/priv/cpd/cpd).

Компонент запускает CPD в режиме анализа.

В режиме анализа приложение принимает на input порции аудио-данных (PCM 8000Hz 16bit mono), и выдает один из возможных результатов:

  • human
  • ivr
  • tone
  • fax
  • silence

Компонент завершается успехом только при результате 'human'.

Алгоритм может параметризоваться. В качестве параметров используются файлы SettingsML.json и SettingsSpectrum.json.

Файлы располагаются в каталоге ':SYNC/common/cpd'.

Пример командной строки запуска в режиме анализа:

cpd --mode=analyze --ml-settings-path=/some/path/to/SettingsML.json --spectrum-settings-path=/some/path/to/SettingsSpectrum.json --timeout=7000 --recv-timeout=3000

Расшифровка параметров:

--ml-settings-path  -  путь к json-файлу с ML-параметрами, полученными в результате обучения. Необязательный параметр. Если не задавать, то используются некоторые зашитые (и неоптимальные) ML-параметры.

--spectrum-settings-path  -  путь к json-файлу с частотными параметрами, сформированными инженером. Необязательный параметр. Если не задавать, то частотный анализатор не используется.

--timeout  -  полный таймаут работы анализатора в мс; через это время анализатор выдает получившийся результат. Необязательный параметр. По умолчанию 7000.

--recv-timeout  -  таймаут на прием очередной порции данных через stdin; если столько времени нет входящих данных, анализатор выдает получившийся результат. Необязательный параметр. По умолчанию 3000.

Приложение поддерживает режим машинного обучения.

Обучение – это подбор оптимальных параметров для заранее размеченного (разложенного по папкам) набора голосовых файлов с учетом биаса (отклонения).

Биас позволяет задать приоритет – допустить потерю живых ответов или допустить плохие звонки на операторов.

Для обучения нужно:

  1. Подготовить файлы и разместить рядом с анализатором в папке ML в пяти подпапках (Human, IVR, Tone, Fax, Silence)
  2. Запустить анализатор из командной строки с двум параметрами – биас (от -9 до 9, 0 – нейтрально) и количество итераций обучения (рекомендуется 1 для вывода текущей статистики и 10000 для реального обучения). По результатам обучения выводится отчет о достигнутой точности, средней продолжительности определения человека и выставленных параметрах (которые при этом сохраняются рядом в файле SettingsML.json для дальнейшего использования в боевом режиме).
  3. Результат SettingsML.json для применения компонентом следует разместить в каталоге ':SYNC/common/cpd', заменив предыдущий.

Пример командной строки запуска в режиме обучения:

cpd --mode=learn --learn-bias=0 --learn-iterations=10000 --learn-data-dir-path=/some/path/to/wavs/ --learn-output-file-path=/some/path/to/SettingsML.json

Расшифровка параметров:

--learn-bias  -  приоритет от -9 до +9, где -9 - допускать потерю живых ответов, 9 - допускать плохие звонки на операторов, 0 - нейтрально. Необязательный параметр. По умолчанию 0.

--learn-iterations  -  количество итераций обучения. Необязательный параметр. По умолчанию 10000.

--learn-data-dir-path  -  путь к папке с размеченными данными для обучения. Обязательный параметр.

--learn-output-file-path  -  путь к выходному файлу с результатом обучения. Необязательный параметр. Если не задавать, то результат просто распечатается в консоли.

Папка с размеченными данными должна содержать примеры аудио-записей для обучающего прогона. Формат файлов: *.wav PCM 8000Hz 16bit mono.

Файлы должны быть сгруппированы по типу содержимого и размещаться внутри подпапок:

  • Fax - примеры записи факса;
  • Human - примеры живых ответов людей;
  • IVR - примеры IVR (музыка, роботы, голосовое меню и т.п.);
  • Silence - примеры тишины;
  • Tone - различные тональные сигналы, гудки, пр.


Компонент Распознавание речи (Azure Cloud Speech)

Осуществляет распознавание речи абонента в текстовый вид. Сервис предоставляется облаком Microsoft Azure Speech STT по протоколу HTTP. Не имеет технических ограничений по производительности.

Порядок регистрации учетной записи MS Azure и стоимость сервиса см. на https://learn.microsoft.com/en-us/azure/ai-services/speech-service/.

Настройка токенов производится в разделе настройки домена, поле 'azure_cloud'..

Позволяет прерывать по тишине после произнесенной фразы.

Table 1. Системные характеристики
Индекс 231
Краткое название asr_azure
Типы сценариев IVR
Стартовый модуль r_sip_ivr_script_component_asr_azure
Режим Асинхронный
Иконка
Характер разветвления Разветвляющий, прерывающий

Свойства

Table 2. Свойства
Спецификация Описание
Название: Аккаунт Azure

Код: accountKey

Усл. видимости: нет

По умолчанию: default

Указание на аккаунт Azure, опции которого берутся для подключения к облаку.

В список попадает значение 'default', устанавливающее к использованию корневое поле 'speech' в объекте 'settings.azure_cloud'.

Дополнительно в список попадают ключи объекта 'settings.azure_cloud.accounts', за каждым из которых также находится объект с отдельно настроенными параметрами доступа к облаку.

Название: Язык

Код: lang

Усл. видимости: нет

По умолчанию: Английский

Параметр сервиса распознавания Azure Speech: язык распознавания.

Возможные варианты:

  • Авто (100) – Автоматическое определение языка
  • de-DE (1) – Немецкий
  • en-US (2) – Английский
  • es-ES (3) – Испанский
  • fi-FI (4) – Финский
  • fr-FR (5) – Французский
  • he-HE (6) – Иврит
  • it-IT (7) – Итальянский
  • kk-KZ (8) – Казахский
  • nl-NL (9) – Голландский
  • pl-PL (10) – Польский
  • pt-PT (11) – Португальский
  • pt-BR (12) – Бразильский португальский
  • ru-RU (13) – Русский
  • sv-SE (14) – Шведский
  • tr-TR (15) – Турецкий
  • other (100) – Другой
Название: Другой язык

Код: langCustom

Усл. видимости: да

По умолчанию: en-US

Код языка в формате ISO 639-1 из списка поддерживаемых.
Название: Фильтр ненормативной лексики

Код: profanityFilter

Усл. видимости: нет

По умолчанию: Выключить

Параметр сервиса распознавания Azure Speech ASR: режим работы фильтра ненормативной лексики.

Возможные варианты:

  • raw (0) - Оставлять ненормативную лексику
  • masked (1) - Маскировать ненормативную лексику
  • removed (2) - Удалять ненормативную лексику
Название: CID (custom model enpoint id)

Код: cid

Усл. видимости: нет

По умолчанию: empty

When you’re using the Speech Studio to create custom models, you can take advantage of the Endpoint ID value from the Deployment page.

Use the Endpoint ID value as the argument to the cid query string parameter.

Название: Pronunciation scores

Код: pronunciation

Усл. видимости: нет

По умолчанию: false

Specifies the parameters for showing pronunciation scores in recognition results.

These scores assess the pronunciation quality of speech input, with indicators like accuracy, fluency, and completeness.

Возможные варианты:

  • false (0) - Нет. Ответ не содержит pronunciation scores.
  • true (1) - Да. В ответ включаются pronunciation scores, ниже открываются параметры для настройки.
Название: ReferenceText

Код: referenceText

Усл. видимости: да

По умолчанию: empty

The text that the pronunciation is evaluated against.

Применяется только если включен режим вывода в ответ информации с pronunciation scores.

Название: GradingSystem

Код: gradingSystem

Усл. видимости: да

По умолчанию: fivepoint

The point system for score calibration.

Применяется только если включен режим вывода в ответ информации с pronunciation scores.

Возможные варианты:

  • fivepoint (0) - FivePoint. Gives 0-5 floating point score
  • hundreedmark (1) - HundreedMark. Gives 0-100 floating point score
Название: Granularity

Код: granularity

Усл. видимости: да

По умолчанию: phoneme

The evaluation granularity.

Применяется только если включен режим вывода в ответ информации с pronunciation scores.

Возможные варианты:

  • phoneme (0) - Phoneme. Shows the score on the full-text, word, and phoneme levels.
  • word (1) - Word. Shows the score on the full-text and word levels.
  • fulltext (2) - FullText. Shows the score on the full-text level only.
Название: Dimension

Код: dimension

Усл. видимости: да

По умолчанию: basic

Defines the output criteria.

Применяется только если включен режим вывода в ответ информации с pronunciation scores.

Возможные варианты:

  • basic (0) - Basic. Shows the accuracy score only.
  • comprehensive (1) - Comprehensive. Shows scores on more dimensions (for example, fluency score and completeness score on the full-text level, and error type on the word level).
Название: EnableMiscue

Код: enableMiscue

Усл. видимости: да

По умолчанию: false

Enables miscue calculation. With this parameter enabled.

Применяется только если включен режим вывода в ответ информации с pronunciation scores.

Возможные варианты:

  • false (0) - False. Matching to reference text is not used.
  • true (1) - True. The pronounced words are compared to the reference text. They are marked with omission or insertion based on the comparison.
Название: ScenarioId

Код: scenarioId

Усл. видимости: да

По умолчанию: __empty

A GUID that indicates a customized point system.

Применяется только если включен режим вывода в ответ информации с pronunciation scores.

Название: Таймаут записи, с

Код: recordTimeoutSec

Усл. видимости: нет

По умолчанию: 30

Максимально допустимое время записи с момента завершения предварительного воспроизведения, в секундах.
Название: Прерывать по DTMF

Код: checkDTMF

Усл. видимости: нет

По умолчанию: нет

Выключатель детектора DTMF. Открывает настройки режимов сохранения символов и прерывания операции.
Название: Буфер для DTMF

Код: dtmfBuffer

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения получаемых DTMF-символов.
Название: Очистить буфер DTMF

Код: clearDtmfBuffer

Усл. видимости: да

По умолчанию: Да

Выключатель предварительной очистки буфера DTMF.
Название: Количество символов

Код: maxSymbolCount

Усл. видимости: да

По умолчанию: — 

Аргумент, содержащий ограничение на количество вводимых символов.

После получения во время исполнения компонента указанного количества символов DTMF производится автоматическое завершение записи и отправка последней порции голосовых данных сервису распознавания.

Название: Символы прерывания

Код: interruptSymbols

Усл. видимости: да

По умолчанию: — 

Строка, содержащая последовательности символов прерывания через запятую.

После обнаружения на конце буфера DTMF последовательности символов, совпадающей с одной из указанных последовательностей прерывания, производится автоматическое завершение записи и отправка последней порции данных сервису распознавания.

Например, *, 7, 123, 9395.

Название: Прерывать при обнаружении тишины

Код: abortOnSilence

Усл. видимости: нет

По умолчанию: Да

Выключатель детектора голоса (VAD) для автоматического завершения записи и отправки последней порции голосовых данных сервису распознавания.

Критерием для остановки является наличие голоса в течение не менее чем 300 мс и последующее его отсутствие в течение указанного интервала.

Название: Интервал тишины, с

Код: silenceTimeoutSec

Усл. видимости: да

По умолчанию: 2

Аргумент, содержащий время таймаута при обнаружении тишины в секундах. При появлении голоса выше порога чувствительности в течение указанного таймаута, таймер сбрасывается вплоть до обнаружения тишины снова.

В большинстве случаев 2 секунды - комфортный интервал.

Может указываться в формате десятичной дроби, например, '1.6'.

Название: Порог VAD, -дБ

Код: vadThreshold

Усл. видимости: да

По умолчанию: 30

Аргумент, устанавливающий порог VAD. Параметр VAD-детектора.

Указанное значение применяется с отрицательным знаком (в децибелах) для определения порога отсечения тишины относительно возможного максимума.

Поток анализируется фреймами по 20 мс. Каждый звуковой фрейм на основании порога отсечения рассматривается либо как голос, либо как тишина (средний уровень громкости фрейма).

Таким образом, детектор имеет два состояния: голос и тишина. При переходе между состояниями генерируется событие о переходе в другое состояние. Изначально детектор находится в состоянии тишины.

Генерация сигнала обнаружения голоса происходит в состоянии тишины тогда, когда несколько фреймов подряд являются голосовыми (параметр 'Порог голоса, мс').

Генерация сигнала обнаружения тишины происходит в состоянии голоса тогда, после того, как несколько фреймов подряд признаны тишиной (параметр 'Порог тишины, мс').

При значении 30 детектор лучше определяет тишину, при значении 40 детектор лучше определяет появление голоса.

Выход из компонента происходит по истечении таймаута, указанного в поле Интервал тишины, с, отсчитывая с начала отрезка тишины, обнаруженного детектором из состояния голоса.

Название: Голос, мин. длительность, мс

Код: vadVoiceMinMs

Усл. видимости: да

По умолчанию: 120

Аргумент, устанавливающий минимальную пороговую длительность VAD для генерации сигнала VAD UP.

Параметр VAD-детектора.

Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем выше установленного порога VAD.

Через указанное значение определяется количество фреймов.

Название: Голос, допустимое отклонение, %

Код: vadVoiceTol

Усл. видимости: да

По умолчанию: 20

Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.

Параметр VAD-детектора.

Например минимальная длительность задана 210 (мс), отклонение 20 (%). Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.

Значение 0 означает что все 11 фреймов подряд должны быть голосовыми (иметь средний уровень выше порога VAD).

Название: Тишина, мин. длительность, мс

Код: vadSilenceMinMs

Усл. видимости: да

По умолчанию: 500

Аргумент, устанавливающий минимальную пороговую длительность фреймов с тишиной для генерации сигнала VAD DOWN.

Параметр VAD-детектора.

Для генерации сигнала необходимо несколько фреймов по 20 мс подряд со средним уровнем ниже установленного порога VAD.

Через указанное значение определяется количество фреймов.

Название: Тишина, допустимое отклонение, %

Код: vadSilenceTol

Усл. видимости: да

По умолчанию: 10

Аргумент, устанавливающий допустимое отклонение в последовательности голосовых фреймов.

Параметр VAD-детектора.

Например минимальная длительность задана 210 мс, отклонение 20%. Таким образом для сигнализации о наличии голоса будет требоваться последовательность из 11 фреймов, 9 из которых должны быть голосовыми.

Значение 0 означает что все 11 фреймов подряд должны быть тишиной (иметь средний уровень ниже порога VAD).

Название: Таймаут ожидания ответа, с

Код: responseTimeoutSec

Усл. видимости: нет

По умолчанию: 5

Таймаут ожидания ответа от сервиса распознавания Azure Speech после отправки ему последней порции голосовых данных.

По истечении таймаута управление передается следующему компоненту по ветке Время.

Название: Результат в переменную

Код: varText

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения текстового результата распознавания.
Название: Код ответа в переменную

Код: varHttpCode

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения кода HTTP-ответа сервиса распознавания.
Название: Тело ответа в переменную

Код: varHttpBody

Усл. видимости: нет

По умолчанию: — 

Переменная для сохранения полного содержания HTTP-ответа сервиса распознавания.
Название: Сохранить файл записи

Код: saveRec

Усл. видимости: нет

По умолчанию: Нет

Выключатель сохранения файла записи, отправленного сервису распознавания.
Название: Путь к файлу в переменную

Код: varRecordPath

Усл. видимости: да

По умолчанию: — 

Переменная для сохранения пути к файлу записи.

Файл размещается во временном каталоге сценария и будет удален после завершения работы сценария.

Для длительного сохранения файла требуется дальнейшее перемещение файла сценарием в место стационарного хранения.

Запись осуществляется на сервере с ролью mg, обслуживающим текущий звонок, а затем переносится на сервер с ролью ivr, обслуживающей текущий сценарий. Перенос всегда происходит внутри сайта.

Название: Предварительное воспроизведение

Код: prePlayFile

Усл. видимости: нет

По умолчанию: — 

Звуковой файл предварительного воспроизведения абоненту, во время которого также активирован голосовой детектор.

При отсутствии голоса от абонента (с учетом шумового порога VAD-детектора), отправка данных на сервис распознавания не производится.

Может быть выбран в одном из режимов:

  • статический файл, приложенный к сценарию (загружается из приложения Редактор сценариев или через API);
  • сформированный аргументами путь, который должен включать одну из файловых категорий.
Название: Переход

Код: transfer

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае успешного завершения операции.
Название: Переход, время

Код: transferTimeout

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае истечения времени ожидания HTTP-ответа от сервиса распознавания.
Название: Переход, ошибка

Код: transferError

Усл. видимости: нет

По умолчанию: — 

Компонент, которому передается управление в случае возникновения ошибки.
Содержание