Compartir a través de


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 la configuración de diagnóstico.

Categorías del registro de recursos

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

  • Registros de uso: proporcione los datos de uso asociados a cada oferta de servicio facturado.
  • Registros de resumen de grabación de llamadas: proporcione información de resumen para las grabaciones de llamadas, como:
    • Duración de la llamada.
    • Contenido multimedia (por ejemplo, audio/vídeo, sin mezclar o transcripción).
    • Tipos de formato usados para la grabación (por ejemplo, WAV o MP4).
    • Motivo por el que finalizó la grabación.
  • Registros de operaciones entrantes de grabación: proporcione información sobre las solicitudes entrantes para las operaciones de grabación de llamadas. Cada entrada corresponde al 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 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. Consulte Tiempo de 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 Valor api-version asociado a la operación, si la operationName operación se realizó a través de una API. Si ninguna API corresponde a esta operación, la versión representa la versión de la operación, en caso de que las propiedades asociadas a la operación cambien en el futuro.
category Categoría de registro del evento. La categoría es la granularidad en la que puede habilitar o deshabilitar los registros en un recurso. Las propiedades que aparecen dentro del properties blob de un evento son las mismas dentro de una categoría de registro y un tipo de recurso.
correlationID Identificador de los eventos correlacionados. Puede usarlo para identificar eventos correlacionados entre varias tablas.
Properties Otros datos aplicables a varios modos de Communication Services.
recordID Identificador ú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 del registro de resumen de grabación de llamadas

Nombre de propiedad Tipo de datos Descripción
timeGenerated DateTime Marca de tiempo (UTC) de cuando se generó el registro.
operationName String Operación asociada a un registro de registro.
correlationId String Identificador que se usa para correlacionar eventos entre tablas.
recordingID String Identificador de la grabación a la que hace referencia este registro.
category String 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 String Estado de la operación.
level String Nivel de gravedad de la operación.
chunkCount Entero Número total de fragmentos creados para la grabación.
channelType String Tipo de canal de la grabación, como mixto o sin mezclar.
recordingStartTime DateTime Hora a la que se inició la grabación.
contentType String Contenido de la grabación, como solo audio, audio/vídeo o transcripción.
formatType String Formato de archivo de la grabación.
recordingLength Doble Duración de la grabación en segundos.
audioChannelsCount Entero Número total de canales de audio en la grabación.
recordingEndReason String Motivo por el que finalizó 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 grabación o varias grabaciones, dependiendo 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 cae debido a una señal de red deficiente, callID tendrá un recordingID valor. Si el agente llama al cliente, el sistema genera una nueva callID instancia y un nuevo recordingID valor.

Ejemplo: Llamada a grabación 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, a continuación, detiene y reinicia la grabación varias veces mientras la llamada sigue activada, callID tendrá muchos recordingID valores. El número de valores depende de cuántas veces se desencadenaron los eventos de grabación.

Ejemplo: Llamada a grabación para 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 de ACSCallRecordingIncomingOperations

Estas son las propiedades:

Propiedad Descripción
timeGenerated Marca de tiempo (UTC) de cuando se generó el registro.
callConnectionId Identificador de la conexión de llamada o de la pierna, si está disponible.
callerIpAddress La dirección IP del autor de la llamada, si la operación corresponde a una llamada API que procede de una entidad con una dirección IP disponible públicamente.
correlationId Identificador de los eventos correlacionados. Puede usarlo para identificar eventos correlacionados entre varias tablas.
durationMs Duración de la operación en milisegundos.
level Nivel de gravedad de la operación.
operationName Operación asociada a registros de 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 Identificador de llamada del servidor.
URI URI de la solicitud.

Este es un ejemplo:

"properties"
{  "TimeGenerated": "2023-05-09T15:58:30.100Z",
    "Level": "Informational",
    "CorrelationId": "a999f996-b4e1-xxxx-ac04-a59test87d97",
    "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