call: recordResponse

Namespace: microsoft.graph

Registra uma resposta de áudio curta do chamador. Um bot pode utilizar isso para capturar uma resposta de voz de um chamador depois que ele for solicitado a fornecer uma resposta.

Para obter mais informações sobre como lidar com operações, consulte commsOperation

Observação: Isso só tem suporte para chamadas iniciadas com serviceHostedMediaConfig.

Essa ação não se destina a gravar a chamada inteira. A duração máxima da gravação é de 2 minutos. A gravação não é salva permanentemente pela Plataforma de Comunicações em 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.

Observação: As mídias coletadas não podem ser mantidas. Verifique se você está em conformidade com as leis e regulamentos de sua área quando se trata de gravação de chamadas. Consulte um advogado para obter mais informações.

Essa API está disponível nas seguintes implantações de nuvem nacional.

Serviço global Governo dos EUA L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos 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.

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) Sem suporte. Sem suporte.
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application Calls.AccessMedia.All Indisponível.

Solicitação HTTP

POST /communications/calls/{id}/recordResponse

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.

Corpo da solicitação

Forneça um objeto JSON com os seguintes parâmetros no corpo da solicitação.

Parâmetro Tipo Descrição
prompts coleção mediaPrompt 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 invadirá outras solicitações de registro/playprompt existentes na fila/processamento atual. Padrão = false.
initialSilenceTimeoutInSeconds Int32 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 de atingirmos o tempo limite e falharmos na operação. Se estivermos reproduzindo um prompt, esse temporizador será iniciado após o término do prompt. Padrão = 5 segundos, Mín. = 1 segundo, Máx. = 120 segundos
maxSilenceTimeoutInSeconds Int32 Tempo máximo de silêncio (pausa) permitido depois que um usuário começou a falar. Padrão = 5 segundos, Mín. = 1 segundo, Máx. = 120 segundos.
maxRecordDurationInSeconds Int32 Duração máxima da operação recordResponse antes de interromper a gravação. Padrão = 5 segundos, Mín. = 1 segundo, Máx. = 120 segundos.
playBeep Booliano Se verdadeiro, reproduz um bipe para indicar ao usuário que ele pode iniciar a gravação da mensagem. Padrão = true.
stopTones String collection Parar 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 caracteres.

Resposta

Esse método retorna um código de 200 OK resposta e um cabeçalho Location com um URI para o recordOperation criado para essa solicitação.

Exemplo

O exemplo a seguir mostra como chamar essa API.

Exemplo 1: grava uma breve resposta de áudio do chamador

Solicitação

O exemplo a seguir mostra a solicitação.

POST https://graph.microsoft.com/v1.0/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", "*" ]
}
Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

HTTP/1.1 200 OK
Content-Type: application/json
Location: https://graph.microsoft.com/v1.0/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",
  "resultInfo": null,
  "recordingLocation": null,
  "clientContext": "d45324c1-fcb5-430a-902c-f20af696537c"
}
Notificação - operação concluída
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",
        "resultInfo": {
          "@odata.type": "#microsoft.graph.resultInfo",
          "code": 200,
          "subcode": 8515,
          "message": "Action completed, max record duration reached."
        },
        "recordingLocation": "https://file.location/17e3b46c-f61d-4f4d-9635-c626ef18e6ad",
        "recordingAccessToken": "<access-token>"
      }
    }
  ]
}

Exemplo 2: Recuperando o arquivo de gravação

Observação: Você NÃO pode gravar ou manter o conteúdo de mídia de chamadas ou reuniões que seu aplicativo acessa ou dados derivados desse conteúdo de mídia. Certifique-se de estar 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)