Protokoly hlasových hovorů a videohovorů ve službě Azure Communication Services

Azure Communication Services nabízí možnosti protokolování, které můžete použít k monitorování a ladění řešení Communication Services. Tyto funkce nakonfigurujete prostřednictvím webu Azure Portal.

Obsah v tomto článku se týká protokolů povolených prostřednictvím služby Azure Monitor (viz také nejčastější dotazy). Pokud chcete povolit tyto protokoly pro komunikační služby, přečtěte si téma Povolení protokolování v nastavení diagnostiky.

Koncepty dat

Následující základní popisy konceptů dat jsou specifické pro hlasové hovory a videohovory. Tyto koncepty jsou důležité ke kontrole, abyste porozuměli významu dat zachycených v protokolech.

Entity a ID

Seznamte se s následujícími termíny:

  • Volání: Jak je znázorněno v datech, volání je abstrakce, která je znázorněna correlationId. Hodnoty pro correlationId každé volání jsou jedinečné a jsou vázané callStartTime na čas a callDuration.

  • Účastník: Tato entita představuje připojení mezi koncovým bodem a serverem. Účastník (participantId) je k dispozici pouze tehdy, když je hovor skupinový.

  • Koncový bod: Jedná se o nejvýraznější entitu reprezentovanou endpointIdhodnotou . Každé volání je událost, která obsahuje data ze dvou nebo více koncových bodů. Koncové body představují účastníky hovoru.

    EndpointType udává, jestli je koncový bod člověkem (pstn nebo VoIP), robotem nebo serverem, který spravuje více účastníků během hovoru. endpointType Pokud je "Server"hodnota, koncový bod nemá přiřazené jedinečné ID. Můžete analyzovat endpointType a počet hodnot, abyste zjistili, endpointId kolik uživatelů a dalších nelidských účastníků (robotů a serverů) se připojí k hovoru.

    Nativní sady SDK pro Android a iOS opakovaně používají stejnou endpointId hodnotu pro uživatele napříč několika voláními, abyste pochopili prostředí napříč relacemi. Tento proces se liší od webových koncových bodů, které vždy generují novou endpointId hodnotu pro každé nové volání.

  • Stream: Toto je nejpodrobnější entita. Pro každý směr (příchozí nebo odchozí) a mediaType hodnotu (například Audio nebo Video) existuje jeden datový proud.

Definice dat

Schéma protokolu využití

Vlastnost Popis
Timestamp Časové razítko (UTC) doby vygenerování protokolu
Operation Name Operace přidružená k záznamu protokolu.
Operation Version Hodnota api-version přidružená k operaci, pokud Operation Name byla operace provedena prostřednictvím rozhraní API. Pokud žádné rozhraní API neodpovídá této operaci, verze představuje verzi operace v případě, že se vlastnosti přidružené k operaci v budoucnu změní.
Category Kategorie protokolu události. Kategorie je členitost, ve které můžete povolit nebo zakázat protokoly prostředku. Vlastnosti, které se zobrazí v objektu properties blob události, jsou stejné v kategorii protokolu a typu prostředku.
Correlation ID ID pro korelované události. Můžete ho použít k identifikaci korelovaných událostí mezi více tabulkami.
Properties Další data, která se vztahují na různé režimy komunikačních služeb.
Record ID Jedinečné ID záznamu využití.
Usage Type Režim použití (například Chat, PSTN nebo NAT).
Unit Type Typ jednotky, na které se používá režim použití (například minuty, megabajty nebo zprávy).
Quantity Počet použitých nebo spotřebovaných jednotek pro tento záznam.

Schéma protokolu souhrnu volání

Protokol souhrnu volání obsahuje data, která vám pomůžou identifikovat klíčové vlastnosti všech volání. Pro každý z nich participantId se vytvoří jiný protokol souhrnu volání (endpointId v případě volání peer-to-peer [P2P] v volání).

Důležité

Informace o účastníkech v protokolu souhrnu volání se liší v závislosti na tenantovi účastníka. Verze sady SDK a verze operačního systému se redactují, pokud účastník není ve stejném tenantovi (označuje se také jako prostředek Komunikační služby). Účastníci mezi tenanty jsou klasifikovaní jako externí uživatelé pozvaní tenantem prostředků, aby se připojili a spolupracovali během hovoru.

