Компонент Внешнее управление через 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 внешних систем, в миллисекундах. |
Название: |
Переменная, куда заносится причина завершения работы компонента. |
Название: |
Компонент, которому передается управление после завершения работы компонента отключением внешней системы. |
Название: |
Компонент, которому передается управление при завершении по таймауту. |
Название: |
Компонент, которому передается управление в случае возникновения ошибки. |