Partager via


Schéma des journaux de mises à jour de synthèse de l’appel

La seule différence entre les propriétés du schéma du journal de mises à jour des synthèses de l’appel et le schéma du journal de synthèse d’appel est la propriété CallUpdatesVersion supplémentaire. La propriété CallUpdatesVersion indique l’ancienneté du journal. Le schéma du journal de mises à jour des synthèses de l’appel a une latence inférieure à celle du schéma du journal de synthèse de l’appel. Il obtient cette faible latence en envoyant les propriétés du schéma dès que possible. En revanche, le schéma du journal de synthèse de l’appel ne vous envoie pas de schéma de journal tant que le schéma de journal entier n’a pas été créé en interne par Microsoft.

Le journal de mises à jour de synthèse de l’appel contient des données pour vous aider à identifier les propriétés clés de tous les appels. Un journal de mises à jour de synthèse de l’appel différent est créé pour chaque valeur participantId (ou endpointId pour les appels P2P) de l’appel.

Pour chaque participant à un appel, Communication Services crée un journal distinct de mises à jour de synthèse de l’appel. Si quelqu’un rejoint un appel, ce participant a la même valeur EndpointId, mais une valeur ParticipantId différente. Ce point de terminaison peut alors avoir deux journaux de mises à jour de la synthèse de l’appel.

Comment utiliser les journaux des appels

Nous vous recommandons de collecter tous les journaux des appels disponibles dans une ressource d’analytique des journaux d’activité afin de pouvoir surveiller votre utilisation des appels et d’améliorer la qualité des appels, et pour pouvoir recevoir de nouveaux journaux d’Azure Communication Services dès que nous les publions.

Vous pouvez utiliser deux outils principaux pour surveiller vos appels et améliorer leur qualité.

Nous vous recommandons d’utiliser les tableaux de bord des insights vocaux et vidéo pour démarrer des investigations de qualité et d’utiliser les diagnostics d’appels si nécessaire pour explorer des appels individuels quand vous avez besoin de détails précis.

Concepts de données

Important

Vous devez collecter les journaux si vous souhaitez les analyser. Pour plus d’informations, veuillez consulter la rubrique Comment stocker les journaux ?

Azure ne stocke pas les données de vos journaux d’appels, sauf si vous activez ces paramètres de diagnostic spécifiques. Vos données d’appels ne sont pas disponibles rétroactivement. Vous accumulez des données une fois les paramètres de diagnostics créés.

Quand vous utilisez le schéma de journal de mise à jour des de la synthèse de l’appel, consultez toujours le nombre CallUpdatesVersion le plus élevé pour vérifier que vous avez les informations les plus récentes. Chaque fois que les données d’appel sont mises à jour, une nouvelle version du journal est créée avec les informations les plus récentes. Par exemple, plus le nombre CallUpdatesVersion est élevé, plus la mise à jour est récente. Cela signifie que la version 3 est plus récente et inclut des changements plus récents par rapport à la version 1.

En savoir plus sur les versions de journal et la latence des données

Une fois l’appel terminé, une version initiale (version 1) du journal est envoyée aux tables CallSummaryUpdates et CallDiagnosticUpdates. Les versions initiales peuvent contenir des valeurs null. Si d’autres informations sont disponibles, des versions mises à jour des journaux sont créées avec des informations plus complètes. Par exemple, les données client peuvent être retardées en raison de problèmes de connectivité réseau entre l’ordinateur client et nos serveurs, ou, plus simplement, parce qu’un utilisateur a fermé son ordinateur portable après l’appel et avant que ses données client n’aient été envoyées, et qu’il l’a rouvert des heures (ou des jours) plus tard.

En raison de ces variations de collecte, vous pouvez voir arriver les versions incrémentielles des heures ou des jours plus tard. Vous pouvez utiliser des versions pour comprendre plus vite votre ressource d’appel, au lieu d’attendre que toutes les données client du Kit de développement logiciel (SDK) appelant soient reçues. Le meilleur scénario est quand tous les participants terminent leurs appels et que le SDK appelant peut envoyer les données au serveur.

Définitions des données

Schéma des journaux de mises à jour de synthèse de l’appel

Important

Les informations du participant dans le journal de mises à jour du récapitulatif de l’appel varient selon le locataire du participant. La version du SDK et la version du système d’exploitation ne sont pas visibles si le participant n’est pas dans le même locataire (également appelé inter-locataires ou « cross-tenant ») que la ressource Communication Services. Les participants inter-locataires sont classés en tant qu’utilisateurs externes invités par un locataire de ressource à rejoindre l’appel et à collaborer.

Ce tableau décrit chaque propriété.

Propriété Description
time Horodatage (UTC) de la génération du journal.
operationName Opération associée à l’enregistrement de journal.
operationVersion Valeur api-version associée à l’opération, si l’opération operationName a été effectuée via une API. Si aucune API ne correspond à cette opération, la version représente la version de l’opération si les propriétés associées à l’opération viennent à changer.
category Catégorie de journal de l’événement. Cette propriété est la précision avec laquelle vous pouvez activer ou désactiver les journaux sur une ressource. Les propriétés qui apparaissent dans le blob properties d’un événement sont les mêmes au sein d’une catégorie de journal et d’un type de ressource.
correlationId ID unique pour un appel. Il identifie les événements corrélés de tous les participants et points de terminaison qui se connectent pendant un appel, et vous pouvez l’utiliser pour joindre les données de différents journaux. Si vous devez ouvrir un dossier de support auprès de Microsoft, vous pouvez utiliser la valeur correlationId pour identifier facilement l’appel que vous dépannez.
identifier L’ID unique de l’utilisateur. L’identité peut être un utilisateur Azure Communication Services, un identifiant utilisateur Microsoft Entra, un identifiant utilisateur anonyme Teams ou un identifiant de bot Teams. Vous pouvez utiliser cet identifiant pour mettre en corrélation les événements utilisateur dans les journaux.
callStartTime Horodatage pour le début de l’appel, sur la base de la première tentative de connexion à partir de n’importe quel point de terminaison.
callDuration Durée de l’appel exprimée en secondes, en fonction de la première tentative de connexion et de la fin de la dernière connexion entre deux points de terminaison.
callType Type de l’appel. Il contient "P2P" ou "Group". Un appel "P2P" est une connexion 1:1 directe entre deux points de terminaison non-serveur. Un appel "Group" est un appel qui a plus de deux points de terminaison ou qui est créé en tant qu’appel "Group" avant la connexion.
teamsThreadId ID de conversation Teams. Cet ID est pertinent uniquement lorsque l’appel est organisé en tant que réunion Teams. Il représente alors le cas d’usage de l’interopérabilité entre Microsoft Teams et Azure Communication Services.

Cet ID est exposé dans les journaux opérationnels. Vous pouvez également vous procurer cet ID via les API de conversation.
participantId ID généré pour représenter la connexion bidirectionnelle entre un point de terminaison "Participant" (endpointType = "Server") et le serveur. Quand callType = "P2P", il y a une connexion directe entre les deux points de terminaison et aucune valeur participantId n’est générée.
participantStartTime Horodatage pour le début de la première tentative de connexion du participant.
participantDuration Durée de chaque connexion de participant, en secondes, du participantStartTime à l’horodatage de la fin de la connexion.
participantEndReason Raison de la fin d’une connexion de participant. Elle contient les codes d’erreur du SDK Calling qu’émet le SDK (le cas échéant) pour chaque valeur participantId.
endpointId ID unique qui représente chaque point de terminaison connecté à l’appel, où endpointType définit le type de point de terminaison. Lorsque la valeur est null, l’entité connectée est le serveur Communication Services (endpointType = "Server").

La valeur endpointId peut parfois persister pour le même utilisateur sur plusieurs appels (correlationId) pour les clients natifs. Le nombre de valeurs endpointId détermine le nombre de journaux de résumé d’appel. Un journal de résumé distinct est créé pour chaque valeur endpointId.
endpointType Cette valeur décrit les propriétés de chaque point de terminaison connecté à l’appel. Elle peut contenir "Server", "VOIP", "PSTN", "BOT" ou "Unknown".
sdkVersion Chaîne de version pour la version du SDK Calling Communication Services que chaque point de terminaison approprié utilise (par exemple, "1.1.00.20212500").
osVersion Chaîne qui représente le système d’exploitation et la version de chaque appareil de point de terminaison.
participantTenantId ID du locataire Microsoft associé à l’identité du participant. Le locataire peut être le locataire Azure qui possède la ressource Azure Communication Services ou le locataire Microsoft d’une identité Microsoft 365. Ce champ est utilisé pour guider l’édition interlocataire.
participantType Description du participant en tant que combinaison de son client (Azure Communication Services ou Teams) et de son identité (Azure Communication Services ou Microsoft 365). Les valeurs possibles sont les suivantes : Azure Communication Services (identité Azure Communication Services et SDK Azure Communication Services), Teams (identité Teams et client Teams), Azure Communication Services en tant qu’utilisateur externe Teams (identité Azure Communication Services et SDK Azure Communication Services dans un appel ou une réunion Teams), Azure Communication Services en tant qu’utilisateur Microsoft 365 (identité Microsoft 365 et client Azure Communication Services) et Applications vocales Teams.
pstnParticipantCallType Représente le type et la direction des participants RTC, y compris les appels d’urgence, le routage direct, le transfert manuel, le transfert automatique, etc.
ParticipantEndSubCode Représente les sous-codes d’erreur du Kit de développement logiciel (SDK) Calling qu’émet le Kit de développement logiciel (SDK) (le cas échéant) pour chaque valeur participantId.
ResultCategory Représente la catégorie du participant qui termine l’appel. Il peut s’agir de l’une des 4 valeurs suivantes : Success, ExpectedError, UnexpectedClientError, UnexpectedServerError.
DiagnosticOptions Cette valeur permet aux développeurs d’associer des balises personnalisées à leurs données de télémétrie client, qui peuvent ensuite être consultées dans la section Diagnostics des appels. Cela permet d’identifier, puis de résoudre plus efficacement les problèmes. Pour savoir comment ajouter des balises personnalisées à cette valeur, reportez-vous au didacticiel sur l’ajout de balises personnalisées à vos données de télémétrie client
CallUpdatesVersion Représente la version du journal, les nombres plus élevés indiquant la dernière version publiée.

Codes d’erreur

La propriété participantEndReason contient une valeur de l’ensemble des codes d’erreur du SDK Calling. Vous pouvez consulter ces codes pour résoudre les problèmes détectés lors de l’appel, pour chaque point de terminaison. Voir Résolution des problèmes liés aux codes de réponse de fin d’appel pour le Kit de développement logiciel (SDK) Calling, du Kit de développement logiciel (SDK) Call Automation, du PSTN, du Kit de développement logiciel (SDK) chat et du Kit de développement logiciel (SDK) SMS.

Exemples de données pour différents types d’appel

Remarque

Dans cet article, les appels P2P et de groupe sont par défaut dans le même tenant. Tous les scénarios d’appel qui sont entre tenants sont spécifiés en conséquence dans l’article.

Appel P2P

Voici les champs communs à tous les journaux d’un appel 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",

Journaux de mises à jour de synthèse de l’appel

Les journaux de mises à jour de synthèse de l’appel partagent des informations sur les opérations et les catégories :

"operationName":            "CallSummary",
"operationVersion":         "1.0",
"category":                 "CallSummary",

Voici le résumé d’un appel pour l’utilisateur VoIP 1 :

"properties": {
    "identifier":               "acs:61fddbe3-0003-4066-97bc-6aaf143bbb84_0000000b-4fee-66cf-ac00-343a0d003158",
    "callStartTime":            "2021-07-19T17:54:05.113Z",
    "callDuration":             6,
    "callType":                 "P2P",
    "teamsThreadId":            "null",
    "participantId":            "null",    
    "participantStartTime":     "2021-07-19T17:54:06.758Z",
    "participantDuration":      "5",
    "participantEndReason":     "0",
    "endpointId":               "570ea078-74e9-4430-9c67-464ba1fa5859",
    "endpointType":             "VoIP",
    "sdkVersion":               "1.0.1.0",
    "osVersion":                "Windows 10.0.17763 Arch: x64"
    "callupdatesversion":   "2"
}

Voici le résumé d’un appel pour l’utilisateur VoIP 2 :

"properties": {
    "identifier":               "acs:7af14122-9ac7-4b81-80a8-4bf3582b42d0_06f9276d-8efe-4bdd-8c22-ebc5434903f0",
    "callStartTime":            "2021-07-19T17:54:05.335Z",
    "callDuration":             6,
    "callType":                 "P2P",
    "teamsThreadId":            "null",
    "participantId":            "null",
    "participantStartTime":     "2021-07-19T17:54:06.335Z",
    "participantDuration":      "5",
    "participantEndReason":     "0",
    "endpointId":               "a5bd82f9-ac38-4f4a-a0fa-bb3467cdcc64",
    "endpointType":             "VoIP",
    "sdkVersion":               "1.1.0.0",
    "osVersion":                "null"
    "callupdatesversion":   "2"
}

Voici un journal de mises à jour de synthèse de l’appel inter-tenants pour l’utilisateur VoIP 1 :

"properties": {
    "identifier":               "1e4c59e1-r1rr-49bc-893d-990dsds8f9f5",
    "callStartTime":            "2022-08-14T06:18:27.010Z",
    "callDuration":             520,
    "callType":                 "P2P",
    "teamsThreadId":            "null",
    "participantId":            "null",
    "participantTenantId":      "02cbdb3c-155a-4b95-b829-6d56a45787ca",
    "participantStartTime":     "2022-08-14T06:18:27.010Z",
    "participantDuration":      "520",
    "participantEndReason":     "0",
    "endpointId":               "02cbdb3c-155a-4d98-b829-aaaaa61d44ea",
    "endpointType":             "VoIP",
    "sdkVersion":               "Redacted",
    "osVersion":                "Redacted"
    "callupdatesversion":   "2"
}

Voici le résumé d’un appel pour un appel RTC :

Remarque

Les journaux d’appels P2P ou de groupe ont les versions du système d’exploitation et du SDK supprimées, qu’il s’agisse du locataire du participant ou du locataire du bot.

"properties": {
    "identifier": "b1999c3e-bbbb-4650-9b23-9999bdabab47",
    "callStartTime": "2022-08-07T13:53:12Z",
    "callDuration": 1470,
    "callType": "Group",
    "teamsThreadId": "19:36ec5177126fff000aaa521670c804a3@thread.v2",
    "participantId": " b25cf111-73df-4e0a-a888-640000abe34d",
    "participantStartTime": "2022-08-07T13:56:45Z",
    "participantDuration": 960,
    "participantEndReason": "0",
    "endpointId": "8731d003-6c1e-4808-8159-effff000aaa2",
    "endpointType": "PSTN",
    "sdkVersion": "Redacted",
    "osVersion": "Redacted"
    "callupdatesversion":   "2"
}

Appels de groupe

Les données d’un appel de groupe sont générées dans trois journaux mises à jour de synthèse de l’appel et six journaux de diagnostics d’appel. Voici les champs communs à tous les journaux de l’appel :

"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",

Journaux de mises à jour de synthèse de l’appel

Les journaux de mises à jour de synthèse de l’appel partagent des informations sur les opérations et les catégories :

"operationName":            "CallSummary",
"operationVersion":         "1.0",
"category":                 "CallSummary",

Voici le résumé d’un appel pour le point de terminaison VoIP 1 :

"properties": {
    "identifier":               "acs:1797dbb3-f982-47b0-b98e-6a76084454f1_0000000b-1531-729f-ac00-343a0d00d975",
    "callStartTime":            "2021-07-05T06:16:40.240Z",
    "callDuration":             87,
    "callType":                 "Group",
    "teamsThreadId":            "19:meeting_MjZiOTAyN2YtZWU1Yi00ZTZiLT77777OOOOO99999jgxOTkw@thread.v2",
    "participantId":            "04cc26f5-a86d-481c-b9f9-7a40be4d6fba",
    "participantStartTime":     "2021-07-05T06:16:44.235Z",
    "participantDuration":      "82",
    "participantEndReason":     "0",
    "endpointId":               "5ebd55df-ffff-ffff-89e6-4f3f0453b1a6",
    "endpointType":             "VoIP",
    "sdkVersion":               "1.0.0.3",
    "osVersion":                "Darwin Kernel Version 18.7.0: Mon Nov 9 15:07:15 PST 2020; root:xnu-4903.272.3~3/RELEASE_ARM64_S5L8960X"
    "callupdatesversion":   "2"
}

Voici le résumé d’un appel pour le point de terminaison VoIP 3 :

"properties": {
    "identifier":               "acs:1797dbb3-f982-47b0-b98e-6a76084454f1_0000000b-1531-57c6-ac00-343a0d00d972",
    "callStartTime":            "2021-07-05T06:16:40.240Z",
    "callDuration":             87,
    "callType":                 "Group",
    "teamsThreadId":            "19:meeting_MjZiOTAyN2YtZWU1Yi00ZTZiLTk2ZDUtYTZlM2I2ZjgxOTkw@thread.v2",
    "participantId":            "1a9cb3d1-7898-4063-b3d2-26c1630ecf03",
    "participantStartTime":     "2021-07-05T06:16:40.240Z",
    "participantDuration":      "87",
    "participantEndReason":     "0",
    "endpointId":               "5ebd55df-ffff-ffff-ab89-19ff584890b7",
    "endpointType":             "VoIP",
    "sdkVersion":               "1.0.0.3",
    "osVersion":                "Android 11.0; Manufacturer: Google; Product: redfin; Model: Pixel 5; Hardware: redfin"
    "callupdatesversion":   "2"
}

Voici le résumé d’un appel pour le point de terminaison RTC 2 :

"properties": {
    "identifier":               "null",
    "callStartTime":            "2021-07-05T06:16:40.240Z",
    "callDuration":             87,
    "callType":                 "Group",
    "teamsThreadId":            "19:meeting_MjZiOTAyN2YtZWU1Yi00ZTZiLT77777OOOOO99999jgxOTkw@thread.v2",
    "participantId":            "515650f7-8204-4079-ac9d-d8f4bf07b04c",
    "participantStartTime":     "2021-07-05T06:17:10.447Z",
    "participantDuration":      "52",
    "participantEndReason":     "0",
    "endpointId":               "46387150-692a-47be-8c9d-1237efe6c48b",
    "endpointType":             "PSTN",
    "sdkVersion":               "null",
    "osVersion":                "null"
    "callupdatesversion":   "2"
}

Voici un journal de mises à jour de synthèse de l’appel inter-tenants :

"properties": {
    "identifier":               "1e4c59e1-r1rr-49bc-893d-990dsds8f9f5",
    "callStartTime":            "2022-08-14T06:18:27.010Z",
    "callDuration":             912,
    "callType":                 "Group",
    "teamsThreadId":            "19:meeting_MjZiOTAyN2YtZWU1Yi00ZTZiLT77777OOOOO99999jgxOTkw@thread.v2",
    "participantId":            "aa1dd7da-5922-4bb1-a4fa-e350a111fd9c",
    "participantTenantId":      "02cbdb3c-155a-4b95-b829-6d56a45787ca",
    "participantStartTime":     "2022-08-14T06:18:27.010Z",
    "participantDuration":      "902",
    "participantEndReason":     "0",
    "endpointId":               "02cbdb3c-155a-4d98-b829-aaaaa61d44ea",
    "endpointType":             "VoIP",
    "sdkVersion":               "Redacted",
    "osVersion":                "Redacted"
    "callupdatesversion":   "2"
}

Voici un journal de mises à jour de synthèse de l’appel inter-tenants avec un bot en tant que participant :


"properties": {
    "identifier":             "b1902c3e-b9f7-4650-9b23-9999bdabab47",
    "callStartTime":          "2022-08-09T16:00:32Z",
    "callDuration":            1470,
    "callType":               "Group",
    "teamsThreadId":         "19:meeting_MmQwZDcwYTQtZ000HWE6NzI4LTg1YTAtNXXXXX99999ZZZZZ@thread.v2",
    "participantId":           "66e9d9a7-a434-4663-d91d-fb1ea73ff31e",
    "participantStartTime":    "2022-08-09T16:14:18Z",
    "participantDuration":      644,
    "participantEndReason":    "0",
    "endpointId":             "69680ec2-5ac0-4a3c-9574-eaaa77720b82",
    "endpointType":           "Bot",
    "sdkVersion":             "Redacted",
    "osVersion":              "Redacted"
    "callupdatesversion":   "2"
}

Forum aux questions

Comment stocker les journaux ?

La section suivante décrit cette exigence.

Les journaux Azure Communication Services ne sont pas stockés dans votre compte Azure par défaut. Vous devez donc commencer à les stocker pour que les outils comme le tableau de bord des insights vocaux et vidéo et les diagnostics d’appels fonctionnent. Pour collecter les journaux des appels, vous devez activer un paramètre de diagnostic qui dirige les données d’appel vers un espace de travail Log Analytics.

Les données ne sont pas stockées rétroactivement, par conséquent vous commencez à capturer les journaux des appels uniquement après avoir configuré le paramètre de diagnostic.

Pour ajouter des paramètres de diagnostic à votre ressource, suivez les instructions de Activer les journaux via des paramètres de diagnostic dans Azure Monitor. Nous vous recommandons de collecter tous les journaux initialement. Une fois que vous avez compris les fonctionnalités d’Azure Monitor, déterminez les journaux que vous voulez conserver et pendant combien de temps. Quand vous ajoutez votre paramètre de diagnostic, vous êtes invité à sélectionner des journaux. Pour collecter tous les journaux, sélectionnez allLogs.

Le volume de vos données, leur conservation et leur utilisation dans Log Analytics au sein d’Azure Monitor sont facturés via les compteurs de données Azure existants. Nous vous recommandons d’analyser vos stratégies d’utilisation et de conservation des données pour des considérations de coût si nécessaire. Pour plus d’informations, consultez Contrôler les coûts.

Si vous avez plusieurs ID de ressource Azure Communications Services, vous devez activer ces paramètres pour chaque ID de ressource.

Étapes suivantes