Introducción a la grabación de llamadas

Nota:

La interoperabilidad de grabación de llamadas para Teams está ahora en versión preliminar pública.

La grabación de llamadas le permite grabar varios escenarios de llamada disponibles en Azure Communication Services al proporcionar un conjunto de API para iniciar, detener, pausar y reanudar la grabación. Ya sea una llamada RTC, WebRTC o SIP, se puede acceder a estas API desde la lógica de negocios del lado servidor. Además, las grabaciones se pueden desencadenar con una acción del usuario que indica a la aplicación del servidor que inicie la grabación.

En función de sus necesidades empresariales, puede usar la grabación de llamadas para diferentes implementaciones de llamadas de Azure Communication Services. Por ejemplo, puede grabar llamadas de audio y vídeo 1:1 o 1:N:

Diagram showing a call that it's being recorded.

Pero también puede usar la grabación de llamadas para grabar flujos de trabajo complejos de llamadas entrantes y salientes RTC o VoIP administrados por la automatización de llamadas. Independientemente de cómo haya establecido la llamada, la grabación de llamadas le permite producir archivos multimedia mezclados o sin mezclar que se almacenan durante 48 horas en un almacenamiento temporal integrado. Puede recuperar los archivos y llevarlos a la solución de almacenamiento a largo plazo de su elección. La característica de grabación de llamadas puede usarse en todas las regiones de datos de Azure Communication Services.

Diagram showing call recording architecture.

Grabación de llamadas compatible con sus necesidades empresariales

La grabación de llamadas admite múltiples salidas multimedia y tipos de contenido para satisfacer las necesidades y los casos de uso de su empresa. Puede utilizar formatos mezclados para situaciones como el mantenimiento de registros, las notas de las reuniones, el entrenamiento y la formación, o incluso el cumplimiento y la adhesión. O bien, puede usar el formato de audio sin mezclar para abordar casos de uso de control de calidad o incluso escenarios más complejos, como análisis avanzados o procesos de llamadas posteriores sofisticados basados en inteligencia artificial (inteligencia artificial).

Vídeo

Tipo de canal Formato de contenido Solución Frecuencia de muestreo Velocidad de bits Velocidad de datos Salida Descripción
mixta mp4 1920x1080, 16 FPS (fotogramas por segundo) 16 KHz 1 mbps 7,5 MB/min* Archivo único, canal único vídeo mixto en una disposición predeterminada de iconos de 3x3 (la mayoría de los altavoces activos) con compatibilidad con el nombre para mostrar

Audio

Tipo de canal Formato de contenido Frecuencia de muestreo Velocidad de bits Velocidad de datos Salida Descripción
mixta mp3 16 KHz 48 kbps 0,36 MB/min* Archivo único, canal único audio mezclado de todos los participantes
mixta wav 16 KHz 256 kbps 1,92 MB/min Archivo único, canal único audio mezclado de todos los participantes
sin mezclar wav 16 KHz 256 kbps 1,92 MB/min* por canal un solo archivo de hasta 5 canales wav audio sin mezclar, un participante por canal, hasta cinco canales

[*NOTA] Los formatos Mp3 y Mp4 usan compresión de pérdida que da como resultado una velocidad de bits variable; por lo tanto, los valores de velocidad de datos de las tablas anteriores reflejan el máximo teórico. El formato WAV es sin comprimir y la velocidad de bits es fija, por lo que los cálculos de velocidad de datos son exactos.

Obtenga control total sobre sus grabaciones con nuestras API de grabación de llamadas

Se pueden usar API de grabación de llamadas para administrar la grabación mediante desencadenadores de lógica de negocios internos, como una aplicación que cree una llamada grupal y grabe la conversación. Además, las grabaciones se pueden desencadenar con una acción del usuario que indica a la aplicación del servidor que inicie la grabación. Las API de grabación de llamadas usan exclusivamente serverCallId para iniciar la grabación. Para obtener información sobre cómo obtener serverCallId, consulte nuestro inicio rápido de grabación de llamadas. Cuando se inicia la grabación, se devuelve un elemento recordingId, que luego se usa para las operaciones de seguimiento, como pausar y reanudar.

Operación Opera en Comentarios
Iniciar grabación serverCallId Devuelve recordingId
Obtener el estado de la grabación recordingId Devuelve RecordingStateResult
Pausar la grabación recordingId Pausar y reanudar la grabación de llamadas le permite omitir la grabación de una parte de una llamada o reunión, y reanudar la grabación en un solo archivo.
Reanudar la grabación recordingId Reanuda una operación de grabación en pausa. El contenido se incluye en el mismo archivo que el contenido anterior a la pausa.
Detener grabación recordingId Detiene la grabación e inicia el procesamiento multimedia final para la descarga de archivos.

Notificaciones de Event Grid

La grabación de llamadas usa Azure Event Grid para proporcionarle notificaciones relacionadas con los elementos multimedia y los metadatos.

Nota:

Azure Communication Services proporciona almacenamiento de elementos multimedia a corto plazo para las grabaciones. Las grabaciones estarán disponibles para descargarse durante un periodo de 48 horas. Después de 48 horas, las grabaciones ya no estarán disponibles.

Se publica una notificación Microsoft.Communication.RecordingFileStatusUpdated de Event Grid cuando una grabación está lista para recuperarla, normalmente unos minutos después de que se haya completado el proceso de grabación (por ejemplo, finalizó la reunión o se detuvo la grabación). Las notificaciones de eventos de grabación incluyen los elementos contentLocation y metadataLocation, que se usan para recuperar los elementos multimedia grabados y un archivo de metadatos de la grabación.

Referencia del esquema de notificación

{
    "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
}

Referencia del esquema de metadatos

{
  "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
    }
  ]
}

Problemas normativos y de privacidad

Muchos países o regiones y estados tienen leyes y reglamentos que se aplican a la grabación de llamadas. Las llamadas RTC, voz y vídeo suelen requerir que los usuarios consienten la grabación de sus comunicaciones. Es su responsabilidad utilizar las capacidades de grabación de llamadas en cumplimento con la ley. Debe obtener el consentimiento de las partes que integran la comunicación grabada de forma que cada participante cumpla las leyes aplicables.

La normativa sobre el mantenimiento de datos personales requiere la capacidad de exportar datos de usuario. Para cumplir con estos requisitos, la grabación de archivos de metadatos incluye el identificador participantId de cada participante de la llamada en la matriz participants. Puede hacer referencia cruzada a la identidad de usuario de Azure Communication Services en la participants matriz con las identidades de usuario internas para identificar a los participantes en una llamada.

Pasos siguientes

Estos son algunos artículos de interés para usted: