Azure Communication Services: Protokolle für Sprach- und Videoanrufe

Azure Communication Services bietet Protokollierungsfunktionen, mit denen Sie Ihre Communication Services-Lösung überwachen und debuggen können. Diese Funktionen können über das Azure-Portal konfiguriert werden.

Der Inhalt dieses Artikels bezieht sich auf Protokolle, die über Azure Monitor aktiviert werden (siehe dazu auch FAQ). Informationen zum Aktivieren dieser Protokolle für Communication Services finden Sie unter Aktivieren der Protokollierung in den Diagnoseeinstellungen.

Datenkonzepte

Die folgenden allgemeinen Beschreibungen von Datenkonzepten gelten speziell für Sprach- und Videoanrufe. Diese Konzepte müssen bekannt sein, um die Bedeutung der in den Protokollen erfassten Daten verstehen zu können.

Entitäten und IDs

Machen Sie sich mit den folgenden Begriffen vertraut:

  • Anruf: Wie in den Daten dargestellt, ist ein Anruf eine Abstraktion, die durch correlationId dargestellt wird. Werte für correlationId sind für jeden Anruf eindeutig und durch callStartTime und callDuration zeitgebunden.

  • Teilnehmer bzw. Teilnehmerin: Diese Entität stellt die Verbindung zwischen einem Endpunkt und dem Server dar. Ein Teilnehmer bzw. eine Teilnehmerin (participantId) ist nur vorhanden, wenn der Anruf ein Gruppenanruf ist.

  • Endpunkt: Dies ist die eindeutigste Einheit, dargestellt durch endpointId. Jeder Anruf ist ein Ereignis, das Daten von mindestens zwei Endpunkten enthält. Endpunkte stellen die Teilnehmenden des Anrufs dar.

    EndpointType gibt an, ob es sich bei dem Endpunkt um einen Menschen (PSTN, VoIP), um einen Bot oder um den Server handelt, der mehrere Teilnehmende innerhalb eines Anrufs verwaltet. Wenn ein endpointType-Wert "Server" lautet, wird dem Endpunkt keine eindeutige ID zugewiesen. Sie können endpointType und die Anzahl von endpointId-Werten analysieren, um zu bestimmen, wie viele Benutzer bzw. Benutzerinnen und andere, nicht menschliche Teilnehmende (Bots, Server) an einem Anruf teilnehmen.

    Native SDKs für Android und iOS verwenden anrufübergreifend den gleichen endpointId-Wert für Benutzer bzw. Benutzerinnen, was ein sitzungsübergreifendes Verständnis der Erfahrung ermöglicht. Dieser Prozess unterscheidet sich von webbasierten Endpunkten, die einen neuen endpointId-Wert für jeden neuen Anruf generieren.

  • Datenstrom: Dies ist die präziseste Entität. Es gibt jeweils einen Datenstrom pro Richtung (eingehend oder ausgehend) und einen mediaType-Wert (z. B. Audio oder Video).

Datendefinitionen

Protokollschema für die Nutzung

Eigenschaft Beschreibung
Timestamp Der Zeitstempel (UTC) für den Zeitpunkt, zu dem das Protokoll generiert wurde.
Operation Name Der mit der Protokollaufzeichnung verbundene Vorgang
Operation Version Der api-version-Wert, der dem Vorgang zugeordnet wird, wenn der Operation Name-Vorgang über eine API durchgeführt wurde. Wenn keine API für diesen Vorgang vorhanden ist, entspricht die Version der Version des Vorgangs (für den Fall, dass sich die dem Vorgang zugeordneten Eigenschaften in Zukunft ändern).
Category Die Protokollkategorie des Ereignisses. Die Kategorie ist die Granularität, mit der Sie Protokolle für eine Ressource aktivieren oder deaktivieren können. Die Eigenschaften, die im properties-Blob eines Ereignisses angezeigt werden, sind innerhalb einer Protokollkategorie und eines Ressourcentyps identisch.
Correlation ID Die ID für korrelierte Ereignisse. Sie kann verwendet werden, um korrelierte Ereignisse zwischen verschiedenen Tabellen zu identifizieren.
Properties Weitere Daten, die auf verschiedene Communication Services-Modi anwendbar sind.
Record ID Die eindeutige ID für einen Nutzungsdatensatz.
Usage Type Die Art der Nutzung (z. B. Chat, PSTN oder NAT).
Unit Type Der Typ der Einheit, auf dem die Nutzung für eine bestimmte Nutzungsart basiert (z. B. Minuten, Megabytes oder Nachrichten).
Quantity Die Anzahl der für diesen Datensatz verwendeten oder verbrauchten Einheiten.

Protokollschema für die Anrufzusammenfassung

Das Anrufzusammenfassungsprotokoll enthält Daten, mit denen Sie wichtige Eigenschaften aller Anrufe identifizieren können. Für jeden participantId-Wert (bzw. endpointId-Wert bei P2P-Anrufen [Peer-to-Peer]) im Anruf wird ein eigenes Anrufzusammenfassungsprotokoll erstellt.

Wichtig