Vlastnost Popis
time Časové razítko (UTC) doby vygenerování protokolu
operationName Operace přidružená k záznamu protokolu.
operationVersion Hodnota api-version přidružená k operaci, pokud operationName byla operace provedena prostřednictvím rozhraní API. Pokud žádné rozhraní API neodpovídá této operaci, verze představuje verzi operace v případě, že se vlastnosti přidružené k operaci v budoucnu změní.
category Kategorie protokolu události. Tato vlastnost je členitost, při které můžete povolit nebo zakázat protokoly prostředku. Vlastnosti, které se zobrazí v objektu properties blob události, jsou stejné v kategorii protokolu a typu prostředku.
correlationId Jedinečné ID volání. Identifikuje korelované události ze všech účastníků a koncových bodů, které se připojují během jednoho volání, a můžete je použít k připojení dat z různých protokolů. Pokud byste někdy potřebovali otevřít případ podpory u Microsoftu, můžete pomocí correlationId této hodnoty snadno identifikovat volání, které řešíte.
identifier Jedinečné ID uživatele. Identitou může být uživatel Azure Communication Services, ID uživatele Microsoft Entra, anonymní ID uživatele Teams nebo ID robota Teams. Toto ID můžete použít ke korelaci uživatelských událostí napříč protokoly.
callStartTime Časové razítko pro zahájení volání na základě prvního pokusu o připojení z libovolného koncového bodu.
callDuration Doba trvání volání vyjádřená v sekundách. Vychází z prvního pokusu o připojení a konce posledního připojení mezi dvěma koncovými body.
callType Typ hovoru. Obsahuje buď "P2P" nebo "Group". Volání "P2P" je přímé připojení 1:1 mezi pouze dvěma koncovými body bez serveru. Volání "Group" je volání, které má více než dva koncové body nebo se vytvoří jako "Group" volání před připojením.
teamsThreadId ID vlákna Teams. Toto ID je relevantní jenom v případě, že je hovor uspořádaný jako schůzka v Teams. Pak představuje případ použití vzájemné spolupráce mezi Microsoft Teams a Komunikačními službami Azure.

Toto ID je zveřejněné v provozních protokolech. Toto ID můžete získat také prostřednictvím rozhraní API chatu.
participantId ID vygenerované tak, aby představovalo obousměrné připojení mezi "Participant" koncovým bodem (endpointType = "Server") a serverem. Když callType = "P2P"dojde k přímému spojení mezi dvěma koncovými body a nevygeneruje se žádná participantId hodnota.
participantStartTime Časové razítko pro začátek prvního pokusu o připojení účastníka.
participantDuration Doba trvání připojení každého účastníka v sekundách od participantStartTime do časového razítka, kdy připojení skončilo.
participantEndReason Důvod ukončení připojení účastníka. Obsahuje kódy chyb volání sady SDK, které sada SDK pro každou participantId hodnotu generuje (pokud je relevantní).
endpointId Jedinečné ID, které představuje každý koncový bod připojený k volání, kde endpointType definuje typ koncového bodu. Pokud je nullhodnota , připojená entita je server komunikační služby ( = endpointType"Server").

Hodnota endpointId může někdy trvat pro stejného uživatele ve více voláních (correlationId) pro nativní klienty. Počet endpointId hodnot určuje počet protokolů souhrnu volání. Pro každou endpointId hodnotu se vytvoří jedinečný souhrnný protokol.
endpointType Tato hodnota popisuje vlastnosti každého koncového bodu, který je připojený k volání. Může obsahovat "Server", , "PSTN""VOIP", "BOT"nebo "Unknown".
sdkVersion Řetězec verze pro verzi sady SDK pro volání komunikačních služeb, kterou každý relevantní koncový bod používá (například "1.1.00.20212500").
osVersion Řetězec, který představuje operační systém a verzi každého koncového zařízení.
participantTenantId ID tenanta Microsoftu přidruženého k identitě účastníka. Tenantem může být tenant Azure, který vlastní prostředek Azure Communication Services, nebo tenanta Microsoftu identity M365. Toto pole slouží k vedení redakce napříč tenanty.
participantType Popis účastníka jako kombinace svého klienta (Azure Communication Services nebo Teams) a jeho identity (Azure Communication Services nebo Microsoft 365). Mezi možné hodnoty patří: Azure Communication Services (identita služeb Azure Communication Services a sada SDK služby Azure Communication Services), Teams (identita Teams a klient Teams), Azure Communication Services jako externí uživatel (identita Azure Communication Services a sada AZURE Communication Services SDK v aplikaci Teams nebo schůzka), Azure Communication Services jako uživatel Microsoftu 365 (identita M365 a klient Azure Communication Services), a aplikace Teams Voice.
pstnPartcipantCallType Představuje typ a směr účastníků veřejné telefonní sítě, včetně volání tísňového volání, přímého směrování, přenosu, přesměrování atd.

