Udostępnij za pośrednictwem


Dzienniki połączeń głosowych i połączeń wideo w usługach Azure Communication Services

Usługi Azure Communication Services udostępniają funkcje rejestrowania, których można użyć do monitorowania i debugowania rozwiązania usług Komunikacyjnych. Skonfiguruj te możliwości za pośrednictwem witryny Azure Portal.

Zawartość tego artykułu dotyczy dzienników włączonych za pośrednictwem usługi Azure Monitor (zobacz też często zadawane pytania). Aby włączyć te dzienniki dla usług komunikacyjnych, zobacz Włączanie rejestrowania w ustawieniach diagnostycznych.

Pojęcia dotyczące danych

Poniższe ogólne opisy pojęć dotyczących danych są specyficzne dla połączeń głosowych i połączeń wideo. Te pojęcia są ważne do przejrzenia, aby zrozumieć znaczenie danych przechwyconych w dziennikach.

Jednostki i identyfikatory

Zapoznaj się z następującymi terminami:

  • Wywołanie: Zgodnie z reprezentacją w danych wywołanie jest abstrakcją przedstawioną przez correlationIdelement . Wartości dla elementu correlationId są unikatowe dla każdego wywołania i są powiązane czasowo na callStartTime podstawie wartości i callDuration.

  • Uczestnik: reprezentuje połączenie między punktem końcowym a serwerem. Uczestnik (participantId) jest obecny tylko wtedy, gdy połączenie jest wywołaniem grupy.

  • Punkt końcowy: najbardziej unikatowa jednostka reprezentowana przez endpointIdelement . Każde wywołanie jest zdarzeniem zawierającym dane z co najmniej dwóch punktów końcowych. Punkty końcowe reprezentują uczestników wywołania.

    EndpointType informuje, czy punkt końcowy jest użytkownikiem ludzkim (PSTN lub VoIP), botem lub serwerem zarządzającym wieloma uczestnikami w ramach wywołania. endpointType Gdy wartość to "Server", punkt końcowy nie ma przypisanego unikatowego identyfikatora. Możesz przeanalizować endpointType i liczbę endpointId wartości, aby określić, ilu użytkowników i innych nieludzkich uczestników (botów i serwerów) dołączy do wywołania.

    Natywne zestawy SDK dla systemów Android i iOS ponownie wykorzystają tę samą endpointId wartość dla użytkownika w wielu wywołaniach, aby uzyskać informacje o środowiskach między sesjami. Ten proces różni się od internetowych punktów końcowych, które zawsze generują nową wartość dla każdego nowego endpointId wywołania.

  • Strumień: najbardziej szczegółowa jednostka. Istnieje jeden strumień dla każdego kierunku (przychodzącego lub wychodzącego) i mediaType wartości (na przykład Audio lub Video).

Definicje danych

Schemat dziennika użycia

Właściwości opis
Timestamp Sygnatura czasowa (UTC) podczas generowania dziennika.
Operation Name Operacja skojarzona z rekordem dziennika.
Operation Version api-version Wartość skojarzona z operacją, jeśli Operation Name operacja została wykonana za pośrednictwem interfejsu API. Jeśli żaden interfejs API nie odpowiada tej operacji, wersja reprezentuje wersję operacji, na wypadek gdyby właściwości skojarzone z operacją zmieniły się w przyszłości.
Category Kategoria dziennika zdarzenia. Kategoria to stopień szczegółowości, w którym można włączać lub wyłączać dzienniki w zasobie. Właściwości wyświetlane w properties obiekcie blob zdarzenia są takie same w kategorii dziennika i typie zasobu.
Correlation ID Identyfikator skorelowanych zdarzeń. Służy do identyfikowania skorelowanych zdarzeń między wieloma tabelami.
Properties Inne dane, które mają zastosowanie do różnych trybów usług komunikacyjnych.
Record ID Unikatowy identyfikator rekordu użycia.
Usage Type Tryb użycia (na przykład Czat, PSTN lub NAT).
Unit Type Typ jednostki, która jest opierać się na trybie użycia (na przykład minutach, megabajtach lub komunikatach).
Quantity Liczba jednostek używanych lub używanych dla tego rekordu.

Schemat dziennika podsumowania wywołań

