Visão geral da Gravação de Chamada

Observação

A interoperabilidade da Gravação de Chamadas para Equipes está agora em Visualização Pública.

A Gravação de Chamada permite que você grave vários cenários de chamada disponíveis no Serviços de Comunicação do Azure fornecendo um conjunto de APIs para iniciar, parar, pausar e retomar a gravação. Seja uma chamada PSTN, WebRTC ou SIP, essas APIs podem ser acessadas a partir de sua lógica de negócios do lado do servidor. Além disso, as gravações podem ser disparadas por uma ação do usuário que informará ao aplicativo do servidor para iniciar a gravação.

Dependendo de suas necessidades de negócios, você pode usar a Gravação de Chamada para diferentes implementações de chamada dos Serviços de Comunicação do Azure. Por exemplo, você pode gravar chamadas de áudio e vídeo 1:1 ou 1:N:

Diagram showing a call that it's being recorded.

Além disso, você pode usar a Gravação de Chamada para registrar fluxos de trabalho de chamada de entrada e saída PSTN ou VoIP complexos gerenciados pela Automação de Chamada. Independentemente de como você estabeleceu a chamada, a Gravação de Chamada permite produzir arquivos de mídia misturados ou não misturados que são armazenados por 48 horas em um armazenamento temporário interno. Você pode recuperar os arquivos e colocá-los na solução de armazenamento de longo prazo de sua escolha. A Gravação de Chamada dá suporte a todas as regiões de dados dos Serviços de Comunicação do Azure.

Diagram showing call recording architecture.

Gravação de Chamada compatível com suas necessidades de negócios

A Gravação de Chamada é compatível com várias saídas de mídia e tipos de conteúdo para atender às suas necessidades de negócios e casos de uso. Você pode usar formatos misturados para cenários como manter registros, anotações de reunião, coaching e treinamento ou até mesmo para conformidade e adesão. Ou, você pode usar o formato de áudio não misturado para lidar com casos de uso de garantia de qualidade ou até mesmo cenários mais complexos, como análises avançadas ou processos pós-chamada sofisticados baseados em IA (Inteligência Artificial).

Vídeo

Tipo de Canal Formato de conteúdo Resolução Taxa de amostragem Taxa de bits Taxa de dados Saída Descrição
misto mp4 1920x1080, 16 FPS (quadros por segundo) 16 kHz 1 Mbps 7,5 MB/min* arquivo único, canal único Vídeo misto em uma disposição de bloco 3x3 padrão (alto-falantes mais ativos) com suporte a nome de exibição

Áudio

Tipo de Canal Formato de conteúdo Taxa de amostragem Taxa de bits Taxa de dados Saída Descrição
misto mp3 16 kHz 48 kbps 0,36 MB/min* arquivo único, canal único áudio misturado de todos os participantes
misto WAV 16 kHz 256 Kbps 1,92 MB/min arquivo único, canal único áudio misturado de todos os participantes
não misto WAV 16 kHz 256 Kbps 1,92 MB/min* por canal arquivo único, até 5 canais wav áudio não misturado, um participante por canal, até cinco canais

[*NOTA] Os formatos Mp3 e Mp4 usam compressão com perdas que resulta em taxa de bits variável; Portanto, os valores de taxa de dados nas tabelas acima refletem o máximo teórico. O formato WAV é descompactado e a taxa de bits é fixa, portanto, os cálculos de taxa de dados são exatos.

Obter controle total de suas gravações com nossas APIs de Gravação de Chamada

As APIs de Gravação de Chamada podem ser usadas para gerenciar a gravação por meio de gatilhos de lógica de negócios internos, como um aplicativo que cria uma chamada em grupo e grava a conversa. Além disso, as gravações podem ser disparadas por uma ação do usuário que informará ao aplicativo do servidor para iniciar a gravação. As APIs de Gravação de Chamada usam exclusivamente a serverCallId para iniciar a gravação. Para saber como obter o serverCallId, confira o Início Rápido da Gravação de Chamada. Um recordingId é retornado quando a gravação é iniciada, que é usada para operações de acompanhamento, como pausar e retomar.

Operação Opera em Comentários
Iniciar gravação serverCallId Retorna recordingId
Obter o estado da gravação recordingId Retorna RecordingStateResult
Pausar a gravação recordingId A pausa e a retomada da gravação de chamada permite que você ignore a gravação de uma parte de uma chamada ou uma reunião e retome a gravação em um só arquivo.
Retomar a gravação recordingId Retorna uma operação de gravação Pausada. O conteúdo está incluído no mesmo arquivo que o conteúdo de antes da pausa.
Parar a gravação recordingId Para a gravação e inicia o processamento de mídia final para download de arquivo.

