Compartilhar via


Visão geral da Gravação de Chamada

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 por meio da 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:

Diagrama mostrando uma chamada que está sendo gravada.

Você também 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 Chamadas permite que você produza arquivos de mídia mistos ou não misturados armazenados por 24 horas em um armazenamento temporário interno. Você pode recuperar os arquivos, movê-los para seu próprio Traga seu próprio armazenamento do Repositório de Blobs do Azure ou uma solução de armazenamento 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.

Diagrama mostrando a arquitetura de gravação de chamadas.

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 sem mistura para lidar com casos de uso de garantia de qualidade ou cenários ainda mais complexos, como análise avançada 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 (a maioria dos alto-falantes ativos) com suporte ao 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

[*OBSERVAÇÃO] Os formatos Mp3 e Mp4 usam compactação com perda que resulta em taxa de bits variável; portanto, os valores de taxa de dados nas tabelas anteriores 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

Você pode usar as APIs de Gravação de Chamada 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 pode 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 estão disponíveis para download por 24 horas. Após 24 horas, as gravações não estarão mais disponíveis.

Uma notificação da Grade de Eventos Microsoft.Communication.RecordingFileStatusUpdated é publicada quando uma gravação está pronta para recuperação, geralmente, alguns minutos após a conclusão do processo de gravação, como reunião encerrada e 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
                                     },
               "videoConfiguration": {
                   "longerSideLength": <number>,        // longerSideLength for video recording
                   "shorterSideLength": <number>,       // shorterSideLength for video recording
                   "frameRate": <number>,               // frameRate for video recording
                   "bitRate": <number>                  // bitrate for video 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. Chamadas PSTN, voz e vídeo geralmente exigem que os usuários consentam com 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 à Identidade do Usuário dos Serviços de Comunicação do Azure na matriz participants com suas identidades de usuário internas para identificar os participantes em uma chamada.

Próximas etapas

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