Dziennik podsumowania wywołań zawiera dane ułatwiające zidentyfikowanie kluczowych właściwości wszystkich wywołań. W wywołaniu jest tworzony participantId inny dziennik podsumowania wywołań (lub endpointId dla wywołań komunikacji równorzędnej [P2P].

Ważne

Informacje o uczestnikach w dzienniku podsumowania wywołań różnią się w zależności od dzierżawy uczestnika. Wersja zestawu SDK i wersja systemu operacyjnego są redacted, jeśli uczestnik nie należy do tej samej dzierżawy (nazywanej również między dzierżawami) co zasób usług komunikacyjnych. Uczestnicy między dzierżawami są klasyfikowani jako użytkownicy zewnętrzni zaproszeni przez dzierżawę zasobów do dołączenia i współpracy podczas połączenia.

Właściwości opis
time Sygnatura czasowa (UTC) podczas generowania dziennika.
operationName Operacja skojarzona z rekordem dziennika.
operationVersion api-version Wartość skojarzona z operacją, jeśli operationName operacja została wykonana za pośrednictwem interfejsu API. Jeśli żaden interfejs API nie odpowiada tej operacji, wersja reprezentuje wersję operacji, na wypadek gdyby właściwości skojarzone z operacją zmieniły się w przyszłości.
category Kategoria dziennika zdarzenia. Ta właściwość to stopień szczegółowości, w którym można włączać lub wyłączać dzienniki w zasobie. Właściwości wyświetlane w properties obiekcie blob zdarzenia są takie same w kategorii dziennika i typie zasobu.
correlationId Unikatowy identyfikator wywołania. Identyfikuje skorelowane zdarzenia ze wszystkich uczestników i punktów końcowych, które łączą się podczas jednego wywołania, i można ich użyć do łączenia danych z różnych dzienników. Jeśli kiedykolwiek musisz otworzyć zgłoszenie do pomocy technicznej w firmie Microsoft, możesz użyć correlationId wartości , aby łatwo zidentyfikować połączenie, które rozwiązujesz.
identifier Unikatowy identyfikator użytkownika. Tożsamość może być użytkownikiem usług Azure Communication Services, identyfikatorem użytkownika Usługi Microsoft Entra, identyfikatorem użytkownika anonimowego usługi Teams lub identyfikatorem bota usługi Teams. Tego identyfikatora można użyć do korelowania zdarzeń użytkownika w dziennikach.
callStartTime Sygnatura czasowa rozpoczęcia wywołania na podstawie pierwszej próby połączenia z dowolnego punktu końcowego.
callDuration Czas trwania wywołania wyrażony w sekundach na podstawie pierwszego próby połączenia i końca ostatniego połączenia między dwoma punktami końcowymi.
callType Typ wywołania. Zawiera wartość "P2P" lub "Group". Wywołanie "P2P" jest bezpośrednim połączeniem 1:1 między tylko dwoma punktami końcowymi nieserwerowymi. Wywołanie "Group" jest wywołaniem, które ma więcej niż dwa punkty końcowe lub jest tworzone jako "Group" wywołanie przed połączeniem.
teamsThreadId Identyfikator wątku usługi Teams. Ten identyfikator jest istotny tylko wtedy, gdy połączenie jest zorganizowane jako spotkanie usługi Teams. Następnie reprezentuje przypadek użycia współdziałania między usługami Microsoft Teams i Azure Communication Services.

Ten identyfikator jest uwidaczniony w dziennikach operacyjnych. Możesz również uzyskać ten identyfikator za pośrednictwem interfejsów API czatu.
participantId Identyfikator wygenerowany do reprezentowania dwukierunkowego "Participant" połączenia między punktem końcowym (endpointType = "Server") i serwerem. Gdy callType = "P2P"występuje bezpośrednie połączenie między dwoma punktami końcowymi, a żadna wartość nie participantId jest generowana.
participantStartTime Sygnatura czasowa dla początku pierwszej próby połączenia uczestnika.
participantDuration Czas trwania każdego połączenia uczestnika w sekundach od participantStartTime sygnatury czasowej po zakończeniu połączenia.
participantEndReason Przyczyna zakończenia połączenia uczestnika. Zawiera on kody błędów wywoływania zestawu SDK, które zestaw SDK emituje (jeśli jest to istotne) dla każdej participantId wartości.
endpointId Unikatowy identyfikator reprezentujący każdy punkt końcowy połączony z wywołaniem, w którym endpointType definiuje typ punktu końcowego. Gdy wartość to null, połączona jednostka jest serwerem usług komunikacyjnych (endpointType = "Server").

endpointId Wartość może czasami być utrwalana dla tego samego użytkownika w wielu wywołaniach (correlationId) dla klientów natywnych. endpointId Liczba wartości określa liczbę dzienników podsumowania wywołań. Dla każdej endpointId wartości jest tworzony odrębny dziennik podsumowania.
endpointType Ta wartość opisuje właściwości każdego punktu końcowego połączonego z wywołaniem. Może zawierać "Server"wartości , , "VOIP""PSTN", "BOT"lub "Unknown".
sdkVersion Ciąg wersji dla wersji zestawu SDK wywoływania usług komunikacyjnych używanych przez każdy odpowiedni punkt końcowy (na przykład "1.1.00.20212500").
osVersion Ciąg reprezentujący system operacyjny i wersję każdego urządzenia punktu końcowego.
participantTenantId Identyfikator dzierżawy firmy Microsoft skojarzony z tożsamością uczestnika. Dzierżawą może być dzierżawa platformy Azure, która jest właścicielem zasobu usług Azure Communication Services lub dzierżawy firmy Microsoft tożsamości platformy Microsoft 365. To pole służy do kierowania redaction między dzierżawami.
participantType Opis uczestnika jako połączenie klienta (Azure Communication Services lub Teams) oraz jego tożsamości (Azure Communication Services lub Microsoft 365). Możliwe wartości obejmują: Azure Communication Services (tożsamość usług Azure Communication Services i zestaw SDK usług Azure Communication Services), Teams (tożsamość usługi Teams i klient usługi Teams), usługi Azure Communication Services jako użytkownik zewnętrzny (tożsamość usług Azure Communication Services i zestaw SDK usług Azure Communication Services w połączeniu lub spotkaniu usługi Azure Communication Services), usługi Azure Communication Services jako użytkownik platformy Microsoft 365 (tożsamość platformy Microsoft 365 i klient usług Azure Communication Services), i Teams Voice Apps.
pstnParticipantCallType Reprezentuje typ i kierunek uczestników PSTN, w tym połączenia awaryjne, routing bezpośredni, transfer, przekazywanie itd.
ParticipantEndSubCode Reprezentuje podkodowanie błędu wywoływania zestawu SDK, który zestaw SDK emituje (jeśli jest to istotne) dla każdej participantId wartości.
ResultCategory Reprezentuje kategorię uczestnika kończącego wywołanie. Może to być jedna z następujących 4 wartości: Success, ExpectedError, UnexpectedClientError, UnexpectedServerError.

Wywoływanie schematu dziennika diagnostycznego

Dzienniki diagnostyczne wywołania zawierają ważne informacje o punktach końcowych i transferach multimediów dla każdego uczestnika. Zapewniają one również pomiary, które ułatwiają zrozumienie problemów z jakością.

Dla każdego punktu końcowego w ramach wywołania tworzony jest odrębny dziennik diagnostyczny wywołań dla strumieni multimediów wychodzących (na przykład audio lub wideo) między punktami końcowymi. W wywołaniu P2P każdy dziennik zawiera dane powiązane z poszczególnymi strumieniami wychodzącymi skojarzonymi z poszczególnymi punktami końcowymi. W wywołaniach grupy służy jako identyfikator klucza, participantId aby dołączyć powiązane dzienniki wychodzące do odrębnego połączenia uczestnika. Wywołaj dzienniki diagnostyczne pozostają nienaruszone i są takie same niezależnie od dzierżawy uczestnika.

Uwaga

W tym artykule wywołania P2P i grupy są domyślnie w tej samej dzierżawie dla wszystkich scenariuszy wywołań, które są między dzierżawami. Są one określone odpowiednio w całym artykule.

Właściwości opis
operationName Operacja skojarzona z rekordem dziennika.
operationVersion api-version Wartość skojarzona z operacją, jeśli operationName operacja została wykonana za pośrednictwem interfejsu API. Jeśli żaden interfejs API nie odpowiada tej operacji, wersja reprezentuje wersję operacji, na wypadek gdyby właściwości skojarzone z operacją zmieniły się w przyszłości.
category Kategoria dziennika zdarzenia. Ta właściwość to stopień szczegółowości, w którym można włączać lub wyłączać dzienniki w zasobie. Właściwości wyświetlane w properties obiekcie blob zdarzenia są takie same w kategorii dziennika i typie zasobu.
correlationId Unikatowy identyfikator wywołania. Identyfikuje skorelowane zdarzenia ze wszystkich uczestników i punktów końcowych, które łączą się podczas jednego wywołania. Jeśli kiedykolwiek musisz otworzyć zgłoszenie do pomocy technicznej w firmie Microsoft, możesz użyć correlationId wartości , aby łatwo zidentyfikować połączenie, które rozwiązujesz.
participantId Identyfikator wygenerowany do reprezentowania dwukierunkowego "Participant" połączenia między punktem końcowym (endpointType = "Server") i serwerem. Gdy callType = "P2P"występuje bezpośrednie połączenie między dwoma punktami końcowymi, a żadna wartość nie participantId jest generowana.
identifier Unikatowy identyfikator użytkownika. Tożsamość może być użytkownikiem usług Azure Communication Services, identyfikatorem użytkownika Usługi Microsoft Entra, identyfikatorem obiektu usługi Teams lub identyfikatorem bota usługi Teams. Tego identyfikatora można użyć do korelowania zdarzeń użytkownika w dziennikach.
endpointId Unikatowy identyfikator reprezentujący każdy punkt końcowy połączony z wywołaniem, w którym endpointType definiuje typ punktu końcowego. Gdy wartość to null, połączona jednostka jest serwerem usług komunikacyjnych. EndpointId program może utrwalać dla tego samego użytkownika w wielu wywołaniach () dla klientów natywnych,correlationId ale jest unikatowy dla każdego wywołania, gdy klient jest przeglądarką internetową.
endpointType Wartość opisując właściwości każdego endpointId wystąpienia. Może zawierać "Server", , "PSTN""Voicemail""Anonymous""VOIP""BOT"lub ."Unknown"
mediaType Wartość ciągu, która opisuje typ nośnika przesyłanego między punktami końcowymi w każdym strumieniu. Możliwe wartości to "Audio", , "VBSS" "Video"(udostępnianie ekranu) i "AppSharing" (kanał danych).
streamId Nieliczna liczba całkowita, która wraz z elementem mediaTypeumożliwia unikatowe identyfikowanie strumieni tej samej participantId wartości.
transportType Wartość ciągu opisując protokół transportu sieciowego dla każdej participantId wartości. Może zawierać "UDP"wartość , "TCP"lub "Unrecognized". "Unrecognized" wskazuje, że system nie może określić, czy typ transportu to TCP czy UDP.
roundTripTimeAvg Średni czas potrzebny na pobranie pakietu IP z jednego punktu końcowego do drugiego w danym participantDuration okresie. To opóźnienie propagacji sieci jest związane z odległością fizyczną między dwoma punktami, prędkością światła i obciążeniem, między którymi znajdują się różne routery.

Opóźnienie jest mierzone jako jednorazowy lub dwukierunkowy (RTT). Jego wartość wyrażona w milisekundach. Protokół RTT większy niż 500 ms ma negatywny wpływ na jakość wywołań.
roundTripTimeMax Maksymalna wartość RTT (w milisekundach) mierzona w strumieniu multimediów fo w okresie participantDuration wywołania grupy lub w callDuration okresie wywołania P2P.
jitterAvg Średnia zmiana opóźnienia między kolejnymi pakietami. Usługi Azure Communication Services mogą dostosowywać się do niektórych poziomów zakłócenia przez buforowanie. Gdy zakłócenia przekraczają buforowanie, co jest w przybliżeniu większe jitterAvg niż 30 ms, może negatywnie wpłynąć na jakość. Pakiety przychodzące z różnymi prędkościami powodują, że głos osoby mówiącej brzmie z robotyką.

Ta metryka jest mierzona dla każdego strumienia participantDuration multimediów w okresie wywołania grupy lub callDuration w okresie wywołania P2P.
jitterMax Maksymalna wartość roztrzasku mierzona między pakietami dla każdego strumienia multimediów. Wzrost liczby w warunkach sieciowych może powodować problemy w przepływie ruchu audio/wideo.
packetLossRateAvg Średni procent utraconych pakietów. Utrata pakietów bezpośrednio wpływa na jakość dźwięku. Małe, pojedyncze utracone pakiety mają prawie żaden wpływ, podczas gdy straty z powrotem serii powodują całkowite wycięcie dźwięku. Pakiety są porzucane i nie docierające do ich zamierzonego miejsca docelowego powodują luki w nośniku. Ta sytuacja skutkuje pominiętymi sylabami i słowami, wraz z nieschwytnym wideo i udostępnianiem.

Współczynnik utraty pakietów większy niż 10% (0,1) prawdopodobnie ma negatywny wpływ na jakość. Ta metryka jest mierzona dla każdego strumienia participantDuration multimediów w okresie wywołania grupy lub callDuration w okresie wywołania P2P.
packetLossRateMax Ta wartość reprezentuje maksymalny współczynnik utraty pakietów (procent) dla każdego strumienia participantDuration multimediów w okresie wywołania grupy lub callDuration w okresie wywołania P2P. Wzrost liczby w warunkach sieciowych może powodować problemy w przepływie ruchu audio/wideo.
JitterBufferSizeAvg Średni rozmiar buforu roztrzasku w czasie trwania każdego strumienia multimediów. Bufor roztrzasku to udostępniony obszar danych, w którym pakiety głosowe można zbierać, przechowywać i wysyłać do procesora głosowego w równomiernie rozmieszczonych odstępach. Bufor roztrzasku służy do przeciwdziałania skutkom zakłócenia.

roztrzasku mogą być statyczne lub dynamiczne. Statyczne roztrzasku są ustawione na stały rozmiar, podczas gdy dynamiczne roztrzasku mogą dostosowywać rozmiar na podstawie warunków sieciowych. Celem buforu roztrzasku jest zapewnienie użytkownikowi płynnego i nieprzerwanego strumienia danych audio i wideo.

W internetowym zestawie SDK jest to JitterBufferSizeAvg średnia wartość jitterBufferDelay wywołania. Jest jitterBufferDelay to czas trwania próbki audio lub ramki wideo, która pozostaje w buforze roztrzasku.

Zwykle, gdy JitterBufferSizeAvg wartość jest większa niż 200 ms, negatywnie wpływa na jakość.
JitterBufferSizeMax Maksymalny rozmiar buforu roztrzasku mierzony w czasie trwania każdego strumienia multimediów.

Zwykle, gdy ta wartość jest większa niż 200 ms, negatywnie wpływa na jakość.
HealedDataRatioAvg Średni procent utraconych lub uszkodzonych pakietów danych pomyślnie zrekonstruowany lub odzyskany przez uzdrowiciela w czasie trwania strumienia audio. Współczynnik skorygowanych danych to miara skuteczności technik poprawek błędów stosowanych w systemach VoIP.

Jeśli ta wartość jest większa niż 0,1 (10%), uważamy strumień za złą jakość.
HealedDataRatioMax Maksymalny współczynnik uzdrowionych danych mierzony w czasie trwania każdego strumienia multimediów.

Jeśli ta wartość jest większa niż 0,1 (10%), uważamy strumień za złą jakość.
VideoFrameRateAvg Średnia liczba klatek wideo przesyłanych na sekundę podczas wywołania udostępniania wideo/ekranu. Szybkość klatek wideo może mieć wpływ na jakość i gładkość strumienia wideo, z wyższymi szybkościami klatek na sekundę, co zwykle skutkuje wygładzonym i bardziej płynnym ruchem. Standardowa szybkość klatek na sekundę dla wideo WebRTC wynosi zazwyczaj 30 klatek na sekundę (fps), chociaż szybkość klatek może się różnić w zależności od określonej implementacji i warunków sieciowych.

Jakość strumienia jest uważana za słabą, gdy ta wartość jest mniejsza niż 7 dla strumienia wideo lub mniejsza niż 1 dla strumienia udostępniania ekranu.
RecvResolutionHeight Średni rozmiar pionowy przychodzącego strumienia wideo przesyłanego podczas wywołania udostępniania wideo/ekranu. Jest mierzona w pikselach i jest jednym z czynników, które określają ogólną rozdzielczość i jakość strumienia wideo. Używane rozwiązanie może zależeć od możliwości urządzeń i warunków sieciowych związanych z wywołaniem.

Jakość strumienia jest uważana za słabą, gdy ta wartość jest mniejsza niż 240 dla strumienia wideo lub mniejsza niż 768 dla strumienia udostępniania ekranu.
RecvFreezeDurationPerMinuteInMs Średni czas trwania zamrożenia w milisekundach na minutę dla przychodzącego strumienia wideo/screenharingu. Blokady są zwykle spowodowane złym stanem sieci i mogą obniżyć jakość strumienia.

Jakość strumienia jest uważana za słabą, gdy ta wartość jest większa niż 6000 ms dla strumienia wideo lub większa niż 25 000 ms dla strumienia udostępniania ekranu.
PacketUtilization Pakiety wysyłane lub odbierane dla danego strumienia multimediów.

Zwykle im dłużej wywołanie, tym wyższa jest wartość. Jeśli ta wartość jest równa zero, może to oznaczać, że nośnik nie przepływa.
VideoBitRateAvg Średnia szybkość transmisji bitów (bity na sekundę) dla strumienia wideo lub udostępniania ekranu.

Niska szybkość transmisji bitów może wskazywać na słaby problem z siecią. Minimalna wymagana szybkość transmisji bitów (przepustowość) można znaleźć tutaj: Przepustowość sieci.
VideoBitRateMax Maksymalna szybkość transmisji bitów (bity na sekundę) dla strumienia wideo lub udostępniania ekranu.

Niska szybkość transmisji bitów może wskazywać na słaby problem z siecią. Minimalna wymagana szybkość transmisji bitów (przepustowość) można znaleźć tutaj: Przepustowość sieci.
StreamDirection Kierunek strumienia multimediów. Jest to ruch przychodzący lub wychodzący.
CodecName Nazwa kodera kodera używanego do przetwarzania strumieni multimediów. Może to być OPUS, G722, H264S, SATIN itd.

Wywoływanie schematu dziennika operacji klienta

Dziennik operacji klienta wywołania zawiera informacje po stronie klienta dotyczące wywołujących punktów końcowych i uczestników biorących udział w wywołaniu. Te dzienniki są obecnie w wersji zapoznawczej i pokazują zdarzenia klienta, które wystąpiły w wywołaniu i które akcje wykonywane przez klienta podczas wywołania.

Ten dziennik zawiera szczegółowe informacje na temat akcji wykonywanych podczas wywołania i może służyć do wizualizowania i badania problemów z wywołaniami przy użyciu diagnostyki wywołań dla zasobu usług Azure Communication Services. Dowiedz się więcej o diagnostyce połączeń

Właściwości opis
CallClientTimeStamp Sygnatura czasowa dla czasu wystąpienia operacji w zestawie SDK w formacie UTC.
OperationName Nazwa operacji wyzwolonej na wywołującym zestawie SDK.
CallId Unikatowy identyfikator wywołania. Identyfikuje skorelowane zdarzenia ze wszystkich uczestników i punktów końcowych, które łączą się podczas jednego wywołania, i można ich użyć do łączenia danych z różnych dzienników. Jest on podobny do identyfikatora correlationId w dzienniku podsumowania wywołań i wywołania dziennika diagnostycznego.
ParticipantId Unikatowy identyfikator dla każdej nogi wywołania (w wywołaniach grupy) lub wywołania uczestnika (w wywołaniach komunikacji równorzędnej z elementem równorzędnym). Ten identyfikator jest głównym punktem korelacji między dziennikami CallSummary, CallDiagnostic, CallClientOperations i CallClientMediaStats.
OperationType Wywołaj operację klienta.
OperationId Unikatowy identyfikator GGUID identyfikujący operację zestawu SDK.
DurationMs Czas, który upłynął przez operację wywoływania zestawu SDK, aby zakończyć się niepowodzeniem lub powodzeniem.
ResultType Pole opisujące powodzenie lub niepowodzenie operacji.
ResultSignature Kod niepowodzenia lub powodzenia podobny do protokołu HTTP (200, 500).
SdkVersion Używana wersja zestawu SDK wywołującego.
UserAgent Używany jest standardowy ciąg agenta użytkownika na podstawie przeglądarki lub zestawu SDK wywołującego platformę.
ClientInstanceId Unikatowy identyfikator GGUID identyfikujący obiekt CallClient.
EndpointId Unikatowy identyfikator reprezentujący każdy punkt końcowy połączony z wywołaniem, gdzie endpointType definiuje typ punktu końcowego. Gdy wartość ma wartość null, połączona jednostka jest serwerem usług komunikacyjnych (endpointType = "Serwer").

Wartość endpointId może czasami być utrwalana dla tego samego użytkownika w wielu wywołaniach (correlationId) dla klientów natywnych. Liczba wartości endpointId określa liczbę dzienników podsumowania wywołań. Dla każdej wartości endpointId jest tworzony odrębny dziennik podsumowania.
OperationPayload Ładunek dynamiczny, który różni się w zależności od operacji, zapewniając bardziej szczegółowe informacje o operacji.

Wywoływanie schematu dziennika szeregów czasowych statystyk klienta

Dziennik szeregów czasowych statystyk multimediów klienta wywołania zawiera informacje po stronie klienta dotyczące strumieni multimediów między poszczególnymi uczestnikami biorącymi udział w wywołaniu. Te dzienniki są obecnie w ograniczonej wersji zapoznawczej i udostępniają szczegółowe dane szeregów czasowych na dźwięku, wideo i ekranie współużytkują pary multimedialne między uczestnikami z domyślnym interwałem agregacji 10 sekund. Dzienniki zawierają szczegółowe informacje o typie strumienia multimediów, kierunku, koderze i właściwościach szybkości transmisji bitów (na przykład max, min, average).

Ten dziennik zawiera bardziej szczegółowe informacje niż dziennik diagnostyczny wywołania, aby zrozumieć jakość pary multimediów między uczestnikami. Może służyć do wizualizowania i badania problemów z jakością połączeń za pośrednictwem diagnostyki wywołań dla zasobu usług Azure Communication Services. Dowiedz się więcej o diagnostyce połączeń

Właściwości opis
OperationName Operacja skojarzona z rekordem dziennika.
CallId Unikatowy identyfikator wywołania. Identyfikuje skorelowane zdarzenia ze wszystkich uczestników i punktów końcowych, które łączą się podczas jednego wywołania, i można ich użyć do łączenia danych z różnych dzienników. Jest on podobny do identyfikatora correlationId w dzienniku podsumowania wywołań i wywołania dziennika diagnostycznego.
CallClientTimeStamp Sygnatura czasowa rejestrowania statystyk multimediów.
MetricName Nazwa statystyk multimedialnych, takich jak Bitrate, JitterInMs, PacketsPerSecondi tak dalej.
Count Liczba punktów danych próbkowanych w danym znaczniku czasu.
Sum Suma wartości metryk wszystkich punktów danych próbkowanych.
Average Średnia wartość metryki punktów danych próbkowanych. Average = Suma/Liczba.
Minimum Minimalna wartość metryki wszystkich punktów danych próbkowanych.
Maximum Maksymalna liczba wartości metryk wszystkich punktów danych próbkowanych.
MediaStreamDirection Kierunek strumienia multimediów. Może to być send lub receive.
MediaStreamType Typ strumienia multimediów. Może to być video, audiolub screen.
MediaStreamCodec Koder służący do kodowania/dekodowania strumienia multimediów, takiego jak H264, OPUS, VP8i tak dalej.
ParticipantId Unikatowy identyfikator wygenerowany do reprezentowania każdego punktu końcowego w wywołaniu.
ClientInstanceId Unikatowy identyfikator reprezentujący obiekt Call Client utworzony w wywołującym zestawie SDK.
EndpointId Unikatowy identyfikator reprezentujący każdy punkt końcowy połączony z wywołaniem. EndpointId może być utrwalany dla tego samego użytkownika w wielu wywołaniach () dla klientów natywnych,callIds ale jest unikatowy dla każdego wywołania, gdy klient jest przeglądarką internetową. Element EndpointId nie jest obecnie instrumentowany w tym dzienniku. Po zaimplementowaniu jest ona zgodna z wartościami w dziennikach CallSummary/Diagnostics
RemoteParticipantId Unikatowy identyfikator reprezentujący zdalny punkt końcowy w strumieniu multimediów. Na przykład użytkownik może renderować wiele strumieni wideo dla innych użytkowników w tym samym wywołaniu. Każdy strumień wideo ma inny RemoteParticipantIdelement .
RemoteEndpointId Taki sam jak EndpointId, ale reprezentuje użytkownika po zdalnej stronie strumienia.
MediaStreamId Unikatowy identyfikator reprezentujący każdy strumień multimediów w wywołaniu. MediaStreamId nie jest obecnie instrumentowany na klientach. Po zaimplementowaniu jest ona zgodna z kolumną streamId w dziennikach CallDiagnostics.
AggregationIntervalSeconds Interwał czasu agregowania statystyk multimediów. Obecnie w zestawie SDK wywoływania metryki multimediów są próbkowane co 1 sekundę, a gdy raportujemy w dzienniku, agregujemy wszystkie próbki co 10 sekund. Każdy wiersz w tej tabeli zawiera co najwyżej 10 punktów próbkowania.

Wywołania P2P a wywołania grup

Istnieją dwa typy wywołań reprezentowane przez callType:

  • Wywołanie komunikacji równorzędnej z elementem równorzędnym (P2P): połączenie między tylko dwoma punktami końcowymi bez punktu końcowego serwera. Wywołania P2P są inicjowane jako wywołanie między tymi punktami końcowymi i nie są tworzone jako zdarzenie wywołania grupy przed połączeniem.

    Diagram przedstawiający wywołanie P2P między dwoma punktami końcowymi.

  • Wywołanie grupy: każde wywołanie, które ma więcej niż dwa połączone punkty końcowe. Wywołania grup obejmują punkt końcowy serwera i połączenie między poszczególnymi punktami końcowymi i serwerem. Wywołania P2P, które dodają kolejny punkt końcowy podczas wywołania, przestaną być połączeniem P2P i stają się wywołaniem grupy. Oś czasu każdego punktu końcowego przyłączonego do wywołania można określić przy użyciu participantStartTime metryk i participantDuration .

    Diagram przedstawiający wywołanie grupy w wielu punktach końcowych.

Struktura dziennika

Usługi Azure Communication Services tworzą cztery typy dzienników:

  • Dzienniki podsumowania wywołań: zawierają podstawowe informacje o wywołaniu, w tym wszystkie odpowiednie identyfikatory, sygnatury czasowe, punkty końcowe i informacje o zestawie SDK. Dla każdego uczestnika w ramach połączenia usługi Communication Services tworzą odrębny dziennik podsumowania wywołań.

    Jeśli ktoś ponownie dołączy do połączenia, uczestnik ma tę samą EndpointId wartość, ale inną ParticipantId wartość. Ten punkt końcowy może mieć dwa dzienniki podsumowania wywołań.

  • Wywoływanie dzienników diagnostycznych: zawiera informacje o strumieniu wraz z zestawem metryk wskazujących jakość pomiarów środowiska. Dla każdego EndpointId w ramach wywołania (w tym serwera) usługi Azure Communication Services tworzą odrębny dziennik diagnostyczny wywołań dla każdego strumienia multimediów (na przykład audio lub wideo) między punktami końcowymi.

  • Wywoływanie dzienników operacji klienta: zawierają szczegółowe zdarzenia klienta wywołania. Te zdarzenia dziennika są generowane dla każdego EndpointId wywołania, a liczba wygenerowanych dzienników zdarzeń zależy od operacji wykonywanych przez uczestnika podczas wywołania.

  • Wywoływanie dzienników statystyk multimediów klienta: zawierają szczegółowe wartości strumienia multimediów. Te dzienniki są generowane dla każdego strumienia multimediów w wywołaniu. Dla każdego EndpointId wywołania (w tym serwera) usługi Azure Communication Services tworzą odrębny dziennik dla każdego strumienia multimediów (na przykład audio lub wideo) między punktami końcowymi. Ilość danych wygenerowanych w każdym dzienniku zależy od czasu wywołania i liczby multimediów w wywołaniu.

W wywołaniu P2P każdy dziennik zawiera dane powiązane z poszczególnymi strumieniami wychodzącymi skojarzonymi z poszczególnymi punktami końcowymi. W wywołaniu grupy każdy strumień skojarzony z endpointType = "Server" tworzy dziennik zawierający dane dla strumieni przychodzących. Wszystkie inne strumienie tworzą dzienniki zawierające dane dla strumieni wychodzących dla wszystkich punktów końcowych nieserwerowych. W wywołaniach grupy użyj participantId wartości jako klucza, aby dołączyć powiązane dzienniki przychodzące i wychodzące do odrębnego połączenia uczestnika.

Przykład: wywołanie P2P

Na poniższym diagramie przedstawiono dwa punkty końcowe połączone bezpośrednio w wywołaniu P2P. W tym przykładzie usługi Communication Services tworzą dwa dzienniki podsumowania wywołań (po jednym dla każdej participantID wartości) i cztery dzienniki diagnostyczne wywołań (po jednym dla każdego strumienia multimediów).

W przypadku uczestników połączeń z klientami usług Azure Communication Services istnieje również seria dzienników operacji klienta wywołań i dzienniki szeregów czasowych statystyk multimediów klienta. Dokładna liczba tych dzienników zależy od rodzaju operacji zestawu SDK i czasu trwania wywołań.

Diagram przedstawiający wywołanie P2P w tej samej dzierżawie.

Przykład: Wywołanie grupy

Na poniższym diagramie przedstawiono przykład wywołania grupy z trzema participantId wartościami (co oznacza trzech uczestników) i punktem końcowym serwera. Wiele wartości dla endpointId elementu może być potencjalnie wyświetlanych w wielu uczestnikach — na przykład podczas ponownego dołączania połączenia z tego samego urządzenia. Usługi komunikacyjne tworzą jeden dziennik podsumowania wywołań dla każdej participantId wartości. Tworzy cztery dzienniki diagnostyczne wywołań: jeden dla każdego strumienia multimediów na participantId.

W przypadku uczestników wywołań klienta usług Azure Communication Services dzienniki operacji klienta wywołania są takie same jak wywołania P2P. Dla każdego uczestnika używającego zestawu SDK wywoływania istnieje seria dzienników operacji klienta wywołań.

W przypadku uczestników połączeń z klientami usług Azure Communication Services dzienniki operacji klienta wywołania i dzienniki szeregów czasowych statystyk multimediów klienta są takie same jak wywołania P2P. Dla każdego uczestnika używającego zestawu SDK wywoływania istnieje seria dzienników operacji klienta wywołań i dzienniki szeregów czasowych statystyk multimediów klienta.

Diagram przedstawiający wywołanie grupy w ramach tej samej dzierżawy.

Przykład: wywołanie P2P między dzierżawami

Na poniższym diagramie przedstawiono dwóch uczestników w wielu dzierżawach połączonych bezpośrednio w wywołaniu P2P. W tym przykładzie usługi Communication Services tworzą jeden dziennik podsumowania wywołań (jeden dla każdego uczestnika) z zredagowaną wersją systemu operacyjnego i zestawu SDK. Usługi komunikacyjne tworzą również cztery dzienniki diagnostyczne wywołań (po jednym dla każdego strumienia multimediów). Każdy dziennik zawiera dane odnoszące się do strumienia wychodzącego .participantID

Diagram przedstawiający wywołanie P2P między dzierżawami.

Przykład: wywołanie grupy między dzierżawami

Na poniższym diagramie przedstawiono przykład wywołania grupy z trzema participantId wartościami w wielu dzierżawach. Usługi komunikacyjne tworzą jeden dziennik podsumowania wywołań dla każdego uczestnika z zredagowaną wersją systemu operacyjnego i zestawu SDK. Usługi komunikacyjne tworzą również cztery dzienniki diagnostyczne wywołań, które odnoszą się do każdej participantId wartości (po jednym dla każdego strumienia multimediów).

Diagram przedstawiający wywołanie grupy między dzierżawami.

Uwaga

Ta wersja obsługuje tylko wychodzące dzienniki diagnostyczne. Wersje systemu operacyjnego i zestawu SDK skojarzone z botem i uczestnikiem można zredagować, ponieważ usługi Communication Services traktują tożsamości uczestników i botów w taki sam sposób.

Przykładowe dane

Wywołanie P2P

Poniżej przedstawiono pola udostępnione dla wszystkich dzienników w wywołaniu P2P:

"time":                     "2021-07-19T18:46:50.188Z",
"resourceId":               "SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/ACS-TEST-RG/PROVIDERS/MICROSOFT.COMMUNICATION/COMMUNICATIONSERVICES/ACS-PROD-CCTS-TESTS",
"correlationId":            "aaaa0000-bb11-2222-33cc-444444dddddd",

Dzienniki podsumowania wywołań

Wywołaj operację udostępniania dzienników podsumowania i informacje o kategorii:

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

Oto podsumowanie wywołań dla użytkownika VoIP 1:

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

Oto podsumowanie wywołań dla użytkownika VoIP 2:

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

Oto dziennik podsumowania wywołań między dzierżawami dla użytkownika VoIP 1:

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

Oto podsumowanie wywołań dla wywołania PSTN:

Uwaga

Dzienniki wywołań P2P lub grup mają wersje systemu operacyjnego i zestawu SDK, niezależnie od tego, czy jest to dzierżawa uczestnika, czy dzierżawa bota.

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

Wywoływanie dzienników diagnostycznych

Wywołaj informacje o operacji udostępniania dzienników diagnostycznych:

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

Oto dziennik diagnostyczny strumienia audio z punktu końcowego VoIP 1 do punktu końcowego VoIP 2:

"properties": {
    "identifier":           "acs:61fddbe3-0003-4066-97bc-6aaf143bbb84_0000000b-4fee-66cf-ac00-343a0d003158",
    "participantId":        "null",
    "endpointId":           "570ea078-74e9-4430-9c67-464ba1fa5859",
    "endpointType":         "VoIP",
    "mediaType":            "Audio",
    "streamId":             "1000",
    "transportType":        "UDP",
    "roundTripTimeAvg":     "82",
    "roundTripTimeMax":     "88",
    "jitterAvg":            "1",
    "jitterMax":            "1",
    "packetLossRateAvg":    "0",
    "packetLossRateMax":    "0"
}

Oto dziennik diagnostyczny strumienia audio z punktu końcowego VoIP 2 do punktu końcowego VoIP 1:

"properties": {
    "identifier":           "acs:7af14122-9ac7-4b81-80a8-4bf3582b42d0_06f9276d-8efe-4bdd-8c22-ebc5434903f0",
    "participantId":        "null",
    "endpointId":           "a5bd82f9-ac38-4f4a-a0fa-bb3467cdcc64",
    "endpointType":         "VoIP",
    "mediaType":            "Audio",
    "streamId":             "1363841599",
    "transportType":        "UDP",
    "roundTripTimeAvg":     "78",
    "roundTripTimeMax":     "84",
    "jitterAvg":            "1",
    "jitterMax":            "1",
    "packetLossRateAvg":    "0",
    "packetLossRateMax":    "0"
}

Oto dziennik diagnostyczny strumienia wideo z punktu końcowego VoIP 1 do punktu końcowego VoIP 2:

"properties": {
    "identifier":           "acs:61fddbe3-0003-4066-97bc-6aaf143bbb84_0000000b-4fee-66cf-ac00-343a0d003158",
    "participantId":        "null",
    "endpointId":           "570ea078-74e9-4430-9c67-464ba1fa5859",
    "endpointType":         "VoIP",
    "mediaType":            "Video",
    "streamId":             "2804",
    "transportType":        "UDP",
    "roundTripTimeAvg":     "103",
    "roundTripTimeMax":     "143",
    "jitterAvg":            "0",
    "jitterMax":            "4",
    "packetLossRateAvg":    "3.146336E-05",
    "packetLossRateMax":    "0.001769911"
}

Rozmowa grupowa

Dane dla wywołania grupy są generowane w trzech dziennikach podsumowania wywołań i sześciu dziennikach diagnostycznych wywołań. Oto pola udostępnione dla wszystkich dzienników w wywołaniu:

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

Dzienniki podsumowania wywołań

Wywołaj operację udostępniania dzienników podsumowania i informacje o kategorii:

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

Oto podsumowanie wywołań dla punktu końcowego VoIP 1:

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

Oto podsumowanie wywołań dla punktu końcowego VoIP 3:

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

Oto podsumowanie wywołań dla punktu końcowego PSTN 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"
}

