Registra uma resposta de áudio curta do chamador.
Um bot pode utilizar isso para capturar uma resposta de voz de um chamador depois que eles forem solicitados a obter uma resposta.
Para obter mais informações sobre como lidar com operações, examine commsOperation
Essa ação não se destina a registrar a chamada inteira. O comprimento máximo da gravação é de 2 minutos. A gravação não é salva permanentemente pela Plataforma de Comunicações de Nuvem e é descartada logo após o término da chamada. O bot deve baixar a gravação imediatamente após a conclusão da operação de gravação usando o valor recordingLocation fornecido na notificação concluída.
Nota: Qualquer mídia coletada pode não ser persistente. Verifique se você está em conformidade com as leis e regulamentos de sua área quando se trata de gravar chamadas. Consulte um advogado para obter mais informações.
Escolha a permissão ou as permissões marcadas como menos privilegiadas para essa API. Use uma permissão ou permissões privilegiadas mais altas somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.
Os prompts a serem reproduzidos. O tamanho máximo da coleção mediaPrompt com suporte é 1.
bargeInAllowed
Booliano
Se for true, a solicitação recordResponse entrará em outras solicitações existentes de registro/playprompt na fila/atualmente processando. Padrão = false.
initialSilenceTimeoutInSeconds
Int32
O silêncio inicial máximo (silêncio do usuário) permitido a partir do momento em que iniciamos a operação de resposta de registro antes do tempo limite e falhamos na operação. Se estivermos tocando um prompt, esse temporizador será iniciado após a conclusão do prompt. Padrão = 5 segundos, Min = 1 segundo, Max = 120 segundos
maxSilenceTimeoutInSeconds
Int32
Tempo máximo de silêncio (pausa) permitido após um usuário começar a falar. Padrão = 5 segundos, Min = 1 segundo, Max = 120 segundos.
maxRecordDurationInSeconds
Int32
Duração máxima para a operação recordResponse antes de interromper a gravação. Padrão = 5 segundos, Min = 1 segundo, Max = 120 segundos.
playBeep
Booliano
Se for verdadeiro, reproduz um bipe para indicar ao usuário que ele pode começar a gravar sua mensagem. Padrão = true.
stopTones
String collection
Parar os tons especificados para encerrar a gravação.
clientContext
Cadeia de caracteres
Cadeia de caracteres de contexto de cliente exclusiva. O limite máximo é de 256 chars.
Resposta
Esse método retorna um 200 OK código de resposta e um cabeçalho Local com um URI para o recordOperation criado para essa solicitação.
Exemplo
O exemplo a seguir mostra como chamar essa API.
Exemplo 1: registra uma resposta de áudio curta do chamador
// 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://zcusa.951200.xyz/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);
Nota: Você não pode registrar ou persistir o conteúdo da mídia de chamadas ou reuniões que seu aplicativo acessa ou dados derivados desse conteúdo de mídia. Verifique se você está em conformidade com as leis e regulamentos de sua área em relação à proteção de dados e confidencialidade das comunicações. Confira os Termos de Uso e converse com sua assessoria jurídica para saber mais.
Solicitação
GET https://file.location/17e3b46c-f61d-4f4d-9635-c626ef18e6ad
Authorization: Bearer <recordingAccessToken>
Resposta
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)