Компонент Внешнее управление через 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`.
Индекс  | 
  | 
Краткое название  | 
  | 
Типы сценариев  | 
  | 
Стартовый модуль  | 
  | 
Режим  | 
Асинхронный  | 
Иконка  | 
|
Характер разветвления  | 
Разветвляющий, замыкающий  | 
Свойства
| Спецификация | Описание | 
|---|---|
Название:   | 
Аргумент, содержащий ключ. Передается внешней системе в сообщении о начале работы компонента (событие   | 
Название:   | 
Аргумент, содержащий дополнительные параметры для внешней системы.  | 
Название:   | 
Аргумент, определяющий таймаут ожидания подтверждения от одной из подключенных по websocket token api внешних систем, в миллисекундах.  | 
Название:   | 
Переменная, куда заносится причина завершения работы компонента.  | 
Название:   | 
Компонент, которому передается управление после завершения работы компонента отключением внешней системы.  | 
Название:   | 
Компонент, которому передается управление при завершении по таймауту.  | 
Название:   | 
Компонент, которому передается управление в случае возникновения ошибки.  |