Oto dziennik podsumowania wywołań między dzierżawami:

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

Oto dziennik podsumowania wywołań między dzierżawami z botem jako uczestnikiem:


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

Wywoływanie dzienników diagnostycznych

Wywołaj informacje o operacji udostępniania dzienników diagnostycznych:

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

Oto dziennik diagnostyczny strumienia audio z punktu końcowego VoIP 1 do punktu końcowego serwera:

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

Oto dziennik diagnostyczny strumienia audio z punktu końcowego serwera do punktu końcowego VoIP 1:

"properties": {
    "identifier":           null,
    "participantId":        "04cc26f5-a86d-481c-b9f9-7a40be4d6fba",
    "endpointId":           null,
    "endpointType":         "Server",
    "mediaType":            "Audio",
    "streamId":             "2001",
    "transportType":        "UDP",
    "roundTripTimeAvg":     "42",
    "roundTripTimeMax":     "44",
    "jitterAvg":            "1",
    "jitterMax":            "1",
    "packetLossRateAvg":    "0",
    "packetLossRateMax":    "0"
}

Oto dziennik diagnostyczny strumienia audio z punktu końcowego VoIP 3 do punktu końcowego serwera:

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

Oto dziennik diagnostyczny strumienia audio z punktu końcowego serwera do punktu końcowego VoIP 3:

