Llamar al esquema de registros de actualizaciones de diagnóstico
La única diferencia en las propiedades entre el esquema de registro de actualizaciones de los diagnósticos de llamadas y el esquema de registro de diagnósticos de llamadas es la propiedad CallUpdatesVersion
adicional. La propiedad CallUpdatesVersion
indica cómo de reciente es el registro. El esquema de registro de actualizaciones de diagnóstico de llamadas tiene una latencia inferior al esquema de registro de diagnósticos de llamadas, esta baja latencia la logra enviando propiedades de esquema tan pronto como se puedan enviar. En cambio, el esquema de registro de diagnósticos de llamadas no le envía un esquema de registro hasta que todo el esquema de registro haya completado la creación interna de Microsoft.
Los registros de actualizaciones de diagnósticos de llamadas proporcionan información importante sobre los puntos de conexión y las transferencias multimedia para cada participante. También proporcionan medidas que le ayudan a comprender los problemas de calidad.
Por cada EndpointId
dentro de una llamada (incluido el servidor), Azure Communication Services crea un registro de actualizaciones de diagnósticos de llamadas distinto para cada secuencia multimedia (audio o vídeo, por ejemplo) entre puntos de conexión.
En una llamada P2P, cada registro contiene datos relacionados con cada una de las secuencias salientes asociadas a cada punto de conexión. En llamadas grupales, participantId
sirve como identificador clave para unir los registros salientes relacionados en una conexión de participantes distintos. Los registros de actualizaciones de diagnósticos de llamadas permanecen intactos y son los mismos independientemente del inquilino del participante.
Cómo usar los registros de llamadas
Se recomienda recopilar todos los registros de llamadas disponibles en un recurso de Log Analytics para que pueda supervisar el uso de las llamadas y mejorar la calidad de las llamadas y recibir nuevos registros de Azure Communication Services a medida que los publicamos.
Hay dos herramientas que son las que más se usan para supervisar las llamadas y mejorar su calidad.
Le recomendamos usar los paneles de conclusiones de voz y vídeo para iniciar cualquier investigación de calidad, así como usar diagnóstico de llamadas, siempre que sea necesario, para explorar llamadas individuales cuando se necesite un mayor nivel de detalle.
Conceptos de datos
Importante
Debe recopilar registros si quiere analizarlos. Para más información, consulte: ¿Cómo almaceno los registros?
Azure no almacena los datos del registro de llamadas hasta que habilite esta configuración de diagnóstico específica. Los datos de las llamadas no están disponibles de forma retroactiva. Los datos se acumulan una vez que se crea la configuración de diagnóstico.
Cuando use el esquema de registro de actualizaciones de diagnósticos de llamadas, consulte siempre el número de CallUpdatesVersion
más alto para asegurarse de que tiene la información más actualizada. Cada vez que se actualizan los datos de llamada, se crea una nueva versión del registro que contiene la información más actualizada. Por ejemplo, cuanto mayor sea el número de CallUpdatesVersion
, más reciente será la actualización. Esto significa que la versión 3 es más reciente e incluye cambios más recientes en comparación con la versión 1.
Más información sobre las versiones de registro y la latencia de datos
Una vez finalizada una llamada, se envía una versión inicial (versión 1) del registro a las tablas CallSummaryUpdates y CallDiagnosticUpdates. Las versiones iniciales pueden contener valores de null
, si se crea más información sobre las versiones actualizadas de los registros con información más completa. Por ejemplo, los datos de cliente se pueden retrasar debido a problemas de conectividad de red entre el equipo cliente y nuestros servidores, o algo tan sencillo como un usuario que cierra la tapa en su portátil después de la llamada antes de que se envíen los datos del cliente y vuelvan a abrirlos horas (o días) más tarde.
Debido a estas variaciones de colección, es posible que vea que las versiones incrementales llegan horas o incluso días más tarde. Puede usar versiones para una comprensión más rápida del recurso de llamada que esperar hasta que se reciban todos los datos del cliente del SDK de llamada. El mejor escenario es que todos los participantes de la llamada finalicen sus llamadas y que el SDK de llamada pueda enviar datos al servidor.
Definiciones de datos
Llamar al esquema de registros de actualizaciones de diagnóstico
En esta tabla se describe cada una de las propiedades.
Propiedad | Descripción |
---|---|
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. Esta propiedad es la granularidad con la que se pueden habilitar o deshabilitar los registros en un recurso determinado. 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 |
El id. único de una llamada. Identifica los eventos correlacionados de todos los participantes y puntos de conexión que se conectan durante una sola llamada. Si alguna vez necesita abrir un caso de soporte técnico con Microsoft, puede usar el valor correlationId para identificar fácilmente la llamada que está solucionando. |
participantId |
El identificador generado para representar la conexión bidireccional entre un punto de conexión "Participant" (endpointType = "Server" ) y el servidor. Cuando callType = "P2P" , hay una conexión directa entre dos puntos de conexión y no se genera ningún valor participantId . |
identifier |
El identificador único del usuario. La identidad puede ser un usuario de Azure Communication Services, un id. de usuario de Microsoft Entra, un id. de objeto de Teams o un id. de bot de Teams. Puede usar este identificador para correlacionar eventos de usuario entre registros. |
endpointId |
El id. único que representa cada punto de conexión conectado a la llamada, donde endpointType define el tipo de punto de conexión. Cuando el valor es null , la entidad conectada es el servidor de Communication Services.
EndpointId puede persistir para el mismo usuario en varias llamadas (correlationId ) para clientes nativos, pero es único para cada llamada cuando el cliente sea un explorador web. |
endpointType |
El valor que describe las propiedades de cada instancia de endpointId . Puede contener "Server" , "VOIP" , "PSTN" , "BOT" , "Voicemail" , "Anonymous" o "Unknown" . |
mediaType |
El valor de cadena que describe el tipo de medio que se transmite entre los puntos de conexión dentro de cada secuencia. Los valores posibles incluyen "Audio" , "Video" , "VBSS" (uso compartido de pantalla) y "AppSharing" (canal de datos). |
streamId |
Un entero no único que, junto con mediaType , puede usar para identificar de forma única secuencias del mismo valor participantId . |
transportType |
El valor de cadena que describe el protocolo de transporte de red para cada valor participantId . Puede contener "UDP" , "TCP" o "Unrecognized" .
"Unrecognized" indica que el sistema no pudo determinar si el tipo de transporte era TCP o UDP. |
roundTripTimeAvg |
El tiempo medio que tarda un paquete IP de un punto de conexión a otro dentro de un período de participantDuration . Este retraso de propagación de red está relacionado con la distancia física entre los dos puntos, la velocidad de la luz y cualquier sobrecarga que los distintos enrutadores suponen entre ellos. La latencia se mide como el recorrido unidireccional o el tiempo de ida y vuelta (RTT). Su valor expresado en milisegundos. Un RTT mayor de 500 ms afecta negativamente a la calidad de la llamada. |
roundTripTimeMax |
El RTT máximo (en milisegundos) medido para llegar a la secuencia multimedia durante un período de participantDuration en una llamada de grupo o durante un período de callDuration en una llamada P2P. |
jitterAvg |
El cambio medio, en lo que se refiere al retraso, entre paquetes sucesivos. Azure Communication Services puede adaptarse a algunos niveles de inestabilidad a través del almacenamiento en búfer. Cuando la inestabilidad supera el almacenamiento en búfer, que es aproximadamente un tiempo de jitterAvg superior a 30 ms, puede afectar negativamente a la calidad. Los paquetes que llegan a velocidades diferentes hacen que la voz de un hablante suene robótica. Esta métrica se mide para cada secuencia multimedia durante el período de participantDuration de una llamada de grupo o durante el período de callDuration de una llamada P2P. |
jitterMax |
El valor de vibración máximo medido entre paquetes por cada secuencia multimedia. Las ráfagas en las condiciones de red pueden causar problemas en el flujo de tráfico de audio y vídeo. |
packetLossRateAvg |
El porcentaje medio de paquetes que se pierden. La pérdida de paquetes afecta directamente a la calidad del audio. Los paquetes pequeños e individuales perdidos no tienen casi ningún impacto, mientras que las pérdidas de ráfagas consecutivas hacen que el audio se corte completamente. Los paquetes que se quitan y no llegan a su destino previsto provocan huecos en el contenido multimedia. Esta situación da lugar a que se pierdan las sílabas y las palabras, junto con el vídeo cortado y similar uso compartido en consecuencia. Es probable que una tasa de pérdida de paquetes mayor que el 10 % (0,1) tenga un impacto negativo en la calidad. Esta métrica se mide para cada secuencia multimedia durante el período de participantDuration de una llamada de grupo o durante el período de callDuration de una llamada P2P. |
packetLossRateMax |
Este valor representa la tasa máxima de pérdida de paquetes (porcentaje) para cada secuencia multimedia durante el período de participantDuration en una llamada grupal o durante el período de callDuration en una llamada P2P. Las ráfagas en las condiciones de red pueden causar problemas en el flujo de tráfico de audio y vídeo. |
JitterBufferSizeAvg |
Tamaño medio del búfer de vibración durante la duración de cada secuencia multimedia. Un búfer de vibración es una área de datos compartida en la que se pueden recopilar, almacenar y enviar paquetes de voz al procesador de voz en intervalos espaciados de manera uniforme. El búfer de vibración se usa para contrarrestar los efectos de la vibración. Los búferes de vibración pueden ser estáticos o dinámicos. Los búferes de vibración estáticos se establecen en un tamaño fijo, mientras que los búferes de vibración dinámicos pueden ajustar su tamaño en función de las condiciones de red. El objetivo del búfer de vibración es proporcionar una secuencia fluida e ininterrumpida de datos de audio y vídeo al usuario. En el SDK web, este JitterBufferSizeAvg es el valor medio de jitterBufferDelay durante la llamada.
jitterBufferDelay es la duración de una muestra de audio o un fotograma de vídeo que permanece en el búfer de inestabilidad. Normalmente, cuando el valor JitterBufferSizeAvg es mayor que 200 ms, afecta negativamente a la calidad. |
JitterBufferSizeMax |
Tamaño máximo del búfer de vibración medido durante la duración de cada secuencia multimedia. Normalmente, cuando este valor es mayor que 200 ms, afecta negativamente a la calidad. |
HealedDataRatioAvg |
Porcentaje medio de paquetes de datos perdidos o dañados que el reparador reconstruyó o recuperó correctamente durante la duración de la secuencia de audio. La relación de datos curados es una medida de la eficacia de las técnicas de corrección de errores usadas en los sistemas VoIP. Cuando este valor es mayor que 0,1 (10 %), consideramos que la secuencia tiene mala calidad. |
HealedDataRatioMax |
La proporción máxima de datos curados medida durante la duración de cada secuencia multimedia. Cuando este valor es mayor que 0,1 (10 %), consideramos que la secuencia tiene mala calidad. |
VideoFrameRateAvg |
Número medio de fotogramas de vídeo que se transmiten por segundo durante una llamada de vídeo/pantalla compartida. La velocidad de fotogramas de vídeo puede afectar a la calidad y la fluidez de la secuencia de vídeo. Las velocidades de fotogramas más altas suelen dar lugar a un movimiento más suave y fluido. La velocidad de fotogramas estándar para el vídeo WebRTC suele ser de 30 fotogramas por segundo (fps), aunque puede variar en función de la implementación y las condiciones de red específicas. La calidad de la secuencia se considera deficiente cuando este valor es menor que 7 para la secuencia de vídeo o menor que 1 para la secuencia de pantalla compartida. |
RecvResolutionHeight |
El promedio de tamaño vertical de la secuencia de vídeo entrante que se transmite durante una llamada de vídeo o de uso compartido de pantallas. Se mide en píxeles y es uno de los factores que determina la resolución general y la calidad de la secuencia de vídeo. La resolución específica utilizada puede depender de las funcionalidades de los dispositivos y las condiciones de red implicadas en la llamada. La calidad de la secuencia se considera deficiente cuando este valor es menor que 240 para la secuencia de vídeo o menor que 768 para la secuencia de pantalla compartida. |
RecvFreezeDurationPerMinuteInMs |
La duración media de inmovilización en milisegundos por minuto para la secuencia de vídeo entrante/pantalla compartida. Las inmovilizaciones suelen deberse a una condición de red incorrecta y pueden degradar la calidad de la secuencia. La calidad de la secuencia se considera deficiente cuando este valor es mayor que 6000 ms para la secuencia de vídeo o mayor que 25 000 ms para la secuencia de pantalla compartida. |
PacketUtilization |
Los paquetes enviados o recibidos para un flujo de medios determinado. Normalmente, cuanto más larga sea la llamada, mayor será el valor. Si este valor es cero, podría indicar que el medio no fluye. |
VideoBitRateAvg |
Velocidad de bits media (bits por segundo) para un flujo de vídeo o una pantalla compartida. Un valor de velocidad de bits bajo podría indicar un problema de red deficiente. La velocidad de bits mínima (ancho de banda) necesaria se puede encontrar aquí: Ancho de banda de red. |
VideoBitRateMax |
Velocidad de bits máxima (bits por segundo) para un flujo de vídeo o una pantalla compartida. Un valor de velocidad de bits bajo podría indicar un problema de red deficiente. La velocidad de bits mínima (ancho de banda) necesaria se puede encontrar aquí: Ancho de banda de red. |
StreamDirection |
Dirección de la secuencia multimedia. Es Entrante o Saliente. |
CodecName |
Nombre del códec usado para procesar flujos de medios. Puede ser OPUS, G722, H264S, SATIN, etc. |
CallUpdatesVersion |
Representa la versión del registro, con números más altos que indican la versión publicada más recientemente. |
Datos de ejemplo para varios tipos de llamadas
Nota:
En este artículo, las llamadas de grupo y P2P se encuentran dentro del mismo inquilino, de forma predeterminada. Todos los escenarios de llamada entre inquilinos se especifican a lo largo del artículo.
Llamada P2P
Estos son campos compartidos para todos los registros de una llamada P2P:
"time": "2021-07-19T18:46:50.188Z",
"resourceId": "SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/ACS-TEST-RG/PROVIDERS/MICROSOFT.COMMUNICATION/COMMUNICATIONSERVICES/ACS-PROD-CCTS-TESTS",
"correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
Llamar a registros de actualizaciones de diagnóstico
Los registros de actualizaciones de diagnóstico de llamadas comparten información de la operación:
"operationName": "CallDiagnostics",
"operationVersion": "1.0",
"category": "CallDiagnostics",
Este es un registro de actualizaciones de diagnósticos de una secuencia de audio del punto de conexión VoIP 1 al punto de conexión VoIP 2:
"properties": {
"identifier": "acs:61fddbe3-0003-4066-97bc-6aaf143bbb84_0000000b-4fee-66cf-ac00-343a0d003158",
"participantId": "null",
"endpointId": "570ea078-74e9-4430-9c67-464ba1fa5859",
"endpointType": "VoIP",
"mediaType": "Audio",
"streamId": "1000",
"transportType": "UDP",
"roundTripTimeAvg": "82",
"roundTripTimeMax": "88",
"jitterAvg": "1",
"jitterMax": "1",
"packetLossRateAvg": "0",
"packetLossRateMax": "0"
"callupdatesversion": "2"
}
Este es un registro de diagnósticos de una secuencia de audio del punto de conexión VoIP 2 al punto de conexión VoIP 1:
"properties": {
"identifier": "acs:7af14122-9ac7-4b81-80a8-4bf3582b42d0_06f9276d-8efe-4bdd-8c22-ebc5434903f0",
"participantId": "null",
"endpointId": "a5bd82f9-ac38-4f4a-a0fa-bb3467cdcc64",
"endpointType": "VoIP",
"mediaType": "Audio",
"streamId": "1363841599",
"transportType": "UDP",
"roundTripTimeAvg": "78",
"roundTripTimeMax": "84",
"jitterAvg": "1",
"jitterMax": "1",
"packetLossRateAvg": "0",
"packetLossRateMax": "0"
"callupdatesversion": "2"
}
Este es un registro de actualizaciones de diagnósticos de una secuencia de vídeo del punto de conexión VoIP 1 al punto de conexión VoIP 2:
"properties": {
"identifier": "acs:61fddbe3-0003-4066-97bc-6aaf143bbb84_0000000b-4fee-66cf-ac00-343a0d003158",
"participantId": "null",
"endpointId": "570ea078-74e9-4430-9c67-464ba1fa5859",
"endpointType": "VoIP",
"mediaType": "Video",
"streamId": "2804",
"transportType": "UDP",
"roundTripTimeAvg": "103",
"roundTripTimeMax": "143",
"jitterAvg": "0",
"jitterMax": "4",
"packetLossRateAvg": "3.146336E-05",
"packetLossRateMax": "0.001769911"
"callupdatesversion": "2"
}
Llamada grupal
Los datos de una llamada grupal se generan en tres registros de resumen de llamadas y seis registros de actualizaciones de diagnósticos de llamadas. Estos son los campos compartidos para todos los registros de la llamada:
"time": "2021-07-05T06:30:06.402Z",
"resourceId": "SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/ACS-TEST-RG/PROVIDERS/MICROSOFT.COMMUNICATION/COMMUNICATIONSERVICES/ACS-PROD-CCTS-TESTS",
"correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee",
Llamar a registros de actualizaciones de diagnóstico
Los registros de actualizaciones de diagnóstico de llamadas comparten información de la operación:
"operationName": "CallDiagnostics",
"operationVersion": "1.0",
"category": "CallDiagnostics",
Este es un registro de actualizaciones de diagnósticos para una secuencia de audio del punto de conexión de VoIP 1 a un punto de conexión de servidor:
"properties": {
"identifier": "acs:1797dbb3-f982-47b0-b98e-6a76084454f1_0000000b-1531-729f-ac00-343a0d00d975",
"participantId": "04cc26f5-a86d-481c-b9f9-7a40be4d6fba",
"endpointId": "5ebd55df-ffff-ffff-89e6-4f3f0453b1a6",
"endpointType": "VoIP",
"mediaType": "Audio",
"streamId": "14884",
"transportType": "UDP",
"roundTripTimeAvg": "46",
"roundTripTimeMax": "48",
"jitterAvg": "0",
"jitterMax": "1",
"packetLossRateAvg": "0",
"packetLossRateMax": "0"
"callupdatesversion": "2"
}
Este es un registro de actualizaciones de diagnósticos para una secuencia de audio de un punto de conexión del servidor al punto de conexión de VoIP 1:
"properties": {
"identifier": null,
"participantId": "04cc26f5-a86d-481c-b9f9-7a40be4d6fba",
"endpointId": null,
"endpointType": "Server",
"mediaType": "Audio",
"streamId": "2001",
"transportType": "UDP",
"roundTripTimeAvg": "42",
"roundTripTimeMax": "44",
"jitterAvg": "1",
"jitterMax": "1",
"packetLossRateAvg": "0",
"packetLossRateMax": "0"
"callupdatesversion": "2"
}
Este es un registro de diagnósticos para una secuencia de audio del punto de conexión de VoIP 3 a un punto de conexión de servidor:
"properties": {
"identifier": "acs:1797dbb3-f982-47b0-b98e-6a76084454f1_0000000b-1531-57c6-ac00-343a0d00d972",
"participantId": "1a9cb3d1-7898-4063-b3d2-26c1630ecf03",
"endpointId": "5ebd55df-ffff-ffff-ab89-19ff584890b7",
"endpointType": "VoIP",
"mediaType": "Audio",
"streamId": "13783",
"transportType": "UDP",
"roundTripTimeAvg": "45",
"roundTripTimeMax": "46",
"jitterAvg": "1",
"jitterMax": "2",
"packetLossRateAvg": "0",
"packetLossRateMax": "0"
"callupdatesversion": "2"
}
Este es un registro de diagnósticos para una secuencia de audio de un punto de conexión del servidor al punto de conexión de VoIP 3:
"properties": {
"identifier": "null",
"participantId": "1a9cb3d1-7898-4063-b3d2-26c1630ecf03",
"endpointId": null,
"endpointType": "Server"
"mediaType": "Audio",
"streamId": "1000",
"transportType": "UDP",
"roundTripTimeAvg": "45",
"roundTripTimeMax": "46",
"jitterAvg": "1",
"jitterMax": "4",
"packetLossRateAvg": "0",
"callupdatesversion": "2"
}
Preguntas más frecuentes
¿Cómo almaceno los registros?
En la siguiente sección se explica este requisito.
Los registros de Azure Communication Services no se almacenan en su cuenta de Azure de forma predeterminada, por lo que debe empezar a almacenarlos para que herramientas como el panel de información de voz y vídeo y los diagnósticos de llamadas puedan funcionar. Para recopilar estos registros de llamadas, debe habilitar una configuración de diagnóstico que dirija los datos de las llamadas a un área de trabajo de Log Analytics.
Los datos no se almacenan de forma retroactiva, por lo que no comenzará a capturar registros de llamadas hasta que se configure el diagnóstico.
Siga las instrucciones para agregar la configuración de diagnóstico del recurso en Habilitar registros a través de la configuración de diagnóstico en Azure Monitor. Le recomendamos, en un inicio, recopilar todos los registros. Después de comprender las funcionalidades de Azure Monitor, determine qué registros desea conservar y durante cuánto tiempo. Al agregar la configuración de diagnóstico, se le pedirá que seleccione registros. Para recopilar todos los registros, seleccione allLogs.
El volumen, la retención y el uso de datos en Log Analytics dentro de Azure Monitor se factura a través de medidores de datos de Azure existentes. Se recomienda que supervise las directivas de uso y retención de datos por razones de costes según sea necesario. Para obtener más información, consulte Control de costos.
Si tiene varios identificadores de recursos de Azure Communications Services, debe habilitar esta configuración para cada identificador de recurso.
Pasos siguientes
Revise la introducción a todos los registros de voz y vídeo, consulte: Introducción a los registros de llamadas de Azure Communication Services
Obtenga información sobre los procedimientos recomendados para administrar la calidad y confiabilidad de las llamadas. Consulte: Mejorar y administrar la calidad de las llamadas
Obtenga información sobre el panel de información para supervisar los registros de llamadas de voz y videollamadas.
Obtenga información sobre cómo usar los registros de llamadas para diagnosticar problemas de confiabilidad y calidad de las llamadas con diagnósticos de llamadas. Consulte: Diagnósticos de llamadas