Partilhar via


Visão geral da gravação de chamadas

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:

Diagrama mostrando uma chamada que está sendo gravada.

Você também 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 24 horas em um armazenamento temporário interno. Você pode recuperar os arquivos, movê-los em seu próprio Azure Blob Store Bring Your Own Storage ou em uma solução de armazenamento 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.

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

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 Description
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 (a maioria dos alto-falantes 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 Description
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 anteriores refletem o máximo teórico. O formato WAV não é comprimido e a taxa de bits é fixa, de modo 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

Você pode usar APIs de gravação de chamadas 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 pode ser 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 de antes da 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 estão disponíveis para download por 24 horas. Após 24 horas, as gravações não estã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, como reunião encerrada ou gravação interrompida. As notificações de eventos de gravação incluem contentLocation e metadataLocation, que são usadas para recuperar 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 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 dar suporte a 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: