Visão geral da gravação de chamadas

Nota

A interoperabilidade da gravação de chamadas para o Teams está agora em Pré-visualização Pública.

A Gravação de Chamadas permite gravar vários cenários de chamada disponíveis nos Serviços de Comunicação do Azure, fornecendo-lhe 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 da sua lógica de negócios do lado do servidor. Além disso, as gravações podem ser acionadas por uma ação do usuário que diz ao aplicativo do servidor para iniciar a gravação.

Dependendo das suas necessidades comerciais, pode utilizar a Gravação de Chamadas para diferentes implementações de chamadas 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.

Mas também, você pode usar a Gravação de Chamadas para gravar fluxos de trabalho complexos de chamadas de entrada e saída PSTN ou VoIP gerenciados pela Automação de Chamadas. 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 que são armazenados por 48 horas em um armazenamento temporário integrado. Você pode recuperar os arquivos e levá-los para a solução de armazenamento de longo prazo de sua escolha. A Gravação de Chamadas 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 chamadas que suporta as necessidades do seu negócio

A Gravação de Chamadas suporta várias saídas de mídia e tipos de conteúdo para atender às necessidades e casos de uso da sua empresa. Você pode usar formatos mistos para cenários como manter registros, anotações de reunião, treinamento e treinamento ou até mesmo conformidade e adesão. Ou, você pode usar o formato de áudio não misturado para abordar 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 do 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 padrão 3x3 (alto-falantes mais ativos) com suporte a nome de exibição

Áudio

Tipo de Canal Formato do 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 misto de todos os participantes
misto .wav 16 kHz 256 kbps 1,92 MB/min arquivo único, canal único áudio misto de todos os participantes
não misturado .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 da taxa de dados nas tabelas acima refletem o máximo teórico. O formato WAV não é comprimido e a taxa de bits é fixa, pelo que os cálculos da taxa de dados são exatos.

Obtenha controlo total sobre as suas gravações com as nossas APIs de Gravação de Chamadas

As APIs de gravação de chamadas podem ser usadas para gerenciar a gravação por meio de gatilhos internos de lógica de negócios, como um aplicativo que cria uma chamada em grupo e grava a conversa. Além disso, as gravações podem ser acionadas por uma ação do usuário que diz ao aplicativo do servidor para iniciar a gravação. As APIs de gravação de chamadas usam exclusivamente o para iniciar a serverCallId gravação. Para saber como obter o , consulte o nosso Guia de início rápido de gravação de serverCallIdchamadas. A recordingId é retornado quando a gravação é iniciada, que é usada para operações de acompanhamento, como pausar e retomar.

Operação Opera em Comentários
Comece a gravar serverCallId Devoluções recordingId
Obter estado de gravação recordingId Devoluções RecordingStateResult
Pausar a gravação recordingId Pausar e retomar a gravação de chamadas permite que você ignore a gravação de uma parte de uma chamada ou reunião e retome a gravação em um único arquivo.
Retomar a gravação recordingId Retoma uma operação de gravação pausada. O conteúdo é incluído no mesmo arquivo que o conteúdo anterior à pausa.
Parar gravação recordingId Interrompe a gravação e inicia o processamento final de mídia para download de arquivos.

Notificações da Grade de Eventos

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

Nota

Os Serviços de Comunicação do Azure fornecem armazenamento de mídia de curto prazo para gravações. As gravações ficarã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 Microsoft.Communication.RecordingFileStatusUpdated de grade de eventos é publicada quando uma gravação está pronta para recuperação, geralmente 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 , que são usadas para recuperar mídia gravada e metadataLocationum 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 regulamentares 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 consintam com a gravação de suas comunicações. É sua responsabilidade usar as capacidades de gravação de chamadas em conformidade com a lei. O Cliente deve obter o consentimento das partes das comunicações gravadas em conformidade com as leis aplicáveis a cada participante.

Os regulamentos em torno da manutenção de dados pessoais exigem a capacidade de exportar dados do usuário. Para suportar esses requisitos, os arquivos de metadados de gravação incluem o participantId para cada participante da participants chamada na matriz. Você pode fazer referência cruzada à Identidade de Usuário dos Serviços de Comunicação do Azure na matriz com suas participants identidades de usuário interno para identificar os participantes de uma chamada.

Próximos passos

Aqui estão alguns artigos de seu interesse: