Compartir vía


Registros de grabación de llamadas de Azure Communication Services

Azure Communication Services ofrece funcionalidades de registro que sirven para supervisar y depurar la solución de Communication Services. Estas funcionalidades se configuran a través de Azure Portal.

El contenido de este artículo hace referencia a los registros habilitados a través de Azure Monitor (consulte también preguntas más frecuentes). Para habilitar estos registros para Communication Services, consulte Habilitación del registro en Configuración de diagnósticos.

Categorías del registro de recursos

Communication Services ofrece los siguientes tipos de registros que se pueden habilitar:

  • Registros de uso: proporcionan datos de uso asociados a cada oferta de servicio facturada.
  • Registros de resumen de grabación de llamadas: proporcionan información de resumen para las grabaciones de llamadas, como lo siguiente:
    • Duración de la llamada.
    • Contenido multimedia (por ejemplo, audio o vídeo, sin mezclar o transcripción).
    • Tipos de formato usados para la grabación (por ejemplo, WAV o MP4).
    • Motivo por el que ha finalizado la grabación.
  • Registros de operaciones entrantes de grabación: proporcionan información sobre las solicitudes entrantes para las operaciones de grabación de llamadas. Cada entrada se corresponde con el resultado de una llamada a las API de grabación de llamadas, como StartRecording, StopRecording, PauseRecording y ResumeRecording.

Se genera un archivo de grabación al final de una llamada o de una reunión. Un usuario o una aplicación (bot) pueden iniciar y detener la grabación. La grabación también puede finalizar debido a un error del sistema.

Los registros de resumen se publican después de que una grabación esté lista para descargarse. Los registros se publican dentro del tiempo de latencia estándar para los registros de recursos de Azure Monitor. Vea Tiempo de la ingesta de datos de registro en Azure Monitor.

Esquema del registro de uso

Propiedad Descripción
timestamp Marca de tiempo (UTC) de cuando se generó el registro.
operationName Operación asociada al registro.
operationVersion El valor api-version asociado a la operación, si la operación operationName se realizó a través de una API. Si ninguna API se corresponde con esta operación, la versión representa la versión de esa operación en caso de que las propiedades asociadas con la operación cambien en el futuro.
category Categoría de registro del evento. La categoría es la granularidad con la que se pueden habilitar o deshabilitar los registros en un recurso. Las propiedades que aparecen en el blob properties de un evento son las mismas dentro de una categoría de registro y un tipo de recurso concretos.
correlationID Identificador de los eventos correlacionados. Se puede utilizar para identificar eventos correlacionados en varias tablas.
Properties Otros datos aplicables a distintos modos de Communication Services.
recordID Id. único de un registro de uso.
usageType Modo de uso (por ejemplo, Chat, RTC o NAT).
unitType El tipo de unidad en la que se basa el uso para un modo de uso (por ejemplo, minutos, megabytes o mensajes).
quantity Número de unidades usadas o consumidas en este registro.

Esquema de registro de resumen de grabación de llamadas

Nombre de propiedad Tipo de datos Descripción
timeGenerated DateTime Marca de tiempo (UTC) de cuándo se generó el registro.
operationName Cadena Operación asociada a un registro.
correlationId Cadena Id. que se usa para poner en correlación eventos entre tablas.
recordingID Cadena Id. de la grabación a la que hace referencia este registro.
category Cadena Categoría de registro del evento. Los registros con la misma categoría de registro y tipo de recurso tienen los mismos campos de propiedad.
resultType Cadena Estado de la operación.
level Cadena Nivel de gravedad de la operación.
chunkCount Entero Número total de fragmentos creados para la grabación.
channelType Cadena Tipo de canal de la grabación, como mezclado o sin mezclar.
recordingStartTime DateTime Hora a la que se ha iniciado la grabación.
contentType Cadena Contenido de la grabación, es decir, solo audio, audio y vídeo, o transcripción.
formatType Cadena Formato de archivo de la grabación.
recordingLength Double Duración de la grabación en segundos.
audioChannelsCount Entero Número total de canales de audio de la grabación.
recordingEndReason Cadena Motivo por el que ha finalizado la grabación.

Grabación de llamadas y datos de ejemplo

"operationName":            "Call Recording Summary",
"operationVersion":         "1.0",
"category":                 "RecordingSummary",

Una llamada puede tener una o varias grabaciones en función de cuántas veces se desencadene un evento de grabación.

Por ejemplo, si un agente inicia una llamada saliente en una línea grabada y la llamada se interrumpe debido a una señal de red deficiente, callID tendrá un valor de recordingID. Si el agente devuelve la llamada al cliente, el sistema genera una nueva instancia de callID y un nuevo valor recordingID.

Ejemplo: grabación de llamadas para una llamada a una grabación

"properties"
{  
  "TimeGenerated":"2022-08-17T23:18:26.4332392Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "zzzzzz-cada-4164-be10-0000000000",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuZHBvaW5xxxxxxxxFmNjkwxxxxxxxxxxxxSZXNvdXJjZVNwZWNpZmljSWQiOiJiZGU5YzE3Ni05M2Q3LTRkMWYtYmYwNS0yMTMwZTRiNWNlOTgifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-16T09:07:54.0000000Z",
    "RecordingLength": "73872.94",
    "ChunkCount": 6,
   "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}

Si el agente inicia una grabación y, después, detiene y reinicia la grabación varias veces mientras la llamada sigue activada, callID tendrá muchos valores recordingID. El número de valores depende de cuántas veces se hayan desencadenado los eventos de grabación.

Ejemplo: grabación de llamadas de una llamada a muchas grabaciones


{   
 "TimeGenerated": "2022-08-17T23:55:46.6304762Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "xxxxxxx-cf78-4156-zzzz-0000000fa29cc",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuZHBxxxxxxxxxxxxjkwMC05MmEwLTRlZDYtOTcxYS1kYzZlZTkzNjU0NzciLCJSxxxxxNwZWNpZmljSWQiOiI5ZmY2ZTY2Ny04YmQyLTQ0NzAtYmRkYy00ZTVhMmUwYmNmOTYifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-17T23:55:43.3304762Z",
    "RecordingLength": 3.34,
    "ChunkCount": 1,
    "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}
{
    "TimeGenerated": "2022-08-17T23:55:56.7664976Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "xxxxxxx-cf78-4156-zzzz-0000000fa29cc",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuxxxxxxiOiI4NDFmNjkwMC1mMjBiLTQzNmQtYTg0Mi1hODY2YzE4M2Y0YTEiLCJSZXNvdXJjZVNwZWNpZmljSWQiOiI2YzRlZDI4NC0wOGQ1LTQxNjEtOTExMy1jYWIxNTc3YjM1ODYifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-17T23:55:54.0664976Z",
    "RecordingLength": 2.7,
    "ChunkCount": 1,
    "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}

Registros ACSCallRecordingIncomingOperations

Estas son las propiedades:

Propiedad Descripción
timeGenerated Marca de tiempo (UTC) de cuándo se generó el registro.
callConnectionId Id. de la conexión de llamada o de la escala, si está disponible.
callerIpAddress Dirección IP del autor de la llamada, si la operación se corresponde con una llamada API que procede de una entidad con una dirección IP disponible públicamente.
correlationId Identificador de los eventos correlacionados. Se puede utilizar para identificar eventos correlacionados en varias tablas.
durationMs Duración de la operación en milisegundos.
level Nivel de gravedad de la operación.
operationName Operación asociada al registro.
operationVersion Versión de API asociada a la operación o versión de la operación (si no hay ninguna versión de API).
resourceId Identificador único del recurso al que está asociado el registro.
resultSignature Subestado de la operación. Si esta operación se corresponde con una llamada API de REST, este campo es el código de estado HTTP de la llamada REST correspondiente.
resultType Estado de la operación.
sdkType Tipo de SDK que se usa en la solicitud.
sdkVersion Versión del SDK.
serverCallId Id. de llamada del servidor.
URI URI de la solicitud.

Este es un ejemplo:

"properties"
{  "TimeGenerated": "2023-05-09T15:58:30.100Z",
    "Level": "Informational",
    "CorrelationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
    "OperationName": "ResumeCallRecording",
    "OperationVersion": "2023-03-06",
    "URI": "https://acsresouce.communication.azure.com/calling/recordings/   eyJQbGF0Zm9ybUVuZHBviI0MjFmMTIwMC04MjhiLTRmZGItOTZjYi0...:resume?api-version=2023-03-06",
    "ResultType": "Succeeded",
    "ResultSignature": 202,
    "DurationMs": 130,
    "CallerIpAddress": "127.0.0.1",
    "CallConnectionId": "d5596715-ab0b-test-8eee-575c250e4234",
    "ServerCallId": "aHR0cHM6Ly9hcGk0vjCCCCCCQd2pRP2k9OTMmZT02Mzc5OTQ3xMDAzNDUwMzg...",
    "SdkVersion": "1.0.0-alpha.20220829.1",
    "SdkType": "dotnet"
}

Pasos siguientes