Управление звонками (calls)
- Обзор
- Запросы
- Получение списка звонков (GET)
- Инициация нового звонка (POST)
- Инициация нового звонка (INVITE)
- Инициация нового звонка с обслуживанием в IVR (INVITEBYIVR)
- Поиск идентификатора звонка (LOOKUP)
- Получение информации о звонке (GET)
- Перевод звонка на номер (REFER)
- Перевод звонка с подменой (REFERREPLACES)
- Преобразование звонка в конференцию (SWITCHCONF)
- Перевод звонка в конференцию (REFERCONF)
- Отправка события управления устройством (NOTIFY)
- Отправка DTMF сигнала в плечо (SEND_DTMF)
- Запуск/остановка стенографирования речи одной из сторон (SETUP_ASR)
- Включение/выключение (добавление/удаление) канала записи диалога (SETUP_RECORD)
- Управление метками диалога (SETUP_BINDINGS)
- Завершение звонка (DELETE)
- См. также
Обзор
Управляет существующими активными звонками (диалогами B2B) посредством команд API (без использования инициатив со стороны SIP-устройств).
Управлению доступны любые звонки, инициированные в системе как через API, так и с SIP-устройств и сервисов SIP-UA.
Обслуживание запросов производится ролью mware.
Для работы требуется наличие роли callstore.
Сервис доступен также из сценариев через компонент Операция.
Запросы
HTTP verb | Endpoint | Описание |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Запуск/остановка стенографирования речи одной из сторон (SETUP_ASR) |
|
|
Включение/выключение (добавление/удаление) канала записи диалога (SETUP_RECORD) |
|
|
|
|
|
Получение списка звонков (GET)
Возвращает список активных диалогов в пределах текущего домена.
У любого диалога есть две стороны: вызывающая (A
) и вызываемая (B
). Абонентов, представляющих сторону B
, может быть один или несколько в зависимости от состояния диалога.
Диалог относится к домену, если хотя бы один из его абонентов (плеч диалога) принадлежит домену (является учетной записью провайдера, SIP-пользователя, конференцией или сценарием IVR).
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Фильтр по значениям полей. |
|
|
Список полей для вывода. Доступные поля для выдачи: |
|
|
Смещение в списке ресурсов, подлежащих выдаче. |
|
|
Максимальное количество ресурсов в списке. |
|
|
Порядок сортировки ресурсов в списке. |
|
|
Преобразование в плоский вид составных полей. |
|
|
Возврат лишь количества элементов. |
GET /rest/v1/uc/calls?offset=0&limit=1 HTTP/1.1
Ответ
Возвращает список объектов, каждый из которых представляет собой отдельный диалог. Состав возвращаемых полей ограничен: acallid, callids, dialogid, esgdlg, esgcallid, inviteid, status, legs, localuri, remoteuri, site, startts, uris, opts
.
При указании других полей в параметре mask
они будут проигнорированы.
Поле | Описание |
---|---|
|
Call-Id инициирующей стороны диалога. Содержится в соответствующем заголовке инициирующего SIP-запроса INVITE. |
|
Список всех Call-Id активных участников диалога. Каждая сторона диалога имеет свой Call-Id, каждый вызываемый форк имеет уникальный Call-Id. |
|
Идентификатор активного диалога, применяемый при формировании endpoint. Уникален в рантайме, однако не является глобально уникальным и может повторяться через некоторое время в рамках одной и той же системы. |
|
Идентификатор диалога роли esg. Имеет непустое значение только в том случае, если диалог создан на основании внешнего входящего звонка с учетной записи провайдера. Может использоваться в качестве идентификатора сессии обслуживания внешнего абонента, поскольку в ходе перевода звонка диалог esg не изменяется. |
|
CallId внешнего абонента, скрытый за ролью esg. Имеет непустое значение только в том случае, если диалог создан на основании внешнего входящего звонка с учетной записи провайдера. |
|
Глобально уникальный идентификатор вызова, приводящего к диалогу. Формируется при поступлении в систему SIP-запроса INVITE и существует вплоть до завершения диалога. Присутствует во всех событиях CDR класса callevents. |
|
Генеральное состояние диалога. Варианты значений:
На деле машина состояний диалога имеет гораздо больше состояний, но все они укладываются в генеральные состояния. |
|
Список плеч диалога.
Каждый диалог всегда имеет ровно одного инициатора (вызывающая сторона
В генеральном состоянии
Каждый элемент списка является объектом. |
|
Строковое представление URI из заголовка Формат: |
|
Строковое представление URI из заголовка Формат: |
|
Название сайта, серверы которого обслуживают диалог. |
|
Тайм-штамп времени поступления инициирующего SIP-запроса INVITE в систему. Является представлением момента времени и может быть преобразован к конкретной дате в любом часовом поясе. Например, |
|
Список всех URI, участвующих в звонке. Каждый SIP-пользователь, являющийся абонентом диалога, имеет два URI, один из которых указан через |
|
Объект с дополнительными параметрами диалога. Содержит:
|
Поле | Описание |
---|---|
|
Call-Id плеча. Содержится в соответствующем заголовке SIP-запроса INVITE (полученного или отправленного). |
|
Ограничение времени вызова абонента в миллисекундах. Имеет значение только для плеча стороны |
|
Строковое представление local URI. Для плеча стороны Формат: |
|
Строковое представление remote URI. Для плеча стороны Формат: |
|
Код стороны диалога:
|
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
[
{
"acallid": "3113017065@192.168.0.149",
"callids": [
"rB2-002-484FD3-01-3113017065@192.168.0.149",
"3113017065@192.168.0.149"
],
"dialogid": "rDlg-002-484FD3",
"esgdlg": "",
"esgcallid": "",
"inviteid": "357924f1-0623-b685-c105-b80000000002",
"legs": [
{
"callid": "3113017065@192.168.0.149",
"expirets": "undefined",
"localuri": "<sip:sip3@test.rootdomain.ru>",
"remoteuri": "<sip:sip2@test.rootdomain.ru>",
"side": "a"
},
{
"callid": "rB2-002-484FD3-01-3113017065@192.168.0.149",
"expirets": 30000,
"localuri": "<sip:12@test.rootdomain.ru>",
"remoteuri": "<sip:sip3@test.rootdomain.ru>",
"side": "b"
}
],
"localuri": "<sip:sip3@test.rootdomain.ru>",
"opts": {
"referred-by": "<sip:sip1@test.rootdomain.ru>"
},
"remoteuri": "<sip:sip2@test.rootdomain.ru>",
"site": "SITE1",
"startts": 1571747612067,
"status": "forking",
"uris": [
"<sip:12@test.rootdomain.ru>",
"<sip:sip3@test.rootdomain.ru>",
"<sip:sip3@test.rootdomain.ru>",
"<sip:sip2@test.rootdomain.ru>"
]
}
]
Инициация нового звонка (POST)
Инициирует вызов абонента X (номер в поле from
) в режиме интерком, после ответа производит его перевод (SIP-запрос REFER) на абонента Y (номер в поле to
).
Для инициации режима интерком-вызова в системе должен существовать featurecode соответствующего типа и быть доступен в маршрутизации как минимум для абонентов по направлению к самим себе, а также для абонента 100 (callmanager).
Операция проводится через запуск скрытого служебного сценария, осуществляющего подготовленный дозвон до инициатора
(компонент сценария Исходящий звонок)
с передачей управления специально подготовленному скрытому IVR-сценарию с компонентом Перевод на номер.
В качестве номера для перевода подставляется указанный номер to
.
Схема процесса: IVR→X, IVR REFER Y, X→Y
.
Запрос выполняется асинхронно. Ответ на запрос возвращается в момент, определяемый параметром response_mode
.
Контекст процесса инициации вызова постепенно наполняется данными о звонке по мере его выполнения.
Содержание данных в ответе соответствует моменту его возврата – чем более поздняя точка процесса выбрана, тем больше данных и точнее результат.
События CDR целевого звонка могут быть получены из интерфейса подписки на события системы.
Абонент, от имени которого заказан исходящий звонок, после снятия трубки слышит все сигналы КПВ организованного исходящего вызова.
Запрос
Имя | Тип | Описание | ||
---|---|---|---|---|
|
|
Режим указания стороны X инициатора создаваемого вызова. Возможные варианты:
|
||
|
|
В зависимости от режима ( |
||
|
|
Номер вызываемого абонента Y. Позволяет задавать символы “'” и “,”. Первый такой символ выделяет оставшуюся последовательность в качестве донабора DTMF после получения ответа, а каждый последующий такой символ обеспечивают паузу в 1 секунду в наборе DTMF. |
||
|
|
Номер инициатора первого вызова. Отображается абоненту X. По умолчанию используется значение поля |
||
|
|
Имя инициатора первого вызова. По умолчанию |
||
|
|
Таймаут первого вызова в сеундах. Является ограничением стандартного время вызова. По умолчанию 30 сек. |
||
|
|
Метка, привязываемая к звонку. По умолчанию не назначается. |
||
|
|
Режим возврата ответа. Чем больше значение, тем позже отправляется ответ, и тем больше контекстной информации в ответе содержится. Возможные варианты:
По умолчанию |
||
|
|
Выключатель режима intercom для вызова абонента. По умолчанию выключено.
|
POST /rest/v1/uc/calls HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"from": "14",
"to": "16",
"mode": "number",
"callerid": "100",
"callername": "callmanager",
"calltimeout": 30,
"use_intercom": true,
"binding": "sample_binding",
"response_mode": 5
}
Ответ
Поле | Описание |
---|---|
|
Итоговый результат по операции. Варианты значений. |
|
Call-Id инициирующего автоматического звонка IVR→X (отличается от CallId плеч целевого диалога). Присутствует в любом случае. |
|
Call-Id звонка, поступившего в систему от абонента X к абоненту Y после обработки SIP-запроса REFER. Это Call-Id плеча |
|
Response-Line последнего полученного ответа от абонента Y, по результатам которого сформирован ответ на запрос. При некоторых неудачных результатах операции может отсутствовать. |
|
Идентификатор целевого диалога X→Y. При некоторых неудачных результатах операции может отсутствовать. Также может отсутствовать если длительность диалога 0 секунд. |
Значение | Описание |
---|---|
|
Ответ сформирован на этапе, где не выявлено проблем для успешного создания диалога X→Y. Например, для
|
|
Вызов IVR→X завершился неудачей ( В случае, если неудачный ответ получен от абонента X, результат не содержит информации о диалоге X→Y, поля |
|
Вызов IVR→X завершился переадресацией SIP-UA ( Значение является гипотетическим, поскольку обработкой |
|
Вызов IVR→X после предварительного ответа завершился таймаутом. Значение является гипотетическим, поскольку при отсутствии финального ответа сервер (роль b2b), завершает вызов автоматической эмуляцией ответа |
|
Не получен ответ от абонента X, либо другая неожиданная ситуация. В ответе могут отсутствовать поля |
|
Абонент X удачно ответил на вызов IVR→X, состояние вызова X→Y неизвестно из-за отсутствия или неизвестного содержания SIP-запросов NOTIFY в диалоге, обслужившим REFER. |
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"result": "ok",
"ivrcallid": "rIV-006-J8zgklJrGuVxZSlo1ZUWOjjJyl1",
"acallid": "3099649154@192.168.0.149",
"dialogid": "rDlg-002-6FpTv2",
"last_response": "SIP/2.0 100 Trying"
}
Инициация нового звонка с обслуживанием в IVR (INVITEBYIVR)
Инициирует вызов абонента Y и запускает указанный сценарий для его обслуживания.
Поддерживается донабор DTMF символов после ответа абонента с управляемыми паузами.
Операция проводится через запуск скрытого служебного сценария, осуществляющего подготовленный дозвон до инициатора (компонент сценария Исходящий звонок) с передачей управления специально подготовленному скрытому IVR-сценарию с компонентами Генерация DTMF и Запуск вложенного сценария.
Схема процесса: IVR→X
.
Запрос выполняется асинхронно. Ответ на запрос возвращается в момент, определяемый параметром response_mode
.
Контекст процесса инициации вызова постепенно наполняется данными о звонке по мере его выполнения.
Содержание данных в ответе соответствует моменту его возврата – чем более поздняя точка процесса выбрана, тем больше данных и точнее результат.
События CDR целевого звонка могут быть получены из интерфейса подписки на события системы.
Запрос
Имя | Тип | Описание | ||
---|---|---|---|---|
|
|
Номер вызываемого абонента Y. Позволяет задавать символы “'” и “,”. Первый такой символ выделяет оставшуюся последовательность в качестве донабора DTMF после получения ответа, а каждый последующий такой символ обеспечивают паузу в 1 секунду в наборе DTMF. |
||
|
|
Номер инициатора первого вызова. Отображается абоненту X. По умолчанию используется значение поля |
||
|
|
Имя инициатора первого вызова. По умолчанию |
||
|
|
Таймаут первого вызова в сеундах. Является ограничением стандартного время вызова. По умолчанию 30 сек. |
||
|
|
Выключатель режима intercom для вызова абонента. По умолчанию выключено.
|
||
|
|
Метка, привязываемая к звонку. По умолчанию не назначается. Наследуется всеми дальнейшими переведенными вызовами. |
||
|
|
Список дополнительных заголовков для INVITE-запроса в строковом виде, разделенных переносом строки (CLCR). |
||
|
|
Режим возврата ответа. Чем больше значение, тем позже отправляется ответ, и тем больше контекстной информации в ответе содержится. Возможные варианты:
По умолчанию |
||
|
|
Протокол отправки DTMF символов донабора. Отправке после ответа абонента подлежат все символы, переданные в номере после запятой. Причем каждая запятая - это пауза в одну секунду. Возможные варианты:
|
||
|
|
Код сценария IVR, которому надлежит обслуживать абонента. |
||
|
|
Строка, которая будет отправлена в качестве первого параметра в сценарий, а при соответствии ее значения JSON объекту, задаст начальные значения переменным, чьи имена являются ключами объекта. |
INVITEBYIVR /rest/v1/uc/calls HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"to": "22",
"scriptcode": "test_play",
"response_mode": 2,
"callerid": "100",
"callername": "callmanager",
"calltimeout": 30,
"use_intercom": false,
"binding": "sample_label",
"headers": "X-Header-Sample-1: 123\r\nX-Header-Sample-2: a; b; c"
}
Ответ
Поле | Описание |
---|---|
|
Итоговый результат по операции. Варианты значений. |
|
Call-Id инициирующего автоматического звонка IVR→X (отличается от CallId плеч целевого диалога). Присутствует в любом случае. |
|
Код последнего полученного ответа от абонента X, по результатам которого сформирован ответ на запрос. При некоторых неудачных результатах операции может отсутствовать. |
|
Идентификатор целевого диалога IVR→X. При некоторых неудачных результатах операции может отсутствовать. Также может отсутствовать если длительность диалога 0 секунд. |
Значение | Описание |
---|---|
|
Ответ сформирован на этапе, где не выявлено проблем для успешного создания диалога X→Y. Например, для
|
|
Вызов IVR→X завершился неудачей ( В случае, если неудачный ответ получен от абонента X, результат не содержит информации о диалоге X→Y, поля |
|
Вызов IVR→X завершился переадресацией SIP-UA ( Значение является гипотетическим, поскольку обработкой |
|
Вызов IVR→X после предварительного ответа завершился таймаутом. Значение является гипотетическим, поскольку при отсутствии финального ответа сервер (роль b2b), завершает вызов автоматической эмуляцией ответа |
|
Не получен ответ от абонента X, либо другая неожиданная ситуация. В ответе могут отсутствовать поля |
|
Абонент X удачно ответил на вызов IVR→X, состояние вызова X→Y неизвестно из-за отсутствия или неизвестного содержания SIP-запросов NOTIFY в диалоге, обслужившим REFER. |
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"result": "ok",
"ivrcallid": "rIV-006-J8zgklJrGuVxZSlo1ZUWOjjJyl1",
"acallid": "3099649154@192.168.0.149",
"dialogid": "rDlg-002-6FpTv2",
"last_response": "SIP/2.0 100 Trying"
}
Поиск идентификатора звонка (LOOKUP)
Производит поиск ресурса (активного диалога) по указанному ключу.
Возвращается список идентификаторов обнаруженных диалогов, подходящих по условиям поиска.
Применение поисковых полей производится по одному в порядке убывания приоритета в приведенной ниже таблице. Поисковые поля содержат в описании "Значение для поиска". Множественный возврат возможен, например, в случае поиска по логину SIP-пользователя, если он участвует в нескольких диалогах.
Запрос
Параметр | Тип | Описание |
---|---|---|
|
|
Значение для поиска. Идентификатор диалога, применяемый при формировании endpoint. Уникален в рантайме, однако не является глобально уникальным и может повторяться через некоторое время в рамках одной и той же системы. Например, |
|
|
Значение для поиска. Глобально уникальный идентификатор вызова, приводящего к диалогу. Формируется при поступлении в систему SIP-запроса INVITE и существует вплоть до завершения диалога. Присутствует во всех событиях CDR класса callevents. Например |
|
|
Значение для поиска. Идентификатор звонка Например, |
|
|
Значение для поиска. SIP URI: |
|
|
Значение для поиска. Номер телефона или логин SIP-пользователя, используемые в качестве Может использовать дополнительный параметр
По умолчанию Обнаруживаются диалоги, где одной из сторон выступает указанный абонент текущего домена.
Поиск производится аналогично |
|
|
Значение для поиска. Идентификатор учетной записи SIP-пользователя. |
|
|
Значение для поиска. Логин учетной записи SIP-пользователя. |
|
|
Значение для поиска. Номер телефона учетной записи SIP-пользователя. |
|
|
Значение для поиска. Идентификатор учетной записи пользователя системы. Если имеет место привязка учетных записей SIP-пользователей к пользователю системы, то обнаруживаются диалоги, где один из этих SIP-пользователей является одним из абонентов. |
LOOKUP /rest/v1/uc/calls HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"callid": "rB2-002-XPhrjh-01-3587482024@192.168.0.146"
}
Получение информации о звонке (GET)
Возвращает информацию о диалоге.
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор диалога, подлежащего переводу (master). Передается как часть Endpoint URI. В качестве параметра используется при отправке команды из сценария компонентом Операция. При отправке команды из сценария существуют и другие способы указания диалога, альтернативные этому. Все способы указания диалога перечислены ниже в порядке убывания приоритета с кратким описанием. Подробно о них см. в параметрах операции поиска звонка. * |
|
|
Список полей для вывода. |
|
|
Преобразование в плоский вид составных полей. |
GET /rest/v1/uc/calls/rDlg-002-484FD3 HTTP/1.1
Ответ
Возвращает объект с представлением диалога.
Поле | Описание |
---|---|
|
Call-Id инициирующей стороны диалога. Содержится в соответствующем заголовке инициирующего SIP-запроса INVITE. |
|
Список всех Call-Id активных участников диалога. Каждая сторона диалога имеет свой Call-Id, каждый вызываемый форк имеет уникальный Call-Id. |
|
Идентификатор активного диалога, применяемый при формировании endpoint. Уникален в рантайме, однако не является глобально уникальным и может повторяться через некоторое время в рамках одной и той же системы. |
|
Идентификатор диалога роли esg. Имеет непустое значение только в том случае, если диалог создан на основании внешнего входящего звонка с учетной записи провайдера. Может использоваться в качестве идентификатора сессии обслуживания внешнего абонента, поскольку в ходе перевода звонка диалог esg не изменяется. |
|
CallId внешнего абонента, скрытый за ролью esg. Имеет непустое значение только в том случае, если диалог создан на основании внешнего входящего звонка с учетной записи провайдера. |
|
Глобально уникальный идентификатор вызова, приводящего к диалогу. Формируется при поступлении в систему SIP-запроса INVITE и существует вплоть до завершения диалога. Присутствует во всех событиях CDR класса callevents. |
|
Генеральное состояние диалога. Варианты значений:
На деле машина состояний диалога имеет гораздо больше состояний, но все они укладываются в генеральные состояния. |
|
Список плеч диалога.
Каждый диалог всегда имеет ровно одного инициатора (вызывающая сторона
В генеральном состоянии
Каждый элемент списка является объектом. |
|
Строковое представление URI из заголовка Формат: |
|
Строковое представление URI из заголовка Формат: |
|
Название сайта, серверы которого обслуживают диалог. |
|
Тайм-штамп времени поступления инициирующего SIP-запроса INVITE в систему. Является представлением момента времени и может быть преобразован к конкретной дате в любом часовом поясе. Например, |
|
Список всех URI, участвующих в звонке. Каждый SIP-пользователь, являющийся абонентом диалога, имеет два URI, один из которых указан через |
|
Объект с дополнительными параметрами диалога. Содержит:
|
Поле | Описание |
---|---|
|
Call-Id плеча. Содержится в соответствующем заголовке SIP-запроса INVITE (полученного или отправленного). |
|
Ограничение времени вызова абонента в миллисекундах. Имеет значение только для плеча стороны |
|
Строковое представление local URI. Для плеча стороны Формат: |
|
Строковое представление remote URI. Для плеча стороны Формат: |
|
Код стороны диалога:
|
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"acallid": "3113017065@192.168.0.149",
"callids": [
"rB2-002-484FD3-01-3113017065@192.168.0.149",
"3113017065@192.168.0.149"
],
"dialogid": "rDlg-002-484FD3",
"esgdlg": "",
"esgcallid": "",
"inviteid": "357924f1-0623-b685-c105-b80000000002",
"legs": [
{
"callid": "3113017065@192.168.0.149",
"expirets": "undefined",
"localuri": "<sip:sip3@test.rootdomain.ru>",
"remoteuri": "<sip:sip2@test.rootdomain.ru>",
"side": "a"
},
{
"callid": "rB2-002-484FD3-01-3113017065@192.168.0.149",
"expirets": 30000,
"localuri": "<sip:12@test.rootdomain.ru>",
"remoteuri": "<sip:sip3@test.rootdomain.ru>",
"side": "b"
}
],
"localuri": "<sip:sip3@test.rootdomain.ru>",
"opts": {
"referred-by": "<sip:sip1@test.rootdomain.ru>"
},
"remoteuri": "<sip:sip2@test.rootdomain.ru>",
"site": "SITE1",
"startts": 1571747612067,
"status": "forking",
"uris": [
"<sip:12@test.rootdomain.ru>",
"<sip:sip3@test.rootdomain.ru>",
"<sip:sip3@test.rootdomain.ru>",
"<sip:sip2@test.rootdomain.ru>"
]
}
Перевод звонка на номер (REFER)
Производит перевод звонка – абонента диалога (оппонента) – на указанный номер.
Действует для любого активного диалога в текущем домене.
Существуют стандартные ограничения при переводе диалога, находящегося в состоянии status=forking
.
Схема процесса: X-Y | IVR→Y, IVR REFER Z, Y→Z
.
Операция проводится через запуск скрытого служебного сценария, осуществляющего подготовленный дозвон до указанного абонента с подменой конкретного указанного диалога
(компонент сценариев Дозвон с установленными заголовками Replaces и Referred-By),
и последующую передачу управления специально подготовленному скрытому IVR сценарию с компонентом Перевод на номер.
В качестве номера для перевода подставляется указанный номер referto
.
В случае неудачи при переводе следующий компонент сценария переводит вызов обратно на номер инициатора перевода.
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор диалога, подлежащего переводу. Передается как часть Endpoint URI. В качестве параметра используется при отправке команды из сценария компонентом Операция. При отправке команды из сценария существуют и другие способы указания диалога, альтернативные этому. Все способы указания диалога перечислены ниже в порядке убывания приоритета с кратким описанием. Подробно о них см. в параметрах операции поиска звонка.
|
|
|
Сторона диалога инициирующая перевод звонка. На основании значения вычисляется оппозитная сторона, которую следует перевести. Именно ей отправляется SIP-запрос INVITE с Replaces из IVR и последующий SIP-запрос REFER. |
|
|
Номер, на который осуществляется перевод абонента. Позволяет задавать символы “'” и “,”. Первый такой символ выделяет оставшуюся последовательность в качестве донабора DTMF после получения ответа, а каждый последующий такой символ обеспечивают паузу в 1 секунду в наборе DTMF. |
|
|
Режим возврата ответа. Чем больше значение, тем позже отправляется ответ, и тем больше контекстной информации в ответе содержится. Возможные варианты:
По умолчанию |
|
|
Метка, привязываемая к подменяющему звонку и следом к переводному звонку. По умолчанию не назначается. |
REFER /rest/v1/uc/calls/rDlg-002-WOabz0 HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"referto": "13",
"by": "<sip:11@test.rootdomain.ru>",
"response_mode": 3
}
Ответ
Поле | Описание |
---|---|
|
Идентификатор диалога, подлежащего переводу. Совпадает с идентификатором в endpoint или переходит без изменений из параметров запроса. |
|
Итоговый результат по операции. Варианты значений. |
|
Call-Id инициирующего автоматического звонка IVR→Y (отличается от CallId плеч целевого диалога). Присутствует в любом случае. |
|
Call-Id звонка, поступившего в систему от абонента Y к абоненту Z после обработки SIP-запроса REFER. Это Call-Id плеча |
|
Response-Line последнего полученного ответа от абонента Z, по результатам которого сформирован ответ на запрос. При некоторых неудачных результатах операции может отсутствовать. |
|
Идентификатор целевого диалога Y→Z. При некоторых неудачных результатах операции может отсутствовать. Также может отсутствовать если длительность диалога 0 секунд. |
Значение | Описание |
---|---|
|
Ответ сформирован на этапе, где не выявлено проблем для успешного создания диалога Y→Z. Например, для
|
|
Вызов IVR→Y завершился неудачей ( В случае, если неудачный ответ получен от абонента Y, результат не содержит информации о диалоге Y→Z, поля |
|
Вызов IVR→Y завершился переадресацией SIP-UA ( Значение является гипотетическим, поскольку обработкой |
|
Вызов IVR→Y после предварительного ответа завершился таймаутом. Значение является гипотетическим, поскольку при отсутствии финального ответа сервер (роль b2b), завершает вызов автоматической эмуляцией ответа |
|
Не получен ответ от абонента Y, либо другая неожиданная ситуация. В ответе могут отсутствовать поля |
|
Абонент Y удачно ответил на вызов IVR→Y, состояние вызова Y→Z неизвестно из-за отсутствия или неизвестного содержания SIP-запросов NOTIFY в диалоге, обслужившим REFER. |
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"dialogid": "rDlg-002-WOabz0",
"result": "ok",
"ivrcallid": "rIV-006-5avZy6B3IC5nivAvVS5B6n4prqT",
"new_acallid": "1920460747@192.168.0.149",
"new_dialogid": "rDlg-002-JKNked",
"new_last_response": "SIP/2.0 180 Ringing"
}
Перевод звонка с подменой (REFERREPLACES)
Производит соединение абонентов двух различных активных диалогов текущего домена.
Абонент одного диалога связывается с абонентом другого диалога, а оппоненты отбиваются в соответствии с протоколом SIP (в частности, SIP-UA, получивший INVITE с Replaces, производит отправку BYE в сторону оппонента в подменяемом диалоге).
Cхема процесса в общем виде: X-Y, P-Q | IVR→Y, IVR REFER+REPLACES Q, Y→Q
.
Стандартный кейс: абонент соединяет двух своих оппонентов в разных активных диалогах, а сам освобождается. Тогда схема процесса: X-Y, X-Z | IVR→Y, IVR REFER+REPLACES Z, Y→Z
.
Но это не обязательно, могут быть выбраны совершенно произвольные диалоги по всему кластеру.
Поскольку участвуют два звонка, то название каждого из параметров содержит префикс: "master"
или "slave"
.
Операция проводится через запуск скрытого служебного сценария, осуществляющего подготовленный дозвон до абонента одного диалога с подменой (компонент сценария "Дозвон" с установленными заголовками Replaces и Referred-By), последующей передачей управления специально подготовленному скрытому IVR сценарию с компонентом "Перевод с подменой". В качестве цели для перевода подставляется идентификатор второго указанного диалога (slave).
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор диалога, подлежащего переводу (master). Передается как часть Endpoint URI. В качестве параметра используется при отправке команды из сценария компонентом Операция. При отправке команды из сценария существуют и другие способы указания master-диалога, альтернативные этому.
Все способы указания диалога перечислены ниже в порядке убывания приоритета с кратким описанием.
Подробно о них см. в параметрах операции поиска звонка с добавлением префикса
|
|
|
Сторона master-диалога инициирующая перевод звонка. На основании значения вычисляется оппозитная сторона, которую следует перевести. Именно ей отправляется SIP-запрос INVITE с Replaces из IVR и последующий SIP-запрос REFER. |
|
|
Идентификатор диалога, подлежащего подмене (slave). Существуют и другие способы указания slave-диалога, альтернативные этому.
Все способы указания диалога перечислены ниже в порядке убывания приоритета с кратким описанием.
Подробно о них см. в параметрах операции поиска звонка с добавлением префикса
|
|
|
Сторона slave-диалога, подлежащая подмене. На основании значения вычисляется оппозитная сторона, у которой следует подменить плечо. Именно на нее нацеливается REFER с Replaces и как следствие ей отправляется SIP-запрос INVITE с Replaces от Y. |
|
|
Режим возврата ответа. Чем больше значение, тем позже отправляется ответ, и тем больше контекстной информации в ответе содержится. Возможные варианты:
По умолчанию |
|
|
Метка, привязываемая к подменяющему звонку и следом к переводному подменяющему звонку. По умолчанию не назначается. |
REFERREPLACES /rest/v1/uc/calls/rDlg-002-HKO7cn HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"masterby": "1771996496@192.168.0.147",
"slavedialogid": "rDlg-002-YWR7ts",
"slaveby": "2622745275@192.168.0.149",
"response_mode": 4
}
Ответ
Поле | Описание |
---|---|
|
Идентификатор диалога, подлежащего переводу (master). Совпадает с идентификатором в endpoint или переходит без изменений из параметров запроса. |
|
Идентификатор диалога, подлежащего подмене (slave). Переходит без изменений из параметров запроса. |
|
Итоговый результат по операции. Варианты значений. |
|
Call-Id инициирующего автоматического звонка IVR→Y (отличается от CallId плеч целевого диалога). Присутствует в любом случае. |
|
Call-Id звонка, поступившего в систему от абонента Y к абоненту Z после обработки SIP-запроса REFER. Это Call-Id плеча |
|
Response-Line последнего полученного ответа от абонента Z, по результатам которого сформирован ответ на запрос. При некоторых неудачных результатах операции может отсутствовать. |
|
Идентификатор целевого диалога Y→Z. При некоторых неудачных результатах операции может отсутствовать. Также может отсутствовать если длительность диалога 0 секунд. |
Значение | Описание |
---|---|
|
Ответ сформирован на этапе, где не выявлено проблем для успешного создания диалога Y→Z. Например, для
|
|
Вызов IVR→Y завершился неудачей ( В случае, если неудачный ответ получен от абонента Y, результат не содержит информации о диалоге Y→Q, поля |
|
Вызов IVR→Y завершился переадресацией SIP-UA ( Значение является гипотетическим, поскольку обработкой |
|
Вызов IVR→Y после предварительного ответа завершился таймаутом. Значение является гипотетическим, поскольку при отсутствии финального ответа сервер (роль b2b), завершает вызов автоматической эмуляцией ответа |
|
Не получен ответ от абонента Y, либо другая неожиданная ситуация. В ответе могут отсутствовать поля |
|
Абонент Y удачно ответил на вызов IVR→Y, состояние вызова Y→Q неизвестно из-за отсутствия или неизвестного содержания SIP-запросов NOTIFY в диалоге, обслужившим REFER. |
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"masterdialogid": "rDlg-002-HKO7cn",
"slavedialogid": "rDlg-002-YWR7ts",
"result": "ok",
"ivrcallid": "rIV-006-OCXV3CJPkbUUlFx6v8O00kjTm22",
"new_acallid": "3762659316@192.168.0.146",
"new_dialogid": "rDlg-002-RqNtEp",
"new_last_response": "SIP/2.0 200 OK"
}
Преобразование звонка в конференцию (SWITCHCONF)
Производит мягкое переключение обоих абонентов указанного диалога в конференц-комнату. Оба абонентских устройства получают SIP-запросы INVITE с Replaces, соединяются с IVR, которые их переводят на конференц-комнату с помощью SIP-запросов REFER. Абоненты могут находиться в разных доменах. Конференция будет создана в домене, в котором производится API-запрос преобразования (или исполняется сценарий, производящий операцию).
Операция проводится через запуск скрытых служебных сценариев – по одному для каждого из абонентов, осуществляющих подготовленный дозвон до соответствующего абонента диалога
с подменой (компонент сценария Исходящий звонок с установленными заголовками Replaces и Referred-By),
с последующей передачей управления специально подготовленному скрытому IVR-сценарию с компонентом Перевод на номер.
В качестве цели для перевода подставляется номер конференц-комнаты вместе с КАФ (featurecode типа conf
).
Номер для перевода может быть указан в параметре запроса referto
, в противном случае вычисляется автоматически – маршрутизация должна быть настроена.
Схема процесса: X-Y | IVR1→X, IVR2→Y, IVR1 REFER CONF, IVR2 REFER CONF, X→CONF, Y→CONF
.
Параметр запроса by
указывает произвольный username или номер в текущем домене, от имени которого производится перевод обоих абонентов диалога в конференцию.
Фактически необходимо использовать, если маршрутизация особенная, и не для всех открыт доступ к featurecode конференции.
Чтобы при получении одним абонентом INVITE с Replaces другой абонент не отвалился по BYE
(получившая сторона отправляет BYE оппоненту подмененного диалога согласно протоколу SIP, а роль b2b пробрасывает его сквозь себя),
роль b2b получает команду на временную паузу диалога (фактически, блокировка переотправки BYE – вместо этого при получении BYE запускается отложенная асинхронная операция отправки BYE на 3 секунды).
После получения SIP-ответов 2xx
от обоих абонентов на INVITE с Replaces, диалог выводится из паузы.
В нормальной ситуации он к этому времени уже не существует.
В случае неудачи исходный разговор не восстанавливается. Теоретически возможна ситуация, когда одному абоненту удастся дозвониться до конференц-комнаты, а второму нет. В этом случае один получит отбой, а второй окажется в конференции наедине с собой.
Диалог, абонентом которого является конференция (username = "conf-…"
), преобразовывать в конференцию не разрешается
(не связано со сложностями реализации, просто стоит внешнее ограничение, чтобы не повисали пустые конференции, связанные между собой).
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор диалога, подлежащего переводу (master). Передается как часть Endpoint URI. В качестве параметра используется при отправке команды из сценария компонентом Операция. При отправке команды из сценария существуют и другие способы указания диалога, альтернативные этому. Все способы указания диалога перечислены ниже в порядке убывания приоритета с кратким описанием. Подробно о них см. в параметрах операции поиска звонка.
|
|
|
Полный номер конференции вместе с префиксом КАФ. Параметр необязательный. При его отсутствии генерируется случайный 8-значный номер конференц-комнаты, а в качестве префикса применяется префикс первого обнаруженного в домене featurecode с типом |
|
|
Номер или username абонента, от имени которого следует осуществлять перевод в конференц-комнату. Параметр необязательный. Значение по умолчанию: Для указанного абонента должен быть доступным маршрут до конференц-комнаты (правила маршрутизации определяются сущностями route и vectorrule). |
|
|
Режим возврата ответа. Чем больше значение, тем позже отправляется ответ, и тем больше контекстной информации в ответе содержится. Возможные варианты:
По умолчанию |
|
|
Метка, привязываемая к подменяющему звонку и следом к переводному звонку. По умолчанию не назначается. |
SWITCHCONF /rest/v1/uc/calls/rDlg-002-Maw6qN HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"referto":"*99358",
"by":"sip3",
"response_mode": 4
}
Ответ
Поле | Описание |
---|---|
|
Идентификатор диалога, подлежащего преобразованию в конференцию. Совпадает с идентификатором в endpoint или переходит без изменений из параметров запроса. |
|
Строка с номером, применяемым для перевода на конференцию. Указывает сгенерированный системой полный номер с префиксом, либо указанный в запросе в поле |
|
Итоговый результат по операции. Варианты значений. |
|
Идентификатор конференции, в которую перенаправлены абоненты. |
|
Call-Id инициирующего автоматического звонка IVR1→X (отличается от CallId плеч целевого диалога с конференцией). Присутствует в любом случае. |
|
Call-Id звонка, поступившего в систему от абонента Y к абоненту Z после обработки SIP-запроса REFER. Это Call-Id плеча |
|
Response-Line последнего полученного ответа от абонента Z, по результатам которого сформирован ответ на запрос. При некоторых неудачных результатах операции может отсутствовать. |
|
Идентификатор целевого диалога Y→Z. При некоторых неудачных результатах операции может отсутствовать. Также может отсутствовать если длительность диалога 0 секунд. |
|
Call-Id инициирующего автоматического звонка IVR2→Y (отличается от CallId плеч целевого диалога с конференцией). Присутствует в любом случае. |
|
Call-Id звонка, поступившего в систему от абонента Y к абоненту Z после обработки SIP-запроса REFER. Это Call-Id плеча |
|
Response-Line последнего полученного ответа от абонента Z, по результатам которого сформирован ответ на запрос. При некоторых неудачных результатах операции может отсутствовать. |
|
Идентификатор целевого диалога Y→Z. При некоторых неудачных результатах операции может отсутствовать. Также может отсутствовать если длительность диалога 0 секунд. |
Значение | Описание |
---|---|
|
Ответ сформирован на этапе, где не выявлено проблем для успешного создания диалога Y→Z. Например, для
|
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"dialogid": "rDlg-002-Maw6qN",
"referto": "*99358",
"result": "ok",
"confid": "rCF-005-ZIzwBi",
"x_ivrcallid": "rIV-006-D0qaTIsaTzBoWDHiAYgCIOo7odO",
"x_new_acallid": "27142922@192.168.0.149",
"x_new_dialogid": "rDlg-002-UTx2LP",
"x_new_last_response": "SIP/2.0 200 OK",
"y_ivrcallid": "rIV-006-TTBdJOR0ifh8HYiE9sVwqqJ31HW",
"y_new_acallid": "817803971@192.168.0.147",
"y_new_dialogid": "rDlg-002-XVRAsk",
"y_new_last_response": "SIP/2.0 200 OK"
}
Перевод звонка в конференцию (REFERCONF)
Производит перевод указанного звонка (оппонента в диалоге) на существующую конференцию. Это аналог операции перевод на номер с автоматическим поиском конференции, вычислением и подстановкой номера конференции для маршрутизации.
Операция проводится через запуск скрытого служебного сценария, осуществляющего подготовленный дозвон до указанного абонента с подменой конкретного указанного диалога (компонент сценария "Дозвон" с установленными заголовками Replaces и Referred-By) и последующей передачей управления специально подготовленному скрытому IVR сценарию с компонентом "Перевод на номер". В качестве номера для перевода подставляется номер обнаруженной конференции, как featurecode + confroomnum. В случае неудачи перевода следующий компонент переводит абонента обратно на номер переводившего.
Схема процесса: X→CONF (hold), X→Y | IVR→Y, IVR REFER CONF, Y→CONF
.
Перевод осуществляется в домене конференции. Если вдруг выполнение запроса производится в другом домене относительно конференции, то возвращается ошибка. Это возможно в том случае, если в конференции участвует абонент из другого домена, и указание конференции производится путем ссылки на его диалог.
После успешного завершения операции переводивший абонент X остается в режиме удержания конференции. Для возврата к ней ему требуется снять ее с удержания, пользуясь командами своего SIP-устройства.
Альтернативный данной операции подход – пользоваться методом "Перевод на номер", указывая номер, по которому доступна конкретная конференц-комната.
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор диалога, подлежащего переводу в конференцию. Передается как часть Endpoint URI. В качестве параметра используется при отправке команды из сценария компонентом Операция. При отправке команды из сценария существуют и другие способы указания диалога, альтернативные этому. Все способы указания диалога перечислены ниже в порядке убывания приоритета с кратким описанием. Подробно о них см. в параметрах операции поиска звонка.
|
|
|
Сторона диалога, инициирующая перевод звонка в конференцию. На основании значения вычисляется оппозитная сторона, которую следует перевести. Именно ей отправляется SIP-запрос INVITE с Replaces из IVR и последующий SIP-запрос REFER. |
|
|
Идентификатор диалога, одним из участников которого является конференция – назначение перевода. Это один из возможных способов указания конференции, являющейся целью перевода. Существуют и другие способы указания конференции, альтернативные этому.
Все способы указания конференции перечислены ниже в порядке убывания приоритета с кратким описанием.
Подробно о них см. в параметрах операции поиска звонка с добавлением префикса
|
|
|
Режим возврата ответа. Чем больше значение, тем позже отправляется ответ, и тем больше контекстной информации в ответе содержится. Возможные варианты:
По умолчанию |
|
|
Метка, привязываемая к подменяющему звонку и следом к переводному звонку. По умолчанию не назначается. |
REFERCONF /rest/v1/uc/calls/rDlg-002-96Ptom HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"by": "2362769183@192.168.0.203",
"referdialogid": "rDlg-002-96Ptom",
"response_mode": 3
}
Ответ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"dialogid": "rDlg-002-96Ptom",
"result": "ok",
"ivrcallid": "rIV-006-1pq2q9apUWvHHJRXiImXOlPrOOC",
"new_acallid": "1920460747@192.168.0.149",
"new_dialogid": "rDlg-002-Uf38zV",
"new_last_response": "SIP/2.0 180 Ringing"
}
Отправка события управления устройством (NOTIFY)
Реализует софтверное управление устройством абонента по инициативе сервера.
Производит отправку запроса NOTIFY с сообщением о событии на устройство указанного абонента. В частности, это может быть использовано для управления устройством в соответствии с расширением Cisco Broadsoft (https://pubhub.devnetcloud.com/media/broadsoft-docs/docs/pdf/BW-SIPAccessSideExtensionsInterfaceSpec.pdf) В зависимости от типа сообщения устройство может:
-
ответить на звонок (
talk
), -
перейти в режим удержания (
hold
), -
выйти из режима удержания (
talk
), -
объединить удерживаемых абонентов в управляемой телефоном конференции (
conference
) -
прочее
Операция проводится в режиме вызова для вызываемой стороны (talk
), либо в режиме диалога для любой из сторон.
В соответствии с RFC3265 поддерживаемые события перечисляются устройством в заголовке Allow-Events
в запросе INVITE
или в ответе 1xx
/2xx
.
Если устройство не поддерживает расширение, то оно не отправляет соответствующие значения в заголовке, и на этом основании сервер блокирует отправку NOTIFY
-запроса.
Отправка сообщения асинхронная, итоговый результат работы не сообщается. Успешный ответ означает лишь факт отправки запроса.
Сервер не применяет расширения самостоятельно, но предоставляет возможность внешним по отношению к системе образом использовать их функциональность через API и сценарии. Состав поддерживаемых расширений определяется устройством. Качество поддержки расширения устройствами системой не гарантируется. В качестве рекомендации: использовать метод только в опциональном режиме и в случае, когда достоверно известно что все используемые устройства поддерживают метод и не предвидится иное.
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор диалога, подлежащего переводу в конференцию. Передается как часть Endpoint URI. В качестве параметра используется при отправке команды из сценария компонентом Операция. При отправке команды из сценария существуют и другие способы указания диалога, альтернативные этому. Все способы указания диалога перечислены ниже в порядке убывания приоритета с кратким описанием. Подробно о них см. в параметрах операции поиска звонка.
|
|
|
Сторона диалога, управление устройством которой производится, |
|
|
Название события для управления устройством ( |
NOTIFY /rest/v1/uc/calls/rDlg-002-WOabz0 HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"callid": "4139247432@192.168.0.149",
"event": "talk"
}
Отправка DTMF сигнала в плечо (SEND_DTMF)
Реализует отправку DTMF символов в указанное плечо указанного диалога. Поддерживается отправка последовательностей. Ответ на запрос поступает сразу, но в плече возникает очередь отправки отдельных символов. Та же очередь используется при поступлении нескольких запросов.
Позволяет задавать последовательность DTMF символов, включающую символы '
и ,
. Каждый такой символ обеспечивают паузу в 1 секунду в наборе DTMF.
В зависимости от указанного протокола (proto
):
* sipinfo
- производит отправку запроса INFO с передачей DTMF символа.
* rfc2833
- производит отправку RTP пакетов согласно протоколу RFC-2833.
Отправка сообщения асинхронная, итоговый результат работы не сообщается. Успешный ответ означает лишь факт отправки запроса или серии RTP-пакетов.
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор диалога, подлежащего переводу в конференцию. Передается как часть Endpoint URI. В качестве параметра используется при отправке команды из сценария компонентом Операция. При отправке команды из сценария существуют и другие способы указания диалога, альтернативные этому. Все способы указания диалога перечислены ниже в порядке убывания приоритета с кратким описанием. Подробно о них см. в параметрах операции поиска звонка.
|
|
|
Сторона диалога, в которую необходимо направить DTMF-символ, |
|
|
Альтернативное указание стороны диалога ( |
|
|
Признак взятия другой стороны относительно указанной. |
|
|
Выбор режима отправки DTMF-символа ( |
|
|
DTMF-символ для отправки ( |
SEND_DTMF /rest/v1/uc/calls/rDlg-002-WOabz0 HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"dtmf": "2",
"proto": "rfc2833",
"callid": "4139247432@192.168.0.149"
}
Запуск/остановка стенографирования речи одной из сторон (SETUP_ASR)
Включает/выключает запись и распознавание в текст указанного плеча указанного диалога.
Успешный ответ на операцию включения означает лишь факт отправки запроса или серии RTP-пакетов.
При выключении режима ответ на запрос задерживается на несколько секунд до завершения сессии распознавания.
Для получения событий о результате по мере распознавания можно воспользоваться websocket api.
Режим работает при установленной и настроенной подсистеме стенографирования речи (мастер-домен, settings.record_asr_options)
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор диалога, подлежащего переводу в конференцию. Передается как часть Endpoint URI. В качестве параметра используется при отправке команды из сценария компонентом Операция. При отправке команды из сценария существуют и другие способы указания диалога, альтернативные этому. Все способы указания диалога перечислены ниже в порядке убывания приоритета с кратким описанием. Подробно о них см. в параметрах операции поиска звонка.
|
|
|
Операция: |
|
|
Указание уникального имени слоя. Поддерживается одновременно несколько слоев, при указании существующего слоя происходит его замещение. Для того, чтобы остановить запись и распознавание, также требуется указать существующий слой. |
|
|
Сторона диалога, которую необходимо отправить на стенографирование, |
|
|
Альтернативное указание стороны диалога ( |
|
|
Признак взятия другой стороны относительно указанной. |
|
|
Для операции остановки устанавливает режим ожидания и возврата итогового текста. В случае true (по умолчанию) ответ задерживается на 2-3 секунды. |
SETUP_ASR /rest/v1/uc/calls/rDlg-002-WOabz0 HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"layer": "default",
"side": "b"
}
Включение/выключение (добавление/удаление) канала записи диалога (SETUP_RECORD)
Включает/выключает канал записи указанного диалога.
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор диалога, подлежащего переводу в конференцию. Передается как часть Endpoint URI. В качестве параметра используется при отправке команды из сценария компонентом Операция. При отправке команды из сценария существуют и другие способы указания диалога, альтернативные этому. Все способы указания диалога перечислены ниже в порядке убывания приоритета с кратким описанием. Подробно о них см. в параметрах операции поиска звонка.
|
|
|
Операция: |
|
|
Указание уникального имени слоя. Поддерживается одновременно несколько слоев, при указании существующего слоя происходит его замещение. Для того, чтобы остановить запись и распознавание, также требуется указать существующий слой. |
|
|
Сторона диалога, которую необходимо поставить на запись, |
|
|
Альтернативное указание стороны диалога ( |
SETUP_RECORD /rest/v1/uc/calls/rDlg-002-WOabz0 HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"layer": "default"
}
Управление метками диалога (SETUP_BINDINGS)
Осуществляет управление метками указанного диалога.
Метки диалога - строковые значения, привязанные к конкретным разговорам/диалогам, устанавливаемые через API или сценариями. Метки доступны в любой момент жизненного цикла разговора вплоть до его завершения. Метки сохраняются при переводе звонка и передаются в новый переведенный разговор.
На метках основана привязка к сеансам обслуживания в КЦ (название "seance_…"), а также механизм post call survey (название "PCS:…").
В компоненте сценария Операция управление метками доступно через отдельную группу команд (метки).
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор диалога, подлежащего переводу в конференцию. Передается как часть Endpoint URI. В качестве параметра используется при отправке команды из сценария компонентом Операция. При отправке команды из сценария существуют и другие способы указания диалога, альтернативные этому. Все способы указания диалога перечислены ниже в порядке убывания приоритета с кратким описанием. Подробно о них см. в параметрах операции поиска звонка.
|
|
|
Операция:
|
|
|
Указание метки или списка меток. |
SETUP_BINDINGS /rest/v1/uc/calls/rDlg-002-WOabz0 HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"command": "add",
"label": ["aaa", "bbb"]
}
Завершение звонка (DELETE)
Завершает диалог. Сервер выступает инициатором разрыва для обоих абонентов (отправляет SIP-запрос BYE обоим абонентам). Если диалог находится в состоянии вызова, то всем вызываемым абонентам отправляется SIP-запрос CANCEL.
В текущей версии завершение носит внешний характер без указания в событиях класса callevents
признака привязки к действиям стороны A или стороны B.
При выполнении запроса из сценария и обнаружении нескольких диалогов производится завершение их всех.
См. также
-
API /rest/v1/uc/calls_by_participation для управления ограниченным набором звонков домена с участием авторизованного пользователя.
-
API /rest/v1/uc/conferences для управления произвольными конференциями домена.
-
Компонент сценариев Операция.
-
Роль b2b.
-
Роль mware.
-
Роль callstore.