Volání schématu diagnostického protokolu

Diagnostické protokoly volání poskytují důležité informace o koncových bodech a přenosech médií pro každého účastníka. Poskytují také měření, která vám pomůžou porozumět problémům s kvalitou.

Pro každý koncový bod v rámci volání se vytvoří jedinečný diagnostický protokol volání pro odchozí datové proudy médií (například zvuk nebo video) mezi koncovými body. Ve volání P2P každý protokol obsahuje data, která se vztahují ke každému odchozímu datovému proudu přidruženému ke každému koncovému bodu. Ve skupinových voláních participantId slouží jako identifikátor klíče pro připojení souvisejících odchozích protokolů k jedinečnému připojení účastníka. Diagnostické protokoly volání zůstávají nedotčené a jsou stejné bez ohledu na tenanta účastníka.

Poznámka:

V tomto článku jsou volání P2P a skupiny ve výchozím nastavení ve stejném tenantovi pro všechny scénáře volání, které jsou mezi tenanty. Jsou zadány odpovídajícím způsobem v celém článku.

Vlastnost Popis
operationName Operace přidružená k záznamu protokolu.
operationVersion Hodnota api-version přidružená k operaci, pokud operationName byla operace provedena prostřednictvím rozhraní API. Pokud žádné rozhraní API neodpovídá této operaci, verze představuje verzi operace v případě, že se vlastnosti přidružené k operaci v budoucnu změní.
category Kategorie protokolu události. Tato vlastnost je členitost, při které můžete povolit nebo zakázat protokoly prostředku. Vlastnosti, které se zobrazí v objektu properties blob události, jsou stejné v kategorii protokolu a typu prostředku.
correlationId Jedinečné ID volání. Identifikuje korelované události ze všech účastníků a koncových bodů, které se připojují během jednoho volání. Pokud byste někdy potřebovali otevřít případ podpory u Microsoftu, můžete pomocí correlationId této hodnoty snadno identifikovat volání, které řešíte.
participantId ID vygenerované tak, aby představovalo obousměrné připojení mezi "Participant" koncovým bodem (endpointType = "Server") a serverem. Když callType = "P2P"dojde k přímému spojení mezi dvěma koncovými body a nevygeneruje se žádná participantId hodnota.
identifier Jedinečné ID uživatele. Identitou může být uživatel Azure Communication Services, ID uživatele Microsoft Entra, ID objektu Teams nebo ID robota Teams. Toto ID můžete použít ke korelaci uživatelských událostí napříč protokoly.
endpointId Jedinečné ID, které představuje každý koncový bod připojený k volání, kde endpointType definuje typ koncového bodu. Pokud je nullhodnota , připojená entita je server komunikační služby. EndpointId může uchovávat pro stejného uživatele ve více voláních (correlationId) pro nativní klienty, ale je jedinečný pro každé volání, pokud je klient webovým prohlížečem.
endpointType Hodnota, která popisuje vlastnosti každé endpointId instance. Může obsahovat "Server", , "VOIP", "BOT""PSTN", "Voicemail", , "Anonymous", nebo "Unknown".
mediaType Řetězcová hodnota, která popisuje typ média přenášeného mezi koncovými body v rámci každého datového proudu. Mezi možné hodnoty patří "Audio", , "Video""VBSS" (sdílení obrazovky založené na videu) a "AppSharing".
streamId Neidentifikované celé číslo, které společně s mediaType, můžete použít k jedinečné identifikaci datových proudů stejné participantId hodnoty.
transportType Řetězcová hodnota, která popisuje protokol síťového přenosu pro každou participantId hodnotu. Může obsahovat "UDP", "TCP"nebo "Unrecognized". "Unrecognized" indikuje, že systém nemohl určit, zda typ přenosu byl TCP nebo UDP.
roundTripTimeAvg Průměrná doba, kterou trvá získání paketu IP z jednoho koncového bodu do druhého během časového participantDuration období. Toto zpoždění šíření sítě souvisí s fyzickou vzdáleností mezi těmito dvěma body, rychlostí světla a veškerou režií, kterou různé směrovače přebírají mezi nimi.

Latence se měří jako jednosměrná doba nebo doba odezvy (RTT). Jeho hodnota vyjádřená v milisekundách. RtT větší než 500 ms má negativní vliv na kvalitu volání.
roundTripTimeMax Maximální hodnota RTT (v milisekundách) měřená během časového období participantDuration skupinového volání nebo během callDuration časového období volání P2P.
jitterAvg Průměrná změna zpoždění mezi po sobě jdoucími pakety. Služba Azure Communication Services se může přizpůsobit některým úrovním zpoždění prostřednictvím ukládání do vyrovnávací paměti. Když jitter překročí vyrovnávací paměť, což je přibližně v jitterAvg době delší než 30 ms, je pravděpodobné, že dojde k negativnímu dopadu na kvalitu. Pakety přicházející v různých rychlostech způsobují, že hlas reproduktoru zní robotiky.

Tato metrika se měří pro každý datový proud médií v participantDuration období skupinového volání nebo v callDuration období volání P2P.
jitterMax Maximální hodnota zpoždění měřená mezi pakety pro každý datový proud médií. Shluky v síťových podmínkách můžou způsobovat problémy s tokem zvukového a video provozu.
packetLossRateAvg Průměrné procento ztracenýchpaketch Ztráta paketů přímo ovlivňuje kvalitu zvuku. Malé, individuální ztracené pakety nemají téměř žádný dopad, zatímco ztráty zpětného nárazu způsobují, že zvuk se úplně vyřízne. Pakety, které se zahodí a nepřicházejí do zamýšleného cíle, způsobují mezery v médiu. Výsledkem této situace jsou zmeškané slabiky a slova spolu s nakrájeným videem a sdílením.

Míra ztráty paketů větší než 10 % (0,1) pravděpodobně má negativní dopad na kvalitu. Tato metrika se měří pro každý datový proud médií v participantDuration období skupinového volání nebo v callDuration období volání P2P.
packetLossRateMax Tato hodnota představuje maximální míru ztráty paketů (procento) pro každý datový proud médií v participantDuration období skupinového volání nebo v callDuration průběhu období volání P2P. Shluky v síťových podmínkách můžou způsobovat problémy s tokem zvukového a video provozu.
JitterBufferSizeAvg Průměrná velikost vyrovnávací paměti zadržování v průběhu doby trvání jednotlivých datových proudů médií. Vyrovnávací paměť zatřesování je sdílená datová oblast, kde je možné shromažďovat, ukládat a odesílat hlasové pakety do hlasového procesoru v rovnoměrně rozložených intervalech. Vyrovnávací paměť jitter se používá k čítači účinků jitter.

Vyrovnávací paměti můžou být statické nebo dynamické. Vyrovnávací paměti statického zadržování jsou nastaveny na pevnou velikost, zatímco dynamické vyrovnávací paměti jitter mohou upravit na základě podmínek sítě. Cílem vyrovnávací paměti pro zadržování je poskytnout uživateli hladký a nepřerušovaný stream zvukových a video dat.

Ve webové sadě SDK je tato hodnota JitterBufferSizeAvg průměrnou hodnotou jitterBufferDelay během volání, "jitterBufferDelay" je doba trvání zvukové ukázky nebo rámečku videa, který zůstává v vyrovnávací paměti jitter.

Obvykle když je hodnota JitterBufferSizeAvg větší než 200 ms, způsobí negativní dopad na kvalitu.
JitterBufferSizeMax Maximální velikost vyrovnávací paměti jitter měřená během doby trvání každého datového proudu médií.

Obvykle, když je tato hodnota větší než 200 ms, způsobí negativní dopad na kvalitu.
HealedDataRatioAvg Průměrné procento ztracených nebo poškozených datových paketů, které jsou úspěšně rekonstruovány nebo obnoveny léčí v průběhu doby trvání zvukového streamu. Poměr opravených dat je měřítkem účinnosti technik oprav chyb používaných v systémech VoIP.

Pokud je tato hodnota větší než 0,1 (10 %), považujeme datový proud za špatnou kvalitu.
HealedDataRatioMax Maximální poměr zahojených dat měřený během doby trvání každého datového proudu médií.

Pokud je tato hodnota větší než 0,1 (10 %), považujeme datový proud za špatnou kvalitu.
VideoFrameRateAvg Průměrný počet snímků videa přenášených za sekundu během videohovoru nebo sdílení obrazovky. Frekvence snímků videa může mít vliv na kvalitu a plynulost streamu videa, přičemž vyšší frekvence snímků obecně vede k plynulejšímu a plynulejšímu pohybu. Standardní frekvence snímků videa WebRTC je obvykle 30 snímků za sekundu (fps), i když se to může lišit v závislosti na konkrétní implementaci a podmínkách sítě.

Kvalita streamu se považuje za špatnou, pokud je tato hodnota menší než 7 pro video stream nebo menší než 1 pro stream sdílení obrazovky.
RecvResolutionHeight Průměrná svislá velikost příchozího streamu videa přenášeného během videohovoru nebo sdílení obrazovky. Měří se v pixelech a je jedním z faktorů, které určují celkové rozlišení a kvalitu streamu videa. Použité konkrétní řešení může záviset na možnostech zařízení a podmínek sítě, které jsou součástí volání.

Kvalita streamu se považuje za špatnou, pokud je tato hodnota menší než 240 pro video stream nebo menší než 768 pro stream sdílení obrazovky.
RecvFreezeDurationPerMinuteInMs Průměrná doba ukotvení v milisekundách za minutu u příchozího streamu videa nebo sdílení obrazovky. Zablokování je obvykle způsobeno chybnou sítí a může snížit kvalitu datového proudu.

Kvalita streamu se považuje za špatnou, pokud je tato hodnota větší než 6 000 ms pro video stream nebo větší než 25 000 ms pro stream sdílení obrazovky.

Volání schématu protokolu operací klienta

Důležité

Funkce popsané v tomto článku jsou aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Protokol operací klienta volání poskytuje informace na straně klienta o volajících koncových bodech a účastníkůch zapojených do volání. Tyto protokoly jsou aktuálně ve verzi Preview a zobrazují události klienta, ke kterým došlo při volání a jaké akce zákazník mohl během hovoru provést.

Tento protokol poskytuje podrobné informace o akcích provedených během volání a je možné je použít k vizualizaci a zkoumání problémů s voláním pomocí diagnostiky volání pro prostředek služby Azure Communication Services. Další informace o diagnostice volání

Vlastnost Popis
CallClientTimeStamp Časové razítko, kdy došlo k operaci v sadě SDK v UTC.
OperationName Název operace aktivované na volající sadě SDK.
CallId Jedinečné ID volání. Identifikuje korelované události ze všech účastníků a koncových bodů, které se připojují během jednoho volání, a můžete je použít k připojení dat z různých protokolů. Podobá se ID korelace v protokolu souhrnu volání a diagnostickému protokolu volání.
ParticipantId Jedinečný identifikátor pro každou nohu hovoru (ve skupinových hovorech) nebo účastníka hovoru (v partnerském vztahu k partnerským voláním). Toto ID je hlavní korelační bod mezi protokoly CallSummary, CallDiagnostic, CallClientOperations a CallClientMediaStats.
OperationType Volání operace klienta
OperationId Jedinečný identifikátor GGUID identifikující operaci sady SDK.
DurationMs Doba, kterou trvala operace volání sady SDK, selhala nebo byla úspěšná.
ResultType Pole popisující úspěch nebo selhání operace
ResultSignature HTTP, jako je selhání nebo kód úspěchu (200, 500).
SdkVersion Používá se verze sady SDK pro volání.
UserAgent Používá se standardní řetězec uživatelského agenta založený na prohlížeči nebo sadě SDK pro volání platformy.
ClientInstanceId Jedinečný objekt GGUID identifikující objekt CallClient.
EndpointId Jedinečné ID, které představuje každý koncový bod připojený k volání, kde endpointType definuje typ koncového bodu. Pokud je hodnota null, připojená entita je server komunikační služby (endpointType = "Server").

Hodnota endpointId může někdy trvat pro stejného uživatele ve více voláních (correlationId) nativních klientů. Počet hodnot endpointId určuje počet protokolů souhrnu volání. Pro každou hodnotu endpointId se vytvoří jedinečný souhrnný protokol.
OperationPayload Dynamická datová část, která se liší v závislosti na operaci, která poskytuje podrobnější podrobnosti o operaci.

P2P vs. skupinové volání

Existují dva typy volání, jak je reprezentováno callType:

  • Volání peer to Peer (P2P): Připojení mezi pouze dvěma koncovými body bez koncového bodu serveru. Volání P2P se zahájí jako volání mezi těmito koncovými body a před připojením se nevytvořijí jako událost skupinového volání.

    Diagram that shows a P2P call across two endpoints.

  • Skupinové volání: Jakékoli volání, které má více než dva koncové body připojené. Volání skupin zahrnují koncový bod serveru a připojení mezi jednotlivými koncovými body a serverem. Volání P2P, která během volání přidají další koncový bod, přestanou být P2P a stanou se voláním skupiny. Časovou osu, kdy se každý koncový bod připojil k volání, můžete určit pomocí participantStartTime metrik a participantDuration metrik.

    Diagram that shows a group call across multiple endpoints.

Struktura protokolu

Azure Communication Services vytvoří čtyři typy protokolů:

  • Protokoly souhrnu volání: Obsahují základní informace o volání, včetně všech relevantních ID, časových razítek, koncových bodů a informací o sadě SDK. Pro každého účastníka v rámci hovoru vytvoří komunikační služba jedinečný protokol souhrnu volání.

    Pokud se někdo znovu připojí k hovoru, má tento účastník stejnou EndpointId hodnotu, ale jinou ParticipantId hodnotu. Tento koncový bod pak může mít dva protokoly souhrnu volání.

  • Protokoly diagnostiky volání: Obsahují informace o datovém proudu spolu se sadou metrik, které označují kvalitu měření zkušeností. Pro každý EndpointId z volání (včetně serveru) vytvoří Služba Azure Communication Services jedinečný protokol diagnostiky volání pro každý datový proud médií (například zvuk nebo video) mezi koncovými body.

  • Protokoly operací volání: Obsahují podrobné události klienta volání. Tyto události protokolu se generují pro každý EndpointId hovor a počet vygenerovaných protokolů událostí bude záviset na operacích, které účastník provedl během hovoru.

Příklad: Volání P2P

Následující diagram představuje dva koncové body připojené přímo ve volání P2P. V tomto příkladu služba Communication Services vytvoří dva souhrnné protokoly volání (jeden pro každou participantID hodnotu) a čtyři diagnostické protokoly volání (jeden pro každý datový proud médií).

Diagram that shows a P2P call within the same tenant.

Příklad: Skupinové volání

Následující diagram představuje příklad skupinového volání se třemi participantId hodnotami (což znamená tři účastníky) a koncovým bodem serveru. V několika účastníkůch se může zobrazit více hodnot endpointId – například když se znovu připojí ke stejnému zařízení. Služba Communication Services vytvoří jeden protokol souhrnu volání pro každou participantId hodnotu. Vytvoří čtyři diagnostické protokoly volání: jeden pro každý datový proud médií na participantIdjeden .

V případě volání klienta Azure Communication Services (ACS) jsou protokoly operací volání stejné jako volání P2P. Pro každého účastníka, který používá volání sady SDK, bude k dispozici řada protokolů operací volání klienta.

Diagram that shows a group call within the same tenant.

Příklad: Volání P2P mezi tenanty

Následující diagram představuje dva účastníky ve více tenantech, kteří jsou připojeni přímo ve volání P2P. V tomto příkladu služba Communication Services vytvoří jeden protokol souhrnu volání (jeden pro každého účastníka) s redakčně upravenou verzí operačního systému a sady SDK. Služba Communication Services také vytvoří čtyři diagnostické protokoly volání (jeden pro každý datový proud médií). Každý protokol obsahuje data, která se vztahují k odchozímu datovému participantIDproudu .

Diagram that shows a cross-tenant P2P call.

Příklad: Volání skupiny napříč tenanty

Následující diagram představuje příklad skupinového volání se třemi participantId hodnotami ve více tenantech. Služba Communication Services vytvoří pro každého účastníka jeden protokol souhrnu volání s redakčně upravenou verzí operačního systému a sady SDK. Služba Communication Services také vytvoří čtyři diagnostické protokoly volání, které se týkají každé participantId hodnoty (jedna pro každý datový proud médií).

Diagram that shows a cross-tenant group call.

Poznámka:

Tato verze podporuje pouze odchozí diagnostické protokoly. Verze operačního systému a sady SDK přidružené k robotovi a účastníkovi je možné redactovat, protože komunikační služby zachází s identitami účastníků a robotů stejným způsobem.

Vzorová data

Volání P2P

Tady jsou sdílená pole pro všechny protokoly ve volání 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":            "8d1a8374-344d-4502-b54b-ba2d6daaf0ae",

Protokoly souhrnu volání

Protokoly souhrnu volání mají sdílenou operaci a informace o kategoriích:

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

Tady je souhrn volání pro uživatele 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"
}

Tady je souhrn volání pro uživatele 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"
}

Tady je protokol souhrnu volání mezi tenanty pro uživatele 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"
}

Tady je souhrn volání pro volání do veřejné telefonní sítě:

Poznámka:

Protokoly volání P2P nebo skupiny mají redakci verzí operačního systému a sady SDK bez ohledu na to, jestli se jedná o tenanta účastníka nebo tenanta robota.

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

Volání diagnostických protokolů

Informace o operaci sdílení diagnostických protokolů:

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

Tady je diagnostický protokol zvukového streamu z koncového bodu VoIP 1 do koncového bodu 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"
}

Tady je diagnostický protokol zvukového streamu z koncového bodu VoIP 2 do koncového bodu 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"
}

Tady je diagnostický protokol pro stream videa z koncového bodu VoIP 1 do koncového bodu 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"
}

Skupinový hovor

Data pro skupinové volání se generují ve třech protokolech souhrnu volání a šesti diagnostických protokolech volání. Toto jsou sdílená pole pro všechny protokoly ve volání:

"time":                     "2021-07-05T06:30:06.402Z",
"resourceId":               "SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/ACS-TEST-RG/PROVIDERS/MICROSOFT.COMMUNICATION/COMMUNICATIONSERVICES/ACS-PROD-CCTS-TESTS",
"correlationId":            "341acde7-8aa5-445b-a3da-2ddadca47d22",

Protokoly souhrnu volání

Protokoly souhrnu volání mají sdílenou operaci a informace o kategoriích:

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

Tady je souhrn volání koncového bodu 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"
}

Tady je souhrn volání pro koncový bod 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"
}

Tady je souhrn volání koncového bodu veřejné telefonní sítě 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"
}

Tady je protokol souhrnu volání mezi tenanty:

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

Tady je protokol souhrnu volání mezi tenanty s robotem jako účastníkem:


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

Volání diagnostických protokolů

Informace o operaci sdílení diagnostických protokolů:

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

Tady je diagnostický protokol zvukového streamu z koncového bodu VoIP 1 do koncového bodu serveru:

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

Tady je diagnostický protokol zvukového streamu z koncového bodu serveru do koncového bodu 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"
}

Tady je diagnostický protokol zvukového streamu z koncového bodu VoIP 3 do koncového bodu serveru:

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

Tady je diagnostický protokol zvukového streamu z koncového bodu serveru do koncového bodu 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",

Volání protokolů operací klienta pro volání P2P a skupinových volání

V případě protokolu operací klienta volání neexistuje žádný rozdíl mezi scénáři volání P2P a skupinovými voláními a počtem protokolů závisí na operacích sady SDK a době trvání volání. Následující příklad uvádí několik obecných ukázek, které znázorňují schéma těchto protokolů.

Volání protokolu operací klienta

Tady je protokol operací volání klienta pro operaci CreateView:

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

Každý účastník může mít pro hovor mnoho různých metrik. Následující dotaz je možné spustit v Log Analytics na webu Azure Portal a zobrazit seznam všech možných operací v protokolu operací volání klienta:

ACSCallClientOperations | distinct OperationName

Kódy chyb

Vlastnost participantEndReason obsahuje hodnotu ze sady kódů chyb volající sady SDK. Tyto kódy můžete použít k řešení problémů během volání pro každý koncový bod. Viz Řešení potíží ve službě Azure Communication Services.

Další kroky