Управление своими конференциями (conferences_by_participation)
Обзор
Управляет существующими активными конференциями посредством команд API (без использования инициатив со стороны SIP-устройств).
Управлению доступны любые конференции за исключением селекторных совещаний, управление которыми производится /rest/v1/api/selectors. В отличие от API /rest/v1/uc/conferences текущий endpoint предоставляет доступ только к тем конференциям, где одним из участников является учетная запись SIP-пользователя, принадлежащая пользователю, который выполняюет API-запрос.
Обслуживание запросов производится ролью mware.
Запросы
HTTP verb | Endpoint | Описание |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Получение списка конференций
Возвращает список активных конференций в пределах текущего домена.
Конференция относится к домену, если маршрутизация на нее проходит через КАФ этого домена (сущность featurecode с типом conference
).
Результат выполнения запроса проходит дополнительную фильтрацию. Возвращаются только те конференции, одним из участников которых является авторизованный пользователь (через любую из принадлежащих ему учетных записей sipuser).
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Фильтр по значениям полей. |
|
|
Список полей для вывода. Доступные поля для выдачи: |
|
|
Смещение в списке ресурсов, подлежащих выдаче. |
|
|
Максимальное количество ресурсов в списке. |
|
|
Порядок сортировки ресурсов в списке. |
|
|
Преобразование в плоский вид составных полей. |
|
|
Возврат лишь количества элементов. |
GET /rest/v1/uc/conferences?offset=0&limit=2 HTTP/1.1
Ответ
Возвращает ограниченное количество полей: confid, confroomnum, confnumber, uri, site, startts, uris. При указании других полей в mask они будут проигнорированы.
Возвращает список объектов, каждый из которых представляет собой отдельный диалог. Состав возвращаемых полей ограничен: confid, confroomnum, confnumber, uri, site, startts, uris
.
При указании других полей в параметре mask
они будут проигнорированы.
Поле | Описание |
---|---|
|
Идентификатор активной конференции, применяемый при формировании endpoint. Уникален в рантайме, однако не является глобально уникальным и может повторяться через некоторое время в рамках одной и той же системы. |
|
Номер конференц-комнаты. Строковое представление числа в десятичном виде. Используется совместно с префиксом featurecode в телефонном номере доступа в конференцию. |
|
Номер конференции. Строковое представление числа в шестнадцатиричном виде.
Используется в идентификаторе конференции |
|
Строковое представление URI конференц-комнаты. Формат: |
|
Название сайта, серверы которого обслуживают конференцию. |
|
Тайм-штамп времени поступления инициирующего SIP-запроса INVITE на сервер конференций. Является представлением момента времени и может быть преобразован к конкретной дате в любом часовом поясе. Например, |
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
[
{
"confid": "rCF-005-PhKjyX",
"confnumber": "PhKjyX",
"confroomnum": "9",
"confuri": "<sip:conf-9@test.rootdomain.ru>",
"site": "SITE1",
"startts": 1572033454296
},
{
"confid": "rCF-005-Sglne4",
"confnumber": "Sglne4",
"confroomnum": "99652",
"confuri": "<sip:conf-99652@test.rootdomain.ru>",
"site": "SITE1",
"startts": 1572036671705
}
]
Поиск конферениции по ключу
Производит поиск ресурса (активной конференции) по указанному ключу.
Возвращается список с идентификаторами обнаруженных конференций, подходящих по условиям поиска.
Поиск конференции производится либо непосредственно, либо через диалог, одним из участников которого является конференция, а другим любой другой SIP-UA.
Применение поисковых полей производится по одному в порядке убывания приоритета в приведенной ниже таблице. Поисковые поля содержат в описании "Значение для поиска". Множественный возврат возможен, например, в случае поиска по логину SIP-пользователя, если он участвует в нескольких диалогах, каждый из которых соединен с конференцией.
Результат выполнения запроса проходит дополнительную фильтрацию. Обнаруживаются только те конференции, одним из участников которых является авторизованный пользователь (через любую из принадлежащих ему учетных записей sipuser).
Параметр | Тип | Описание |
---|---|---|
|
|
Значение для поиска диалога с конференцией. Идентификатор диалога. Уникален в рантайме, однако не является глобально уникальным и может повторяться через некоторое время в рамках одной и той же системы. Например, |
|
|
Значение для поиска диалога с конференцией. Глобально уникальный идентификатор вызова, приводящего к диалогу. Формируется при поступлении в систему SIP-запроса INVITE и существует вплоть до завершения диалога. Присутствует во всех событиях CDR класса callevents. Например |
|
|
Значение для поиска диалога с конференцией. Идентификатор звонка Например, |
|
|
Значение для поиска диалога с конференцией. SIP URI: |
|
|
Значение для поиска диалога с конференцией. Номер телефона или логин SIP-пользователя, используемые в качестве Может использовать дополнительный параметр
По умолчанию Обнаруживаются диалоги, где одной из сторон выступает указанный абонент текущего домена.
Поиск производится аналогично |
|
|
Значение для поиска диалога с конференцией. Идентификатор учетной записи SIP-пользователя. |
|
|
Значение для поиска диалога с конференцией. Логин учетной записи SIP-пользователя. |
|
|
Значение для поиска диалога с конференцией. Номер телефона учетной записи SIP-пользователя. |
|
|
Значение для поиска диалога с конференцией. Идентификатор учетной записи пользователя системы. Если имеет место привязка учетных записей SIP-пользователей к пользователю системы, то обнаруживаются диалоги, где один из этих SIP-пользователей является одним из абонентов. |
|
|
Значение для поиска конференции. Идентификатор конференции, применяемый при формировании endpoint. Уникален в рантайме, однако не является глобально уникальным и может повторяться через некоторое время в рамках одной и той же системы. Например, |
|
|
Значение для поиска конференции. SIP URI конференц-комнаты Например, |
|
|
Значение для поиска конференции. Номер конференц-комнаты. Строковое представление числа в десятичном виде. Используется совместно с префиксом featurecode в телефонном номере доступа в конференцию. Например, |
|
|
Значение для поиска конференции. Номер конференции. Строковое представление числа в шестнадцатиричном виде.
Используется в идентификаторе конференции Например, |
Получение данных конференции
Возвращает информацию об активной конференции.
Запрос проходит предварительную фильтрацию. Для допуска к выполнению необходимо, чтобы указанная конференция имела в качестве одного из участников авторизованного пользователя (через любую из принадлежащих ему учетных записей sipuser).
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор конференции. Передается как часть Endpoint URI. |
|
|
Список полей для вывода. |
|
|
Преобразование в плоский вид составных полей. |
GET /rest/v1/uc/conferences/rCF-005-PhKjyX HTTP/1.1
Ответ
Возвращает объект с представлением конференции.
Поле | Описание |
---|---|
|
Идентификатор активной конференции, применяемый при формировании endpoint. Уникален в рантайме, однако не является глобально уникальным и может повторяться через некоторое время в рамках одной и той же системы. |
|
Номер конференц-комнаты. Строковое представление числа в десятичном виде. Используется совместно с префиксом featurecode в телефонном номере доступа в конференцию. |
|
Номер конференции. Строковое представление числа в шестнадцатиричном виде.
Используется в идентификаторе конференции |
|
Строковое представление URI конференц-комнаты. Формат: |
|
Название сайта, серверы которого обслуживают конференцию. |
|
Тайм-штамп времени поступления инициирующего SIP-запроса INVITE на сервер конференций. Является представлением момента времени и может быть преобразован к конкретной дате в любом часовом поясе. Например, |
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"confid": "rCF-005-PhKjyX",
"confnumber": "PhKjyX",
"confroomnum": "9",
"confuri": "<sip:conf-9@test.rootdomain.ru>",
"site": "SITE1",
"startts": 1572033454296
}
Завершение конференции
Завершает активную конференцию.
Сервер выступает инициатором разрыва для всех участников конференции (отправляет каждому SIP-запрос BYE).
Если конференция имеет исходящие звонки, не завершенные окончательным ответом 2xx-6xx
, то всем вызываемым абонентам отправляется SIP-запрос CANCEL.
Результат возвращается сразу после размещения запроса в очереди сервера конференций – без ожидания завершения конференции и ответов всех абонентских устройств.
Получение списка участников конференции
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор конференции. Передается как часть Endpoint URI. |
|
|
Фильтр по значениям полей. |
|
|
Список полей для вывода. Доступные поля для выдачи: |
|
|
Смещение в списке ресурсов, подлежащих выдаче. |
|
|
Максимальное количество ресурсов в списке. |
|
|
Порядок сортировки ресурсов в списке. |
|
|
Преобразование в плоский вид составных полей. |
|
|
Возврат лишь количества элементов. |
GET /rest/v1/uc/conferences/rCF-005-PhKjyX/participants?offset=0&limit=2 HTTP/1.1
Ответ
Поле | Описание |
---|---|
|
Идентификатор участника конференции. Используется в endpoint. |
|
Состояние участника. Варианты значений: |
|
Call-Id плеча между b2b и conf. Содержится в соответствующем заголовке SIP-запроса INVITE (полученного или отправленного). На схеме: |
|
Строковое представление URI конференции (у всех участников одинаковое значение, совпадающиее со значением поля На схеме: |
|
Локальный таг в URI конференции в диалоге с участником на плече с конференцией. На схеме: |
|
Строковое представление URI участника. Формат: На схеме: |
|
Таг в URI абонента в диалоге с участником на плече с конференцией. На схеме: |
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
[
{
"participantid": "139cfa11-016e-04e2-7efe-02004c4f4f50",
"state": "active",
"callid": "rB2-002-1rG74m-01-934846955@192.168.0.146",
"luri": "<sip:conf-9@test.rootdomain.ru>",
"ltag": "rCF-005-9aGAQr",
"ruri": "<sip:13@test.rootdomain.ru>",
"rtag": "rB2-002-ARuy"
},
{
"participantid": "5fade58d-016e-04e2-6ac5-02004c4f4f50",
"state": "active",
"callid": "rB2-002-MonYHz-01-2617018390@192.168.0.147",
"luri": "<sip:conf-9@test.rootdomain.ru>",
"ltag": "rCF-005-AHoiiQ",
"ruri": "<sip:11@test.rootdomain.ru>",
"rtag": "rB2-002-OZQo"
},
{
"participantid": "6f6faa22-016e-047e-e0d8-02004c4f4f50",
"state": "active",
"callid": "rB2-002-aSB1Mw-01-17719884@192.168.0.149",
"luri": "<sip:conf-9@test.rootdomain.ru>",
"ltag": "rCF-005-CZ0Jjl",
"ruri": "<sip:12@test.rootdomain.ru>",
"rtag": "rB2-002-aoMh"
}
]
Добавление участника в конференцию
Инициирует новый вызов из конференции на указанный номер.
Результат возвращается без ожидания ответа абонента сразу после добавления участника в конференцию.
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор конференции. Передается как часть Endpoint URI. |
|
|
Номер вызываемого абонента. |
POST /rest/v1/uc/conferences/rCF-005-PhKjyX/participants HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"to":"2216"
}
Ответ
Поле | Описание |
---|---|
|
Идентификатор конференции. Дублирует идентификатор из endpoint. Может применяться при выполнении команды из сценария и указания конференции отличным от идентификатора способом. |
|
Call-Id инициирующего автоматического звонка IVR→X (отличается от CallId плеч целевого диалога). Присутствует в любом случае. |
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"confid": "rCF-009-5HkaiZ",
"participantid": "c47067b6-016d-9085-40fd-e0d55eb5fab1"
}
Получение данных участника
Возвращает информацию об участнике конференции.
Запрос проходит предварительную фильтрацию. Для допуска к выполнению необходимо, чтобы указанная конференция имела в качестве одного из участников авторизованного пользователя (через любую из принадлежащих ему учетных записей sipuser).
Запрос
Имя | Тип | Описание |
---|---|---|
|
|
Идентификатор конференции. Передается как часть Endpoint URI. |
|
|
Идентификатор участника конференции. Передается как часть Endpoint URI. |
|
|
Список полей для вывода. |
|
|
Преобразование в плоский вид составных полей. |
GET /rest/v1/uc/conferences/rCF-005-PhKjyX/participants/139cfa11-016e-04e2-7efe-02004c4f4f50 HTTP/1.1
Ответ
Возвращает объект с представлением участника конференции.
Поле | Описание |
---|---|
|
Идентификатор участника конференции. Используется в endpoint. |
|
Состояние участника. Варианты значений: |
|
Call-Id плеча между b2b и conf. Содержится в соответствующем заголовке SIP-запроса INVITE (полученного или отправленного). На схеме: |
|
Строковое представление URI конференции (у всех участников одинаковое значение, совпадающиее со значением поля На схеме: |
|
Локальный таг в URI конференции в диалоге с участником на плече с конференцией. На схеме: |
|
Строковое представление URI участника. Формат: На схеме: |
|
Таг в URI абонента в диалоге с участником на плече с конференцией. На схеме: |
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"participantid": "139cfa11-016e-04e2-7efe-02004c4f4f50",
"state": "active",
"callid": "rB2-002-1rG74m-01-934846955@192.168.0.146",
"luri": "<sip:conf-9@test.rootdomain.ru>",
"ltag": "rCF-005-9aGAQr",
"ruri": "<sip:13@test.rootdomain.ru>",
"rtag": "rB2-002-ARuy"
}
Удаление участника конференции
Исключает участника из конференции, в следствие чего абоненту отправляется SIP-запрос BYE.
Результат возвращается сразу после размещения запроса в очереди сервера конференций – без ожидания ответа абонентского устройства.
Запрос
DELETE /rest/v1/uc/conferences/rCF-005-PhKjyX/participants/139cfa11-016e-04e2-7efe-02004c4f4f50 HTTP/1.1
Ответ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"confid": "rCF-005-PhKjyX",
"participantid": "139cfa11-016e-04e2-7efe-02004c4f4f50"
}
HTTP/1.1 404 Not Found
Content-Type: application/json; charset=utf-8
{
"error_code": 1404,
"error_message": "Call/Participant not found"
}
Получение текущей топологии
Возвращает текущую топологию конференции (кто кого слышит). Изначально в конференции все абоненты (участники конференции) друг друга слышат.
Запрос проходит предварительную фильтрацию. Для допуска к выполнению необходимо, чтобы указанная конференция имела в качестве одного из участников авторизованного пользователя (через любую из принадлежащих ему учетных записей sipuser).
Ответ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
[
{
"from": "",
"to": "",
"enabled": true
},
{
"from": "e846809b-0180-4b7a-aebb-7cd30a921f58",
"to": "*",
"enabled": false
},
{
"from": "2919aaa2-0180-4b7a-d155-7cd30a921f58",
"to": "e846809b-0180-4b7a-aebb-7cd30a921f58",
"enabled": true
}
]
Изменение текущей топологии
Применяет модификатор к текущей топологии конференции. Топология есть конфигурация голосовых потоков между участниками - кто кого слышит.
Изначально в конференции все абоненты (участники конференции) друг друга слышат. Такое правило неизменно и всегда присутствует в выдаче первым.
В любой момент можно установить блок от любого участника любому другому участнику. Для этого надо запостить команду на изменение топологии. За один запрос может быть применено сразу несколько команд списком. Все команды применяются последовательно.
Участники указываются через идентификаторы. Идентификаторы генерируются автоматически при поступлении звонка от абонента в конференцию и не изменяются при переводах, а также могут быть сгенерированны сервисом селекторных совещаний. Идентификаторы можно достать запросом GET '/rest/v1/uc/conferences/:id/participants', поле 'participantid'.
В качестве идентификаторов абонентов может быть указана "*", тогда на момент выполнения запроса она будет развернута в список всех абонентов, в том числе вызываемых. Однако после очередного подключения нового абонента он слышит всех, и все его слышат.
При опросе текущей топологии звездочки возвращаются только в первом элементе (он всегда присутствует) - все всех слышат.
Всякий раз применение новых правил изменяет текущую топологию с помощью слияния. Однако первое и основное правило "все всех слышат" всегда неизменно.
Управление топологией управляемых селекторных совещаний несогласовано с логикой селекторных совещаний, и является более низкоуровневым механизмом, способным повлечь неверные данные в приложении управления селекторных совещаний.
Запрос проходит предварительную фильтрацию. Для допуска к выполнению необходимо, чтобы указанная конференция имела в качестве одного из участников авторизованного пользователя (через любую из принадлежащих ему учетных записей sipuser).
См. также
-
API /rest/v1/uc/conferences с доступом к произвольным конференциям домена без ограничений по пользователям.
-
API /rest/v1/uc/calls_by_participation для управления ограниченным набором звонков домена с участием авторизованного пользователя.
-
Роль conf.
-
Роль mware.