Freigeben über


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.

  • Teilnehmende Person: 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 basierend 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 Microsoft 365-Identität sein. Dieses Feld wird verwendet, um mandantenübergreifende Bearbeitungen anzuleiten.
participantType Beschreibung der teilnehmenden Person 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 externe benutzemde Person von Teams (Azure Communication Services-Identität und Azure Communication Services SDK in Teams-Anruf oder Besprechung), Azure Communication Services als benutzende Person von Microsoft 365 (M365-Identität und Azure Communication Services-Client) und Teams Voice Apps.
pstnParticipantCallType Stellt Art und Richtung der teilnehmenden Personen im PSTN dar (beispielsweise Notruf, Direct Routing, Weiterleitung und Ähnliches).
ParticipantEndSubCode Stellt vom SDK ausgegebene Calling SDK-Fehleruntercodes für die einzelnen participantId-Werte (sofern relevant).
ResultCategory Stellt die Kategorie der teilnehmenden Person dar, die den Anruf beendet. Dabei kann es sich um einen der folgenden vier Werte handeln: Success, ExpectedError, UnexpectedClientError, UnexpectedServerError.

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" (Bildschirmfreigabe) und "AppSharing" (Datenkanal).
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 Durchschnittswert von jitterBufferDelay während des Anrufs. jitterBufferDelay ist die Dauer eines Audiobeispiels oder eines Videoframes, der im Jitterpuffer verbleibt.

Normalerweise wirkt sich der Wert negativ auf die Qualität aus, wenn der Wert JitterBufferSizeAvg größer als 200 ms ist.
JitterBufferSizeMax Die maximale Jitterpuffergröße, die während der Dauer der einzelnen Mediendatenströme gemessen wird.

Normalerweise wirkt sich dieser Wert negativ auf die Qualität aus, wenn dieser Wert größer als 200 ms ist.
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). Die Bildfrequenz 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.
PacketUtilization Die Pakete, die für einen bestimmten Mediendatenstrom gesendet oder empfangen wurden.

Je länger der Aufruf ist, desto höher ist der Wert. Wenn dieser Wert null ist, könnte es darauf hindeuten, dass Medien nicht fließen.
VideoBitRateAvg Die durchschnittliche Bitrate (Bit pro Sekunde) für einen Video- oder Bildschirmfreigabedatenstrom.

Ein niedriger Bitratewert könnte auf ein schlechtes Netzwerkproblem hinweisen. Die erforderliche Mindestbitrate (Bandbreite) finden Sie hier: Netzwerkbandbreite.
VideoBitRateMax Die maximale Bitrate (Bit pro Sekunde) für einen Video- oder Bildschirmfreigabedatenstrom.

Ein niedriger Bitratewert könnte auf ein schlechtes Netzwerkproblem hinweisen. Die erforderliche Mindestbitrate (Bandbreite) finden Sie hier: Netzwerkbandbreite.
StreamDirection Die Richtung des Mediendatenstroms. Ist entweder Inbound oder Outbound.
CodecName Der Name des Codecs, der für die Verarbeitung von Mediendatenströmen verwendet wird. Kann OPUS, G722, H264S, SATIN usw. sein.

Protokollschema für Anrufclientvorgänge

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.

Schema des Zeitreihenprotokolls für Anrufclient-Medienstatistiken

Das Zeitreihenprotokoll für Anrufclient-Medienstatistiken stellt clientseitige Informationen zu den Mediendatenströmen zwischen den einzelnen Teilnehmern eines Anrufs bereit. Diese Protokolle sind derzeit als eingeschränkte Vorschauversion verfügbar und bieten detaillierte Zeitreihendaten zu den Audio-, Video- und Bildschirmfreigabe-Mediendatenströmen zwischen teilnehmenden Personen mit einem standardmäßigen Aggregationsintervall von 10 Sekunden. Die Protokolle enthalten präzise Zeitreiheninformationen zu Typ, Richtung und Codec des Mediendatenstroms sowie Bitrateneigenschaften (z. B. Höchst-, Mindest- und Mittelwert).

Dieses Protokoll enthält detailliertere Informationen als das Anrufdiagnoseprotokoll und ermöglicht es Ihnen, die Qualität der Mediendatenströme zwischen den Teilnehmern zu verstehen. Es kann verwendet werden, um Probleme mit der Anrufqualität mithilfe der Anrufdiagnose für Ihre Azure Communication Services-Ressource zu visualisieren und zu untersuchen. Weitere Informationen zur Anrufdiagnose

