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
correlationId
element . Wartości dla elementucorrelationId
są unikatowe dla każdego wywołania i są powiązane czasowo nacallStartTime
podstawie wartości icallDuration
.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
endpointId
element . 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 nowegoendpointId
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ładAudio
lubVideo
).
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 mediaType umoż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 , PacketsPerSecond i 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 , audio lub screen . |
MediaStreamCodec |
Koder służący do kodowania/dekodowania strumienia multimediów, takiego jak H264 , OPUS , VP8 i 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 RemoteParticipantId element . |
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.
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 iparticipantDuration
.
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ń.
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.
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
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).
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
Dowiedz się więcej na temat pulpitu nawigacyjnego szczegółowych informacji na temat monitorowania dzienników i metryk połączeń głosowych i połączeń wideo.
Poznaj najlepsze rozwiązania dotyczące zarządzania jakością i niezawodnością połączeń, zobacz: Ulepszanie jakości połączeń i zarządzanie nimi
Dowiedz się, jak używać dzienników wywołań do diagnozowania problemów z jakością i niezawodnością wywołań w diagnostyce połączeń, zobacz: Call Diagnostics (Diagnostyka połączeń)