"properties": {
    "identifier":           "null",
    "participantId":        "1a9cb3d1-7898-4063-b3d2-26c1630ecf03",
    "endpointId":           null,
    "endpointType":         "Server"    
    "mediaType":            "Audio",
    "streamId":             "1000",
    "transportType":        "UDP",
    "roundTripTimeAvg":     "45",
    "roundTripTimeMax":     "46",
    "jitterAvg":            "1",
    "jitterMax":            "4",
    "packetLossRateAvg":    "0",

Wywoływanie dziennika operacji klienta i wywoływanie dzienników statystyk multimediów klienta dla połączeń P2P i grup

W przypadku dziennika operacji klienta wywołania i wywołania dziennika szeregów czasowych statystyk multimediów klienta nie ma różnicy między scenariuszami P2P i wywołaniami grupowymi, a liczba dzienników zależy od operacji zestawu SDK i czasu trwania wywołania. Poniższy kod to ogólny przykład przedstawiający schemat tych dzienników.

Wywoływanie dziennika operacji klienta

Oto dziennik operacji klienta wywołania dla operacji "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"
}

Każdy uczestnik może mieć wiele różnych metryk dla wywołania. Możesz uruchomić następujące zapytanie w usłudze Log Analytics w witrynie Azure Portal, aby wyświetlić listę wszystkich możliwych operacji w dzienniku operacji klienta wywołania:

ACSCallClientOperations | distinct OperationName

Wywoływanie dziennika szeregów czasowych statystyk multimediów klienta

Oto przykład dziennika szeregów czasowych statystyk multimediów. Przedstawia on metrykę Jitter uczestnika do odbierania strumienia audio w określonym znaczniku czasu.

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

Każdy uczestnik może mieć wiele różnych metryk statystyk multimedialnych dla wywołania. Następujące zapytanie można uruchomić w usłudze Log Analytics w witrynie Azure Portal, aby wyświetlić wszystkie możliwe metryki w tym dzienniku:

ACSCallClientMediaStatsTimeSeries | distinct MetricName

Kody błędów

Właściwość participantEndReason zawiera wartość z zestawu kodów błędów wywoływania zestawu SDK. Możesz zapoznać się z tymi kodami, aby rozwiązać problemy podczas wywołania dla każdego punktu końcowego. Zobacz Rozwiązywanie problemów z kodami odpowiedzi zakończenia wywołań dla zestawu SDK wywoływania, zestawem SDK usługi Call Automation, pstn, zestawem SDK czatu i zestawem SMS SDK.

Następne kroki