Eigenschaft Beschreibung
OperationName Der mit der Protokollaufzeichnung verbundene Vorgang
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.
CallClientTimeStamp Der Zeitstempel für den Aufzeichnungsbeginn der Medienstatistiken.
MetricName Der Name der Medienstatistiken, z. B. Bitrate, JitterInMs, PacketsPerSecond usw.
Count Die Anzahl von Datenpunkten, die zu einem bestimmten Zeitstempel als Stichprobe erfasst wurden.
Sum Die Summe der Metrikwerte aller als Stichprobe genommenen Datenpunkte.
Average Der durchschnittliche Metrikwerte aller als Stichprobe genommenen Datenpunkte. Durchschnitt = Summe/Anzahl.
Minimum Der Mindestwert der Metrikwerte aller als Stichprobe genommenen Datenpunkte.
Maximum Der Höchstwert der Metrikwerte aller als Stichprobe genommenen Datenpunkte.
MediaStreamDirection Die Richtung des Mediendatenstroms. Er kann send oder receive sein.
MediaStreamType Der Typ des Mediendatenstroms. Es kann sich um video, audio oder screen handeln.
MediaStreamCodec Der zum Codieren/Decodieren des Mediendatenstroms verwendete Codec, z. B. H264, OPUS, VP8 usw.
ParticipantId Die eindeutige ID, die generiert wird, um die einzelnen Teilnehmer bzw. Endpunkte des Anrufs darzustellen.
ClientInstanceId Die eindeutige ID, die das Anrufclientobjekt darstellt, das im aufrufenden SDK erstellt wurde.
EndpointId Die eindeutige ID, die die einzelnen mit dem Anruf verbundenen Endpunkte darstellt. Bei nativen Clients kann EndpointId für die gleiche benutzende Person über mehrere Anrufe (callIds) hinweg beibehalten bleiben. Wenn es sich bei dem Client um einen Webbrowser handelt, ist der Wert jedoch für jeden Anruf eindeutig. EndpointId ist derzeit nicht in diesem Protokoll instrumentiert. Wenn diese Eigenschaft in Zukunft implementiert wird, wird sie den Werten in den Anrufzusammenfassungs-/Anrufdiagnoseprotokollen (CallSummary/CallDiagnostics) entsprechen
RemoteParticipantId Die eindeutige ID, die den Remoteendpunkt im Mediendatenstrom darstellt. Beispielsweise kann ein Benutzer mehrere Videodatenströme für die anderen Benutzer im gleichen Anruf rendern. Jeder Videodatenstrom verfügt über eine andere RemoteParticipantId.
RemoteEndpointId Ist identisch mit EndpointId, stellt aber den Benutzer auf der Remoteseite des Datenstroms dar.
MediaStreamId Die eindeutige ID, die jeden Mediendatenstrom im Anruf darstellt. MediaStreamId ist derzeit nicht in Clients instrumentiert. Wenn diese Eigenschaft implementiert wird, wird sie der Spalte „streamId“ in Anrufdiagnoseprotokollen (CallDiagnostics) entsprechen.
AggregationIntervalSeconds Das Zeitintervall zum Aggregieren der Medienstatistiken. Derzeit werden im Calling SDK einmal pro Sekunde Stichproben der Medienmetriken genommen, und im Protokoll werden sämtliche Stichproben alle zehn Sekunden aggregiert. Daher enthält jede Zeile in dieser Tabelle höchstens zehn Stichprobenentnahmepunkte.

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.

    Diagramm mit einem P2P-Aufruf über zwei Endpunkte hinweg.

  • 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.

    Diagramm mit einem Gruppenaufruf über mehrere Endpunkte hinweg.

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 die teilnehmende Person während des Anrufs ausgeführt hat.

  • Protokolle zur Anrufclient-Medienstatistik: Enthalten detaillierte Werte für Mediendatenströme. Diese Protokolle werden für jeden Mediendatenstrom in einem Anruf generiert. Für jede EndpointId in einem Anruf (einschließlich des Servers) erstellt Azure Communication Services ein eigenes Protokoll für jeden Mediendatenstrom (z. B. Audio oder Video) zwischen Endpunkten. Die in jedem Protokoll generierte Datenmenge hängt von der Dauer des Anrufs und der Anzahl von Mediendatenströme im Anruf ab.

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 einem Gruppenanruf erstellt jeder mit endpointType = "Server" verknüpfte Datenstrom ein Protokoll, das Daten für die eingehenden Datenströme enthält. Alle anderen Datenströme erstellen Protokolle, die Daten für die ausgehenden Datenströme für Endpunkte enthalten, die keine Server sind. Bei Gruppenanrufen verwenden Sie den participantId-Wert als Schlüssel, um die zugehörigen ein- und ausgehenden Protokolle zu einer eigenen Teilnehmerverbindung zusammenzufassen.

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).

Für teilnehmende Personen vom Azure Communication Services-Anrufclient sind auch mehrere Anrufclient-Vorgangsprotokolle und Zeitreihenprotokolle für Anrufclient-Medienstatistiken verfügbar. Die genaue Anzahl dieser Protokolle hängt von der Art der SDK-Vorgänge, die aufgerufen werden, und der Dauer des Anrufs ab.

Diagramm: P2P-Anruf innerhalb desselben Mandanten.

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 teilnehmenden Personen vom Azure Communication Services-Anrufclient sind die Anrufclientvorgangsprotokolle identisch mit P2P-Anrufen. Für teilnehmende Personen, die das Calling SDK verwenden, gibt es jeweils eine Reihe von Anrufclientvorgangsprotokollen.

Für teilnehmende Personen vom Azure Communication Services-Anrufclient sind die Anrufclient-Vorgangsprotokolle und Zeitreihenprotokolle für Anrufclient-Medienstatistiken mit denen für P2P-Anrufe identisch. Für jede teilnehmende Person, der das Calling SDK verwendet, werden mehrere Anrufclient-Vorgangsprotokolle und Zeitreihenprotokolle für Anrufclient-Medienstatistiken erstellt.

Diagramm: Gruppenanruf innerhalb desselben Mandanten

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.

Diagramm: Mandantenübergreifender P2P-Anruf.

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).

Diagramm: Mandantenübergreifender Gruppenanruf.

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":            "aaaa0000-bb11-2222-33cc-444444dddddd",

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":            "bbbb1111-cc22-3333-44dd-555555eeeeee",

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

Anrufclient-Vorgangsprotokolle und Anrufclient-Medienstatistikprotokolle für P2P- und Gruppenanrufe

Beim Anrufclient-Vorgangsprotokoll und Zeitreihenprotokoll für Anrufclient-Medienstatistiken wird nicht zwischen P2P- und Gruppenanrufen unterschieden, und die Anzahl von Protokollen hängt von den SDK-Vorgängen und der Anrufdauer ab. Der folgende Code ist ein generisches Beispiel, das das Schema dieser Protokolle zeigt.

Anrufclientvorgangsprotokoll

Anrufclientvorgangsprotokoll für den Vorgang „CreateView“:

"properties": {
    "TenantId":               "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "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. Sie können die folgende Abfrage in Log Analytics im Azure-Portal ausführen, um alle möglichen Vorgänge im Anrufclientvorgangsprotokoll aufzulisten:

ACSCallClientOperations | distinct OperationName

Zeitreihenprotokoll für Anrufclient-Medienstatistiken

Im Folgenden sehen Sie ein Beispiel für das Zeitreihenprotokoll für Medienstatistiken. Es zeigt die Jitter-Metrik des Teilnehmers für den Empfang eines Audiodatenstroms für einen bestimmten Zeitstempel.

"properties": {
    "TenantId":                     "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "TimeGenerated":                "2024-01-10T07:36:51.771Z",
    "OperationName":                "CallClientMediaStatsTimeSeries" ,  
    "CallId":                       "92d800c4-abde-40be-91e9-3814ee786b19", 
    "CallClientTimeStamp":          "2024-01-09T15:07:56.066Z",
    "MetricName":                   "JitterInMs",
    "Count":                        "2",
    "Sum":                          "34",
    "Average":                      "17",
    "Minimum":                      "10",
    "Maximum":                      "25",
    "MediaStreamDirection":         "recv",
    "MediaStreamType":              "audio",
    "MediaStreamCodec":             "OPUS",
    "ParticipantId":                "2656fd6c-6d4a-451d-a1a5-ce1baefc4d5c",
     "ClientInstanceId":            "d08a3d05-db90-415f-88a7-87ae74edc1dd",
    "AggregationIntervalSeconds":   "10",
    "Type":                         "ACSCallClientMediaStatsTimeSeries"
}

Für jeden Teilnehmer können viele verschiedene Metriken zu den Medienstatistiken für einen Anruf vorhanden sein. Die folgende Abfrage kann in Log Analytics im Azure-Portal ausgeführt werden, um alle möglichen Metriken in diesem Protokoll anzuzeigen:

ACSCallClientMediaStatsTimeSeries | distinct MetricName

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 für Antwortcodes am Anrufende für Calling-SDK, Call Automation-SDK, PSTN, Chat-SDK und SMS-SDK.

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.