call: recordResponse
Пространство имен: microsoft.graph
Важно!
API версии /beta
в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Запись короткого звукового ответа от вызывающего объекта.
Бот может использовать этот API для записи голосового ответа от вызывающего абонента после того, как ей будет предложено ввести ответ.
Дополнительные сведения об обработке операций см. в разделе commsOperation.
Примечание: Этот API поддерживается только для вызовов , инициированных с помощью serviceHostedMediaConfig.
Это действие не предназначено для записи всего вызова. Максимальная продолжительность записи составляет 2 минуты. Облачная коммуникационная платформа не сохраняет запись безвозвратно и удаляет ее вскоре после завершения вызова. Бот должен быстро скачать запись после завершения операции записи, используя значение recordingLocation, указанное в уведомлении о завершении.
Примечание: Вы не можете записывать или иным образом сохранять содержимое мультимедиа из звонков или собраний, к которым обращается ваше приложение, или данные, полученные из этого мультимедийного содержимого. Убедитесь, что вы соответствуете законам и нормативным актам вашей области в отношении защиты данных и конфиденциальности сообщений. Дополнительные сведения см. в разделе Условия использования и проконсультируйтесь с вашим адвокатом.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
---|---|---|---|
✅ | ❌ | ❌ | ❌ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения | Разрешения с наименьшими привилегиями | Более высокие привилегированные разрешения |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | Не поддерживается. | Не поддерживается. |
Делегированные (личная учетная запись Майкрософт) | Не поддерживается. | Не поддерживается. |
Приложение | Calls.AccessMedia.All | Недоступно. |
HTTP-запрос
POST /app/calls/{id}/recordResponse
POST /communications/calls/{id}/recordResponse
Примечание. Путь
/app
является устаревшим. В дальнейшем используйте путь/communications
.
Заголовки запросов
Имя | Описание |
---|---|
Авторизация | Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации. |
Content-Type | application/json. Обязательно. |
Текст запроса
В тексте запроса предоставьте JSON-объект с указанными ниже параметрами.
Параметр | Тип | Описание |
---|---|---|
Запросы | Коллекция MediaPrompt | Подсказки для воспроизведения. Максимальный поддерживаемый размер коллекции mediaPrompt — 1. |
bargeInAllowed | Логический | Если задано значение true, запрос recordResponse будет перемещен в другие существующие запросы в очереди или обработки записей и воспроизведения. По умолчанию = false. |
initialSilenceTimeoutInSeconds | Int32 | Максимальное начальное молчание (молчание пользователя), допустимое с момента запуска операции ответа записи до истечения времени ожидания и сбоя операции. Если мы воспроизводим запрос, этот таймер запускается после завершения запроса. По умолчанию — 5 секунд, мин — 1 секунда, максимум — 120 секунд. |
maxSilenceTimeoutInSeconds | Int32 | Максимальное время молчания (паузы), разрешенное после того, как пользователь начал говорить. По умолчанию — 5 секунд, мин — 1 секунда, максимум — 120 секунд. |
maxRecordDurationInSeconds | Int32 | Максимальная длительность операции recordResponse до остановки записи. По умолчанию — 5 секунд, мин — 1 секунда, максимум — 120 секунд. |
playBeep | Логический | Если значение равно true, воспроизводит звуковой сигнал, указывающий пользователю, что он может начать запись сообщения. По умолчанию = true. |
stopTones | Коллекция строк | Стоп-тона, указанные для завершения записи. |
clientContext | String | Строка уникального контекста клиента. Максимальное ограничение — 256 символов. |
Примечание: Максимальное время записи сокращено с 5 минут до 2 минут.
Отклик
Этот метод возвращает 200 OK
код ответа HTTP и заголовок Location с универсальным кодом ресурса (URI) для объекта recordOperation, созданного для этого запроса.
Пример
В приведенном ниже примере показано, как вызывать этот API.
Пример 1. Запись короткого звукового ответа от вызывающего объекта
Запрос
Ниже показан пример запроса.
POST https://graph.microsoft.com/beta/communications/calls/{id}/recordResponse
Content-Type: application/json
Content-Length: 394
{
"bargeInAllowed": true,
"clientContext": "d45324c1-fcb5-430a-902c-f20af696537c",
"prompts": [
{
"@odata.type": "#microsoft.graph.mediaPrompt",
"mediaInfo": {
"uri": "https://cdn.contoso.com/beep.wav",
"resourceId": "1D6DE2D4-CD51-4309-8DAA-70768651088E"
}
}
],
"maxRecordDurationInSeconds": 10,
"initialSilenceTimeoutInSeconds": 5,
"maxSilenceTimeoutInSeconds": 2,
"playBeep": true,
"stopTones": [ "#", "1", "*" ]
}
Отклик
Ниже показан пример отклика.
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Location: https://graph.microsoft.com/beta/communications/calls/57dab8b1-894c-409a-b240-bd8beae78896/operations/0fe0623f-d628-42ed-b4bd-8ac290072cc5
{
"@odata.type": "#microsoft.graph.recordOperation",
"id": "0fe0623f-d628-42ed-b4bd-8ac290072cc5",
"status": "running",
"completionReason": null,
"resultInfo": null,
"recordingLocation": null,
"clientContext": "d45324c1-fcb5-430a-902c-f20af696537c"
}
Уведомление — операция завершена
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "deleted",
"resourceUrl": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896/operations/0FE0623FD62842EDB4BD8AC290072CC5",
"resourceData": {
"@odata.type": "#microsoft.graph.recordOperation",
"@odata.id": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896/operations/0FE0623FD62842EDB4BD8AC290072CC5",
"@odata.etag": "W/\"54451\"",
"id": "0fe0623f-d628-42ed-b4bd-8ac290072cc5",
"clientContext": "d45324c1-fcb5-430a-902c-f20af696537c",
"status": "completed",
"recordingLocation": "https://file.location/17e3b46c-f61d-4f4d-9635-c626ef18e6ad",
"recordingAccessToken": "<access-token>",
"completionReason": "stopToneDetected"
}
}
]
}
Пример 2. Получение файла записи
Примечание: Вы не можете записывать или иным образом сохранять содержимое мультимедиа из звонков или собраний, к которым обращается ваше приложение, или данные, полученные из этого содержимого мультимедиа. Убедитесь, что вы соответствуете законам и нормативным актам вашей области в отношении защиты данных и конфиденциальности сообщений. Дополнительные сведения см. в разделе Условия использования и проконсультируйтесь с вашим адвокатом.
Запрос
GET https://file.location/17e3b46c-f61d-4f4d-9635-c626ef18e6ad
Authorization: Bearer <recordingAccessToken>
Отклик
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Date: Thu, 17 Jan 2019 01:46:37 GMT
Content-Type: application/octet-stream
(application/octet-stream of size 160696 bytes)
Примечание: Вы не можете записывать или иным образом сохранять содержимое мультимедиа из звонков или собраний, к которым обращается ваше приложение, или данные, полученные из этого содержимого мультимедиа. Убедитесь, что вы соответствуете законам и нормативным актам вашей области в отношении защиты данных и конфиденциальности сообщений. Дополнительные сведения см. в разделе Условия использования и проконсультируйтесь с вашим адвокатом.