Teilnehmerinformationen im Anrufzusammenfassungsprotokoll variieren je nach Teilnehmermandant. Die SDK-Version und die Betriebssystemversion werden redigiert, wenn sich Teilnehmer bzw. Teilnehmerinnen nicht innerhalb des gleichen Mandanten befindet (auch als mandantenübergreifend bezeichnet) wie die Communication Services-Ressource. Mandantenübergreifende Teilnehmer bzw. Teilnehmerinnen werden als externe Benutzer bzw. Benutzerinnen klassifiziert, die von einem Ressourcenmandanten eingeladen werden, um an einem Anruf teilzunehmen und zusammenzuarbeiten.

Eigenschaft Beschreibung
time Der Zeitstempel (UTC) für den Zeitpunkt, zu dem das Protokoll generiert wurde.
operationName Der mit der Protokollaufzeichnung verbundene Vorgang
operationVersion Der api-version-Wert, der dem Vorgang zugeordnet wird, wenn der operationName-Vorgang über eine API durchgeführt wurde. Wenn keine API für diesen Vorgang vorhanden ist, entspricht die Version der Version des Vorgangs (für den Fall, dass sich die dem Vorgang zugeordneten Eigenschaften in Zukunft ändern).
category Die Protokollkategorie des Ereignisses. Diese Eigenschaft ist die Granularität, mit der Sie Protokolle für eine Ressource aktivieren oder deaktivieren können. Die Eigenschaften, die im properties-Blob eines Ereignisses angezeigt werden, sind innerhalb einer Protokollkategorie und eines Ressourcentyps identisch.
correlationId Die eindeutige ID für einen Anruf. Sie identifiziert korrelierte Ereignisse von allen Teilnehmern bzw. Teilnehmerinnen und Endpunkten, die während eines einzelnen Anrufs eine Verbindung herstellen, und kann verwendet werden, um Daten aus verschiedenen Protokollen zusammenzuführen. Falls Sie einmal eine Supportanfrage für Microsoft erstellen müssen, können Sie den correlationId-Wert verwenden, um den Anruf zu identifizieren, für den Sie die Problembehandlung durchführen.
identifier Die eindeutige ID für den Benutzer Die Identität kann ein Azure Communications Services-Benutzer bzw. eine Azure Communication Services-Benutzerin, eine Microsoft Entra-Benutzer-ID, eine anonyme Teams-Benutzer-ID oder eine Teams-Bot-ID sein. Sie können diese ID verwenden, um Benutzerereignisse in Protokollen zu korrelieren.
callStartTime Ein Zeitstempel für den Beginn des Anrufs, basierend auf dem ersten Verbindungsversuch eines beliebigen Endpunkts.
callDuration Die Dauer des Anrufs in Sekunden. Sie basiert auf dem ersten Verbindungsversuch und dem Ende der letzten Verbindung zwischen zwei Endpunkten.
callType Die Art des Anrufs. Enthält entweder "P2P" oder "Group". Ein "P2P"-Anruf ist eine direkte 1:1-Verbindung zwischen nur zwei Endpunkten, die keine Server sind. Ein "Group"-Anruf ist ein Anruf mit mehr als zwei Endpunkten oder ein Anruf, der vor dem Herstellen der Verbindung als "Group"-Anruf erstellt wurde.
teamsThreadId Die Teams-Thread-ID. Diese ID ist nur relevant, wenn der Anruf als Teams-Besprechung organisiert ist. Anschließend stellt sie den Anwendungsfall der Interoperabilität zwischen Microsoft Teams und Azure Communication Services dar.

Diese ID wird in den Betriebsprotokollen angezeigt. Sie können diese ID auch über die Chat-APIs abrufen.
participantId Diese ID wird generiert, um die bidirektionale Verbindung zwischen einem "Participant"-Endpunkt (endpointType = "Server") und dem Server darzustellen. Bei callType = "P2P" besteht eine direkte Verbindung zwischen zwei Endpunkten, und es wird kein participantId-Wert generiert.
participantStartTime Der Zeitstempel für den Beginn des ersten Verbindungsversuchs des Teilnehmers bzw. der Teilnehmerin.
participantDuration Die Dauer jeder Teilnehmerverbindung in Sekunden – von participantStartTime bis zum Zeitstempel für das Ende der Verbindung.
participantEndReason Der Grund für das Ende einer Teilnehmerverbindung. Enthält vom SDK ausgegebene Calling SDK-Fehlercodes für die einzelnen participantId-Werte (sofern relevant).
endpointId Die eindeutige ID, die die einzelnen, mit dem Anruf verbundenen Endpunkte darstellt, wobei endpointType den Endpunkttyp definiert. Wenn der Wert null ist, ist die verbundene Entität der Communication Services-Server (endpointType = "Server").

Bei nativen Clients kann der endpointId-Wert manchmal über mehrere Anrufe hinweg (correlationId) für den gleichen Benutzer bzw. für die gleiche Benutzerin bestehen bleiben. Die Anzahl der Anrufzusammenfassungsprotokolle hängt von der Anzahl der endpointId-Werte ab. Für jeden endpointId-Wert wird ein eigenes Zusammenfassungsprotokoll erstellt.
endpointType Dieser Wert beschreibt die Eigenschaften der einzelnen mit dem Anruf verbundenen Endpunkte. Er kann "Server", "VOIP", "PSTN", "BOT" oder "Unknown" enthalten.
sdkVersion Die Versionszeichenfolge für die Version des Communication Services Calling SDK, die von den einzelnen relevanten Endpunkten verwendet wird (beispielsweise "1.1.00.20212500").
osVersion Eine Zeichenfolge, die das Betriebssystem und die Version der einzelnen Endpunktgeräte darstellt.
participantTenantId Die ID des Microsoft-Mandanten, der der Identität des Teilnehmers bzw. der Teilnehmerin zugeordnet ist. Der Mandant kann entweder der Azure-Mandant, der die Azure Communication Services-Ressource besitzt, oder der Microsoft-Mandant einer M365-Identität sein. Dieses Feld wird verwendet, um mandantenübergreifende Bearbeitungen anzuleiten.
participantType Beschreibung des Teilnehmers bzw. der Teilnehmerin als Kombination aus Client (Azure Communication Services oder Teams) und Identität (Azure Communication Services oder Microsoft 365). Mögliche Werte: Azure Communication Services (Azure Communication Services-Identität und Azure Communication Services SDK), Teams (Teams-Identität und Teams-Client), Azure Communication Services als externer Teams-Benutzer bzw. als externe Teams-Benutzerin (Azure Communication Services-Identität und Azure Communication Services SDK in Teams-Anruf oder Besprechung), Azure Communication Services als Microsoft 365-Benutzer bzw. -Benutzerin (M365-Identität und Azure Communication Services-Client) und Teams Voice Apps.
pstnPartcipantCallType Stellt Art und Richtung der PSTN-Teilnehmer bzw. Teilnehmerinnen dar (beispielsweise Notruf, Direct Routing, Weiterleitung und Ähnliches).

Protokollschema für die Anrufdiagnose

Anrufdiagnoseprotokolle liefern wichtige Informationen zu den Endpunkten und den Medienübertragungen für die einzelnen Teilnehmer bzw. Teilnehmerinnen. Außerdem stellen sie Messungen bereit, die dabei helfen, Qualitätsprobleme zu verstehen.

Für jeden Endpunkt innerhalb eines Anrufs wird ein eigenes Anrufdiagnoseprotokoll für ausgehende Mediendatenströme (z. B. Audio oder Video) zwischen Endpunkten erstellt. Bei einem P2P-Anruf enthält jedes Protokoll Daten, die sich auf jeden der ausgehenden Datenströme beziehen, die den einzelnen Endpunkten zugeordnet sind. In Gruppenanrufen dient participantId als Schlüsselbezeichner, um die zugehörigen ausgehenden Protokolle in einer eindeutigen Teilnehmerverbindung zu verknüpfen. Anrufdiagnoseprotokolle bleiben unverändert und unabhängig vom Teilnehmermandanten identisch.

Hinweis

In diesem Artikel befinden sich P2P- und Gruppenanrufe für alle mandantenübergreifenden Anrufszenarien standardmäßig im gleichen Mandanten. Sie werden im gesamten Artikel entsprechend angegeben.

Eigenschaft Beschreibung
operationName Der mit der Protokollaufzeichnung verbundene Vorgang
operationVersion Der api-version-Wert, der dem Vorgang zugeordnet wird, wenn der operationName-Vorgang über eine API durchgeführt wurde. Wenn keine API für diesen Vorgang vorhanden ist, entspricht die Version der Version des Vorgangs (für den Fall, dass sich die dem Vorgang zugeordneten Eigenschaften in Zukunft ändern).
category Die Protokollkategorie des Ereignisses. Diese Eigenschaft ist die Granularität, mit der Sie Protokolle für eine Ressource aktivieren oder deaktivieren können. Die Eigenschaften, die im properties-Blob eines Ereignisses angezeigt werden, sind innerhalb einer Protokollkategorie und eines Ressourcentyps identisch.
correlationId Die eindeutige ID für einen Anruf. Sie kennzeichnet korrelierte Ereignisse aller Teilnehmer bzw. Teilnehmerinnen und Endpunkte, die während eines einzelnen Anrufs eine Verbindung herstellen. Falls Sie einmal eine Supportanfrage für Microsoft erstellen müssen, können Sie den correlationId-Wert verwenden, um den Anruf zu identifizieren, für den Sie die Problembehandlung durchführen.
participantId Diese ID wird generiert, um die bidirektionale Verbindung zwischen einem "Participant"-Endpunkt (endpointType = "Server") und dem Server darzustellen. Bei callType = "P2P" besteht eine direkte Verbindung zwischen zwei Endpunkten, und es wird kein participantId-Wert generiert.
identifier Die eindeutige ID für den Benutzer Die Identität kann ein Azure Communications Services-Benutzer bzw. eine Azure Communication Services-Benutzerin, eine Microsoft Entra-Benutzer-ID, eine Teams-Objekt-ID oder eine Teams-Bot-ID sein. Sie können diese ID verwenden, um Benutzerereignisse in Protokollen zu korrelieren.
endpointId Die eindeutige ID, die die einzelnen, mit dem Anruf verbundenen Endpunkte darstellt, wobei endpointType den Endpunkttyp definiert. Wenn der Wert null lautet, ist die verbundene Entität der Communication Services-Server. Bei nativen Clients kann EndpointId für den gleichen Benutzer bzw. für die gleiche Benutzerin über mehrere Anrufe (correlationId) hinweg bestehen bleiben. Wenn es sich bei dem Client um einen Webbrowser handelt, ist der Wert jedoch für jeden Anruf eindeutig.
endpointType Beschreibt die Eigenschaften der einzelnen endpointId-Instanzen. Er kann "Server", "VOIP", "PSTN", "BOT", "Voicemail", "Anonymous" oder "Unknown" enthalten.
mediaType Dieser Zeichenfolgenwert beschreibt die Art der Medien, die innerhalb der einzelnen Datenströme zwischen den Endpunkten übertragen werden. Mögliche Werte sind "Audio", "Video", "VBSS" (videobasierte Bildschirmfreigabe) und "AppSharing".
streamId Nicht eindeutige ganze Zahl, die zusammen mit mediaType zur eindeutigen Identifizierung von Datenströmen mit dem gleichen participantId-Wert verwendet werden kann.
transportType Der Zeichenfolgenwert, der das Netzwerktransportprotokoll für die einzelnen participantId-Werte beschreibt. Er kann "UDP", "TCP" oder "Unrecognized" enthalten. "Unrecognized" gibt an, dass das System nicht feststellen konnte, ob es sich beim Transporttyp um TCP oder UDP handelt.
roundTripTimeAvg Die durchschnittliche Zeit, die benötigt wird, um ein IP-Paket innerhalb eines participantDuration-Zeitraums zwischen zwei Endpunkten zu übertragen. Diese Verzögerung bei der Netzwerkweitergabe hängt mit der physischen Entfernung zwischen den beiden Punkten, der Lichtgeschwindigkeit und ggf. anfallendem Zusatzaufwand zusammen, der von den verschiedenen Routern dazwischen verursacht wird.

Die Wartezeit wird für die unidirektionale Strecke bzw. für die Roundtripdauer (Round Trip Time, RTT) gemessen. Der Wert wird in Millisekunden ausgedrückt. Ein RTT größer 500 ms wirkt sich negativ auf die Anrufqualität aus.
roundTripTimeMax Der maximal gemessene RTT (in Millisekunden) für die einzelnen Mediendatenströme während eines participantDuration-Zeitraums (Gruppenanruf) oder während eines callDuration-Zeitraums (P2P-Anruf).
jitterAvg Dies ist die durchschnittliche Änderung der Verzögerung zwischen aufeinanderfolgenden Paketen. In Azure Communication Services kann ein gewisser Grad an Jitter durch eine Pufferung ausgeglichen werden. Wenn der Jitter die Pufferung übersteigt, was ungefähr bei einer jitterAvg-Zeit von mehr als 30 ms der Fall ist, ist eine negative Auswirkung auf die Qualität wahrscheinlich. Die Pakete, die mit unterschiedlicher Geschwindigkeit eintreffen, bewirken, dass die Stimme des Sprechers roboterhaft klingt.

Diese Metrik wird für jeden Mediendatenstrom über den participantDuration-Zeitraum (Gruppenanruf) oder über den callDuration-Zeitraum (P2P-Anruf) gemessen.
jitterMax Der maximale Jitterwert, der zwischen Paketen für die einzelnen Mediendatenströme gemessen wird. Bursts bei Netzwerkbedingungen können Probleme beim Audio-/Videodatenverkehr verursachen.
packetLossRateAvg Der durchschnittliche Prozentsatz an Paketen, die verloren gehen. Paketverluste wirken sich direkt auf die Audioqualität aus. Der Verlust kleiner, einzelner Pakete hat nahezu keine Auswirkungen. Direkt aufeinanderfolgende Burstverluste können dagegen zu vollständigen Audioausfällen führen. Die Pakete, die verworfen werden und nicht an ihrem Ziel ankommen, verursachen Lücken in den Medien. Dies führt zu fehlenden Silben und Wörtern sowie zu abgehackten Videos und Freigaben.

Eine Paketverlustrate von mehr als zehn Prozent (0,1) hat wahrscheinlich negative Auswirkungen auf die Qualität. Diese Metrik wird für jeden Mediendatenstrom über den participantDuration-Zeitraum (Gruppenanruf) oder über den callDuration-Zeitraum (P2P-Anruf) gemessen.
packetLossRateMax Dieser Wert stellt die maximale Paketverlustrate (Prozentsatz) für die einzelnen Mediendatenströme über den participantDuration-Zeitraum (Gruppenanruf) oder über den callDuration-Zeitraum (P2P-Anruf) dar. Bursts bei Netzwerkbedingungen können Probleme beim Audio-/Videodatenverkehr verursachen.
JitterBufferSizeAvg Die durchschnittliche Größe des Jitterpuffers über die Dauer der einzelnen Mediendatenströme. Ein Jitterpuffer ist ein gemeinsam genutzter Datenbereich, in dem VoIP-Pakete gesammelt, gespeichert und in gleichmäßigen Intervallen an den VoIP-Prozessor gesendet werden können. Ein Jitterpuffer ist eine Maßnahme gegen die Auswirkungen von Jitter.

Jitterpuffer können statisch oder dynamisch sein. Statische Jitterpuffer werden auf eine feste Größe festgelegt. Bei dynamischen Jitterpuffern kann die Größe dagegen basierend auf Netzwerkbedingungen angepasst werden. Ziel des Jitterpuffers ist es, einen reibungslosen und unterbrechungsfreien Audio- und Videodatenstrom für Benutzer bzw. Benutzerinnen bereitzustellen.

Im Web-SDK ist „JitterBufferSizeAvg“ der Mittelwert von „jitterBufferDelay“ während des Anrufs. „jitterBufferDelay“ ist die Dauer eines Audiosamples oder eines Videoframes, das bzw. der im Jitterpuffer bleibt.

Normalerweise gilt: Ist der Wert „JitterBufferSizeAvg“ größer als 200 ms, kommt es zu Qualitätseinbußen.
JitterBufferSizeMax Die maximale Jitterpuffergröße, die während der Dauer der einzelnen Mediendatenströme gemessen wird.

Normalerweise gilt: Ist dieser Wert größer als 200 ms, kommt es zu Qualitätseinbußen.
HealedDataRatioAvg Der durchschnittliche Prozentsatz verlorener oder beschädigter Datenpakete, die während der gesamten Dauer des Audiodatenstroms erfolgreich durch die Korrektur rekonstruiert oder wiederhergestellt werden. Der Anteil korrigierter Daten ist ein Maß für die Wirksamkeit von Fehlerkorrekturtechniken, die in VoIP-Systemen verwendet werden.

Ist dieser Wert größer als 0,1 (zehn Prozent), gilt die Qualität des Datenstroms als schlecht.
HealedDataRatioMax Der maximale Anteil korrigierter Daten, der während der Dauer der einzelnen Mediendatenströme gemessen wird.

Ist dieser Wert größer als 0,1 (zehn Prozent), gilt die Qualität des Datenstroms als schlecht.
VideoFrameRateAvg Die durchschnittliche Anzahl von Videoframes, die während eines Video-/Bildschirmfreigabeanrufs pro Sekunde übertragen werden. Die Bildfrequenz von Videos kann sich auf die Qualität und Ruckelfreiheit des Videodatenstroms auswirken. Höhere Bildfrequenzen führen in der Regel zu ruckelfreieren und flüssigeren Bewegungen. Die Standardbildfrequenz für WebRTC-Video liegt in der Regel bei 30 Frames pro Sekunde (FPS). Dies kann allerdings abhängig von der spezifischen Implementierung und den Netzwerkbedingungen variieren.

Die Datenstromqualität gilt als schlecht, wenn dieser Wert kleiner als „7“ (Videodatenstrom) bzw. kleiner als „1“ (Bildschirmfreigabe) ist.
RecvResolutionHeight Die durchschnittliche vertikale Größe des eingehenden Videodatenstroms, der während eines Video-/Bildschirmfreigabeanrufs übertragen wird. Sie wird in Pixel gemessen und ist einer der Faktoren, die die Gesamtauflösung und -qualität des Videodatenstroms bestimmen. Die verwendete spezifische Auflösung hängt ggf. von den Funktionen der Geräte und von den Netzwerkbedingungen in Verbindung mit dem Anruf ab.

Die Datenstromqualität gilt als schlecht, wenn dieser Wert kleiner als „240“ (Videodatenstrom) bzw. kleiner als „768“ (Bildschirmfreigabe) ist.
RecvFreezeDurationPerMinuteInMs Die durchschnittliche Dauer des Einfrierens in Millisekunden pro Minute für eingehende Datenströme (Video bzw. Bildschirmfreigabe). Einfrieren ist in der Regel auf eine schlechte Netzwerkbedingung zurückzuführen und kann die Datenstromqualität beeinträchtigen.

Die Datenstromqualität gilt als schlecht, wenn dieser Wert größer als 6.000 ms (Videodatenstrom) bzw. größer als 25.000 ms (Bildschirmfreigabe) ist.

Protokollschema für Anrufclientvorgänge

Wichtig

Die in diesem Artikel beschriebenen Funktionen befinden sich derzeit in der öffentlichen Vorschau. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Das Protokoll Anrufclientvorgänge stellt clientseitige Informationen zu den Anrufendpunkten und Teilnehmern bzw. Teilnehmerinnen eines Anrufs bereit. Diese Protokolle befinden sich derzeit in der Vorschauphase und enthalten Clientereignisse, die in einem Anruf aufgetreten sind. Des Weiteren geben sie Aufschluss über die Aktionen, die Kunden bzw. Kundinnen ggf. während eines Anrufs ausgeführt haben.

Dieses Protokoll liefert ausführliche Informationen zu Aktionen, die während eines Anrufs ausgeführt wurden, und kann verwendet werden, um Anrufprobleme mithilfe der Anrufdiagnose für Ihre Azure Communication Services-Ressource zu visualisieren und zu untersuchen. Weitere Informationen zur Anrufdiagnose

Eigenschaft Beschreibung
CallClientTimeStamp Der Zeitstempel für den Zeitpunkt, zu dem ein Vorgang für das SDK aufgetreten ist (in UTC).
OperationName Der Name des Vorgangs, der für das Calling SDK ausgelöst wurde.
CallId Die eindeutige ID für einen Anruf. Sie identifiziert korrelierte Ereignisse von allen Teilnehmern bzw. Teilnehmerinnen und Endpunkten, die während eines einzelnen Anrufs eine Verbindung herstellen, und kann verwendet werden, um Daten aus verschiedenen Protokollen zusammenzuführen. Sie ähnelt der Korrelations-ID im Anrufzusammenfassungsprotokoll und im Anrufdiagnoseprotokoll.
ParticipantId Der eindeutige Bezeichner für die einzelnen Anrufzweige (Gruppenanrufe) oder für die einzelnen Anrufteilnehmer bzw. -teilnehmerinnen (Peer-to-Peer-Anrufe). Diese ID ist der Hauptkorrelationspunkt zwischen CallSummary-, CallDiagnostic-, CallClientOperations- und CallClientMediaStats-Protokollen.
OperationType Anrufclientvorgang
OperationId Eine eindeutige GGUID, die einen SDK-Vorgang identifiziert.
DurationMs Dauer bis zur erfolgreichen oder nicht erfolgreichen Ausführung eines Calling SDK-Vorgangs.
ResultType Feld, das beschreibt, ob ein Vorgang erfolgreich oder nicht erfolgreich war.
ResultSignature HTTP-ähnlicher Fehler- oder Erfolgscode (200, 500).
SdkVersion Die verwendete Version des Calling SDK.
UserAgent Die standardmäßige Benutzer-Agent-Zeichenfolge basierend auf dem Browser oder der Plattform, in dem bzw. auf der das Calling SDK verwendet wird.
ClientInstanceId Eine eindeutige GGUID, die das CallClient-Objekt identifiziert.
EndpointId Die eindeutige ID, die die einzelnen, mit dem Anruf verbundenen Endpunkte darstellt, wobei „endpointType“ den Endpunkttyp definiert. Wenn der Wert NULL ist, handelt es sich bei der verbundenen Entität um den Communication Services-Server (endpointType = "Server").

Bei nativen Clients kann der endpointId-Wert manchmal über mehrere Anrufe hinweg (correlationId) für den gleichen Benutzer bzw. für die gleiche Benutzerin bestehen bleiben. Die Anzahl der Anrufzusammenfassungsprotokolle hängt von der Anzahl der endpointID-Werte ab. Für jeden endpointID-Wert wird ein eigenes Zusammenfassungsprotokoll erstellt.
OperationPayload Dynamische Nutzdaten, die je nach Vorgang variieren und weitere vorgangsspezifische Details bereitstellen.

Gegenüberstellung von P2P- und Gruppenanrufen

Es gibt zwei Arten von Anrufen (dargestellt durch callType):

  • P2P-Anruf: Eine Verbindung zwischen zwei Endpunkten (ohne Serverendpunkt). P2P-Anrufe werden als Anruf zwischen diesen Endpunkten initiiert und nicht als Gruppenanrufereignis vor dem Herstellen der Verbindung erstellt.

    Diagram that shows a P2P call across two endpoints.

  • Gruppenanruf: Jeder Anruf, bei dem mehr als zwei Endpunkte miteinander verbunden sind. Gruppenanrufe beinhalten einen Serverendpunkt und die Verbindung zwischen dem jeweiligen Endpunkt und dem Server. P2P-Anrufe, bei denen während des Anrufs ein weiterer Endpunkt hinzugefügt wird, sind keine P2P-Anrufe mehr, sondern werden zu Gruppenanrufen. Anhand der Metriken participantStartTime und participantDuration können Sie ermitteln, wann die einzelnen Endpunkte dem Anruf beigetreten sind.

    Diagram that shows a group call across multiple endpoints.

Protokollstruktur

Azure Communication Services erstellt vier Arten von Protokollen:

  • Anrufzusammenfassungsprotokolle: Enthalten grundlegende Informationen zum Anruf, einschließlich aller relevanten IDs, Zeitstempel, Endpunkte und SDK-Informationen. Für jeden Teilnehmer bzw. jede Teilnehmerin innerhalb eines Anrufs erstellt Communication Services ein eindeutiges Anrufzusammenfassungsprotokoll.

    Wenn jemand einem Anruf erneut beitritt, hat dieser Teilnehmer bzw. diese Teilnehmerin den gleichen EndpointId-Wert, aber einen anderen ParticipantId-Wert. Dieser Endpunkt kann dann über zwei Anrufzusammenfassungsprotokolle verfügen.

  • Anrufdiagnoseprotokolle: Enthalten Informationen zum Datenstrom sowie eine Reihe von Metriken, die Messungen im Zusammenhang mit der Qualität der Benutzererfahrung anzeigen. Für jeden Endpunkt (EndpointId) innerhalb eines Anrufs (einschließlich des Servers) wird ein eigenes Anrufdiagnoseprotokoll für den jeweiligen Mediendatenstrom (z. B. Audio oder Video) zwischen Endpunkten erstellt.

  • Anrufclientvorgangsprotokolle: Enthalten ausführliche Anrufclientereignisse. Diese Protokollereignisse werden für jeden Endpunkt (EndpointId) in einem Anruf generiert. Die Anzahl der generierten Ereignisprotokolle hängt von den Vorgängen ab, die der Teilnehmer bzw. die Teilnehmerin während des Anrufs ausgeführt hat.

Beispiel: P2P-Anruf

Das folgende Diagramm zeigt zwei Endpunkte, die direkt in einem P2P-Anruf verbunden sind. In diesem Beispiel erstellt Communication Services zwei Anrufzusammenfassungsprotokolle (eins für jeden participantID-Wert) sowie vier Anrufdiagnoseprotokolle (eins für jeden Mediendatenstrom).

Diagram that shows a P2P call within the same tenant.

Beispiel: Gruppenanruf

Das folgende Diagramm zeigt ein Gruppenanrufbeispiel mit drei participantId-Werten (also drei Teilnehmern bzw. Teilnehmerinnen) und einem Serverendpunkt. Es ist möglich, dass mehrere Teilnehmer bzw. Teilnehmerinnen über mehrere Werte für endpointId verfügen – etwa, wenn sie vom gleichen Gerät aus erneut einem Anruf beitreten. Communication Services erstellt für jeden participantId-Wert ein Anrufzusammenfassungsprotokoll. Es werden vier Anrufdiagnoseprotokolle erstellt: je eins für jeden Mediendatenstrom pro participantId.

Bei ACS-Anrufclientteilnehmern bzw. -teilnehmerinnen sind die Anrufclientvorgangsprotokolle identisch mit P2P-Anrufen. Für Teilnehmer bzw. Teilnehmerinnen, die das Calling SDK verwenden, gibt es jeweils eine Reihe von Anrufclientvorgangsprotokollen.

Diagram that shows a group call within the same tenant.

Beispiel: Mandantenübergreifender P2P-Anruf

Das folgende Diagramm zeigt zwei Teilnehmer bzw. Teilnehmerinnen in mehreren Mandanten, die direkt über einen P2P-Anruf verbunden sind. In diesem Beispiel erstellt Communication Services ein einzelnes Anrufzusammenfassungsprotokoll (eins für jeden Teilnehmer bzw. jede Teilnehmerin) mit redigierter OS- und SDK-Version. Außerdem erstellt Communication Services vier Anrufdiagnoseprotokolle (je eins für jeden Mediendatenstrom). Jedes Protokoll enthält Daten, die sich auf den ausgehenden Datenstrom von participantID beziehen.

Diagram that shows a cross-tenant P2P call.

Beispiel: Mandantenübergreifender Gruppenanruf

Das folgende Diagramm zeigt ein Gruppenanrufbeispiel mit drei participantId-Werten für mehrere Mandanten. Communication Services erstellt ein einzelnes Anrufzusammenfassungsprotokoll für jeden Teilnehmer bzw. jede Teilnehmerin mit redigierter OS- und SDK-Version. Außerdem erstellt Communication Services vier Anrufdiagnoseprotokolle, die sich auf die einzelnen participantId-Werte beziehen (je eins für jeden Mediendatenstrom).

Diagram that shows a cross-tenant group call.

Hinweis

In diesem Release werden nur ausgehende Diagnoseprotokolle unterstützt. Die Betriebssystem- und SDK-Version, die dem Bot und dem Teilnehmer bzw. der Teilnehmerin zugeordnet sind, werden ggf. redigiert, da Communication Services Identitäten von Teilnehmern bzw. Teilnehmerinnen und Bots auf die gleiche Weise behandelt.

Beispieldaten

P2P-Anruf

Hier finden Sie gemeinsam genutzte Felder für alle Protokolle bei einem P2P-Anruf:

"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":            "8d1a8374-344d-4502-b54b-ba2d6daaf0ae",

Anrufzusammenfassungsprotokolle

Die Anrufzusammenfassungsprotokolle enthalten gemeinsame Informationen zu Vorgang und Kategorie:

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

Anrufzusammenfassung für VoIP-Benutzer 1 bzw. VoIP-Benutzerin 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"
}

Anrufzusammenfassung für VoIP-Benutzer 2 bzw. VoIP-Benutzerin 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"
}

Mandantenübergreifendes Anrufzusammenfassungsprotokoll für VoIP-Benutzer 1 bzw. VoIP-Benutzerin 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"
}

Anrufzusammenfassung für einen PSTN-Anruf:

Hinweis

Bei P2P- oder Gruppenanrufprotokollen ist die Betriebssystem- und SDK-Version redigiert, und zwar unabhängig davon, ob es sich um den Mandanten des Teilnehmers bzw. der Teilnehmerin oder um den Mandanten des Bots handelt.

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

Anrufdiagnoseprotokolle

Anrufdiagnoseprotokolle enthalten Vorgangsinformationen:

"operationName":            "CallDiagnostics",
"operationVersion":         "1.0",
"category":                 "CallDiagnostics",

Diagnoseprotokoll für einen Audiodatenstrom zwischen VoIP-Endpunkt 1 und VoIP-Endpunkt 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"
}

Diagnoseprotokoll für einen Audiodatenstrom zwischen VoIP-Endpunkt 2 und VoIP-Endpunkt 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"
}

Diagnoseprotokoll für einen Videodatenstrom zwischen VoIP-Endpunkt 1 und VoIP-Endpunkt 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"
}

Gruppenanruf

Daten für einen Gruppenanruf werden in drei Anrufzusammenfassungsprotokollen und sechs Anrufdiagnoseprotokollen generiert. Gemeinsame Felder für alle Protokolle des Anrufs:

"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":            "341acde7-8aa5-445b-a3da-2ddadca47d22",

Anrufzusammenfassungsprotokolle

Die Anrufzusammenfassungsprotokolle enthalten gemeinsame Informationen zu Vorgang und Kategorie:

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

Anrufzusammenfassung für VoIP-Endpunkt 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"
}

Anrufzusammenfassung für VoIP-Endpunkt 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"
}

Anrufzusammenfassung für PSTN-Endpunkt 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"
}

Mandantenübergreifendes Anrufzusammenfassungsprotokoll:

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

Mandantenübergreifendes Anrufzusammenfassungsprotokoll mit einem Bot als Teilnehmer:


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

Anrufdiagnoseprotokolle

Anrufdiagnoseprotokolle enthalten Vorgangsinformationen:

"operationName":            "CallDiagnostics",
"operationVersion":         "1.0",
"category":                 "CallDiagnostics",

Diagnoseprotokoll für einen Audiodatenstrom zwischen VoIP-Endpunkt 1 und einem Serverendpunkt:

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

Diagnoseprotokoll für einen Audiodatenstrom zwischen einem Serverendpunkt und VoIP-Endpunkt 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"
}

Diagnoseprotokoll für einen Audiodatenstrom zwischen VoIP-Endpunkt 3 und einem Serverendpunkt:

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

Diagnoseprotokoll für einen Audiodatenstrom zwischen einem Serverendpunkt und VoIP-Endpunkt 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",

Anrufclientvorgangsprotokolle für P2P- und Gruppenanrufe

Beim Anrufclientvorgangsprotokoll gibt es keinen Unterschied zwischen P2P- und Gruppenanrufszenarien, und die Anzahl der Protokolle hängt von den SDK-Vorgängen und der Anrufdauer ab. Im Anschluss finden Sie einige allgemeine Beispiele, in denen das Schema dieser Protokolle gezeigt wird.

Anrufclientvorgangsprotokoll

Anrufclientvorgangsprotokoll für den Vorgang „CreateView“:

"properties": {
    "TenantId":               "4e7403f8-515a-4df5-8e13-59f0e2b76e3a",
    "TimeGenerated":          "2024-01-09T17:06:50.3Z",
    "CallClientTimeStamp":    "2024-01-09T15:07:56.066Z",
    "OperationName":          "CreateView" ,   
    "CallId":                 "92d800c4-abde-40be-91e9-3814ee786b19",
    "ParticipantId":          "2656fd6c-6d4a-451d-a1a5-ce1baefc4d5c",
    "OperationType":          "client-api-request",
    "OperationId":            "0d987336-37e0-4acc-aba3-e48741d88103",
    "DurationMs":             "577",
    "ResultType":             "Succeeded",
    "ResultSignature":        "200",
    "SdkVersion":             "1.19.2.2_beta",
    "UserAgent":              "azure-communication-services/1.3.1-beta.1 azsdk-js-communication-calling/1.19.2-beta.2 (javascript_calling_sdk;#clientTag:904f667c-5f25-4729-9ee8-6968b0eaa40b). Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "ClientInstanceId":       "d08a3d05-db90-415f-88a7-87ae74edc1dd",
    "OperationPayload":       "{"StreamType":"Video","StreamId":"2.0","Source":"remote","RemoteParticipantId":"remote"}",
    "Type":                   "ACSCallClientOperations"
}

Für die einzelnen Teilnehmer bzw. Teilnehmerinnen können jeweils viele verschiedene Metriken für einen Anruf vorhanden sein. Die folgende Abfrage kann in Log Analytics im Azure-Portal ausgeführt werden, um alle möglichen Vorgänge im Anrufclientvorgangsprotokoll aufzulisten:

ACSCallClientOperations | distinct OperationName

Fehlercodes

Die Eigenschaft participantEndReason enthält einen Wert aus den Fehlercodes des Calling SDK. Diese Codes können herangezogen werden, um Probleme während des Anrufs für die einzelnen Endpunkte zu beheben. Weitere Informationen finden Sie unter Problembehandlung in Azure Communication Services.

Nächste Schritte

  • Informationen zum Insights-Dashboard für die Überwachung von Protokollen und Metriken für Sprach- und Videoanrufe finden Sie hier.

  • Informationen zu bewährten Methoden für die Qualität und Zuverlässigkeit von Anrufen finden Sie unter Verbessern und Verwalten der Anrufqualität.

  • Informationen dazu, wie Sie Anrufprotokolle und die Anrufdiagnose verwenden, um Probleme mit der Qualität und Zuverlässigkeit zu diagnostizieren, finden Sie unter Anrufdiagnose.