Notificações da Grade de Eventos

A Gravação de Chamada usa a Grade de Eventos do Azure para fornecer notificações relacionadas à mídia e aos metadados.

Observação

Os Serviços de Comunicação do Azure fornecem armazenamento de mídia de curto prazo para gravações. As gravações estarão disponíveis para download por 48 horas. Após 48 horas, as gravações não estarão mais disponíveis.

Uma notificação da Grade de Eventos Microsoft.Communication.RecordingFileStatusUpdated será publicada quando uma gravação estiver pronta para a recuperação, normalmente alguns minutos após a conclusão do processo de gravação (por exemplo, reunião encerrada, gravação interrompida). As notificações de eventos de gravação incluem contentLocation e metadataLocation, que são usados para recuperar a mídia gravada e um arquivo de metadados de gravação.

Referência do esquema de notificação

{
    "id": string, // Unique guid for event
    "topic": string, // /subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}
    "subject": string, // /recording/call/{call-id}/serverCallId/{serverCallId}/recordingId/{recordingId}
    "data": {
        "recordingStorageInfo": {
            "recordingChunks": [
                {
                    "documentId": string, // Document id for retrieving from storage
                    "index": int, // Index providing ordering for this chunk in the entire recording
                    "endReason": string, // Reason for chunk ending: "SessionEnded", "ChunkMaximumSizeExceeded”, etc.
                    "metadataLocation": <string>,  // url of the metadata for this chunk
                    "contentLocation": <string>,   // url of the mp4, mp3, or wav for this chunk
                    "deleteLocation": <string>     // url of the mp4, mp3, or wav to delete this chunk
                }
            ]
        },
        "recordingStartTime": string, // ISO 8601 date time for the start of the recording
        "recordingDurationMs": int, // Duration of recording in milliseconds
        "sessionEndReason": string // Reason for call ending: "CallEnded", "InitiatorLeft", etc.
    },
    "eventType": string, // "Microsoft.Communication.RecordingFileStatusUpdated"
    "dataVersion": string, // "1.0"
    "metadataVersion": string, // "1"
    "eventTime": string // ISO 8601 date time for when the event was created
}

Referência de esquema de metadados

{
  "resourceId": <string>,           // stable resource id of the Azure Communication Services resource recording
  "callId": <string>,               // id of the call
  "chunkDocumentId": <string>,      // object identifier for the chunk this metadata corresponds to
  "chunkIndex": <number>,           // index of this chunk with respect to all chunks in the recording
  "chunkStartTime": <string>,       // ISO 8601 datetime for the start time of the chunk this metadata corresponds to
  "chunkDuration": <number>,        // [Chunk duration has a maximum of 4 hours] duration of the chunk this metadata corresponds to in milliseconds
  "pauseResumeIntervals": [
              "startTime": <string>,          // ISO 8601 datetime for the time at which the recording was paused
              "duration": <number>            // duration of the pause in the recording in milliseconds
                          ],
  "recordingInfo": {
               "contentType": <string>,        // content type of recording, e.g. audio/audioVideo
               "channelType": <string>,        // channel type of recording, e.g. mixed/unmixed
               "format": <string>,             // format of the recording, e.g. mp4/mp3/wav
               "audioConfiguration": {
                   "sampleRate": <number>,       // sample rate for audio recording
                   "bitRate": <number>,          // bitrate for audio recording
                   "channels": <number>          // number of audio channels in output recording
                                     }
                    },
  "participants": [
    {
      "participantId": <string>,    // participant identifier of a participant captured in the recording
      "channel": <number>           // channel the participant was assigned to if the recording is unmixed
    }
  ]
}

Questões regulatórias e de privacidade

Muitos países/regiões e estados têm leis e regulamentos que se aplicam à gravação de chamadas. PSTN, chamadas de voz e vídeo geralmente exigem que os usuários autorizem a gravação de suas comunicações. É sua responsabilidade usar os recursos de gravação de chamadas em conformidade com a lei. Você precisa obter o consentimento das partes de comunicações registradas de uma forma que esteja em conformidade com as leis aplicáveis a cada participante.

As regulamentações relacionadas à manutenção de dados pessoais exigem a capacidade de exportar os dados do usuário. Para dar suporte a esses requisitos, a gravação de arquivos de metadados inclui a participantId de cada participante da chamada na matriz participants. Você pode fazer referência cruzada da Identidade do Usuário dos Serviços de Comunicação do Azure na participants matriz com suas identidades de usuário interno para identificar os participantes de uma chamada.

Próximas etapas

Aqui estão alguns artigos que podem interessar a você: