Запись короткого голосового ответа звонящего.
Бот может использовать его для записи голосового ответа от вызывающего абонента после того, как ей будет предложено ответ.
Дополнительные сведения об обработке операций см. в статье commsOperation.
Это действие не предназначено для записи всего вызова. Максимальная продолжительность записи составляет 2 минуты. Запись не сохраняется на постоянной основе платформой Cloud Communications Platform и удаляется вскоре после завершения вызова. Бот должен быстро скачать запись после завершения операции записи, используя значение recordingLocation, указанное в уведомлении о завершении.
Примечание: Любой собранный носитель не может сохраняться. Убедитесь, что вы соответствуете законам и нормативным актам вашего района, когда дело доходит до записи звонков. Для получения дополнительной информации обратитесь к адвокату.
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения
Разрешения с наименьшими привилегиями
Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись)
Подсказки для воспроизведения. Максимальный поддерживаемый размер коллекции 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.
Этот метод возвращает 200 OK код ответа и заголовок Location с универсальным кодом ресурса (URI) для объекта recordOperation, созданного для этого запроса.
Пример
В приведенном ниже примере показано, как вызывать этот API.
Пример 1. Запись короткого звукового ответа от вызывающего объекта
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Communications.Calls.Item.RecordResponse;
using Microsoft.Graph.Models;
var requestBody = new RecordResponsePostRequestBody
{
BargeInAllowed = true,
ClientContext = "d45324c1-fcb5-430a-902c-f20af696537c",
Prompts = new List<Prompt>
{
new MediaPrompt
{
OdataType = "#microsoft.graph.mediaPrompt",
MediaInfo = new MediaInfo
{
Uri = "https://cdn.contoso.com/beep.wav",
ResourceId = "1D6DE2D4-CD51-4309-8DAA-70768651088E",
},
},
},
MaxRecordDurationInSeconds = 10,
InitialSilenceTimeoutInSeconds = 5,
MaxSilenceTimeoutInSeconds = 2,
PlayBeep = true,
StopTones = new List<string>
{
"#",
"1",
"*",
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Communications.Calls["{call-id}"].RecordResponse.PostAsync(requestBody);
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.communications.calls.item.recordresponse.RecordResponsePostRequestBody recordResponsePostRequestBody = new com.microsoft.graph.communications.calls.item.recordresponse.RecordResponsePostRequestBody();
recordResponsePostRequestBody.setBargeInAllowed(true);
recordResponsePostRequestBody.setClientContext("d45324c1-fcb5-430a-902c-f20af696537c");
LinkedList<Prompt> prompts = new LinkedList<Prompt>();
MediaPrompt prompt = new MediaPrompt();
prompt.setOdataType("#microsoft.graph.mediaPrompt");
MediaInfo mediaInfo = new MediaInfo();
mediaInfo.setUri("https://cdn.contoso.com/beep.wav");
mediaInfo.setResourceId("1D6DE2D4-CD51-4309-8DAA-70768651088E");
prompt.setMediaInfo(mediaInfo);
prompts.add(prompt);
recordResponsePostRequestBody.setPrompts(prompts);
recordResponsePostRequestBody.setMaxRecordDurationInSeconds(10);
recordResponsePostRequestBody.setInitialSilenceTimeoutInSeconds(5);
recordResponsePostRequestBody.setMaxSilenceTimeoutInSeconds(2);
recordResponsePostRequestBody.setPlayBeep(true);
LinkedList<String> stopTones = new LinkedList<String>();
stopTones.add("#");
stopTones.add("1");
stopTones.add("*");
recordResponsePostRequestBody.setStopTones(stopTones);
var result = graphClient.communications().calls().byCallId("{call-id}").recordResponse().post(recordResponsePostRequestBody);
Примечание: Вы не можете записывать или иным образом сохранять содержимое мультимедиа из звонков или собраний, к которым обращается ваше приложение, или данные, полученные из этого содержимого мультимедиа. Убедитесь, что вы соответствуете законам и нормативным актам вашей области в отношении защиты данных и конфиденциальности сообщений. Дополнительные сведения можно узнать из условий использования и обратившись за юридической помощью.
Запрос
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)