Sdílet prostřednictvím


Schéma protokolu diagnostiky volání

Protokoly diagnostiky 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ý EndpointId z volání (včetně serveru) vytvoří Služba Azure Communication Services pro každý datový proud médií (například zvuk nebo video) mezi koncovými body jedinečný protokol diagnostiky volání. 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. Protokoly diagnostiky volání zůstávají nedotčené a jsou stejné bez ohledu na tenanta účastníka.

Jak používat protokoly volání

Doporučujeme shromáždit všechny dostupné protokoly volání v prostředku log Analytics, abyste mohli monitorovat využití volání a zlepšit kvalitu volání a přijímat nové protokoly z Azure Communication Services při jejich vydání.

Existují dva hlavní nástroje, které můžete použít k monitorování hovorů a zlepšení kvality hovorů.

Doporučujeme použít řídicí panely pro přehledy hlasu a videa k zahájení jakéhokoli šetření kvality a použití diagnostiky volání podle potřeby k prozkoumání jednotlivých volání, když potřebujete podrobné podrobnosti.

Koncepty dat

Důležité

Pokud je chcete analyzovat, musíte shromažďovat protokoly. Další informace najdete v tématu: Návody ukládat protokoly?

Azure neukládá data protokolu volání, pokud tato konkrétní nastavení diagnostiky nepovolíte. Data volání nejsou zpětně dostupná. Jakmile vytvoříte nastavení diagnostiky, nashromáždíte data.

Definice dat

Schéma protokolu diagnostiky volání

Tato tabulka popisuje každou vlastnost.

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) a "AppSharing" (datový kanál).
streamId Neunique integer, 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" značí, že systém nemohl určit, jestli 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ě větší než 30 ms, může negativně ovlivnit 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 se jedná JitterBufferSizeAvg o průměrnou hodnotu jitterBufferDelay během volání. Jedná se jitterBufferDelay o dobu trvání zvukové ukázky nebo rámečku videa, který zůstává v zadržovací vyrovnávací paměti.

Obvykle, když JitterBufferSizeAvg je hodnota větší než 200 ms, má negativní vliv 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, má negativní vliv na kvalitu.
HealedDataRatioAvg Průměrné procento ztracených nebo poškozených datových paketů úspěšně rekonstruovalo nebo obnovilo healer 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 frekvence snímků 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.
PacketUtilization Pakety odeslané nebo přijaté pro daný datový proud médií.

Čím delší je volání, tím vyšší je hodnota. Pokud je tato hodnota nula, může to znamenat, že média neprotékají.
VideoBitRateAvg Průměrná přenosová rychlost (bity za sekundu) streamu videa nebo sdílení obrazovky.

Hodnota s nízkou přenosovou rychlostí může znamenat špatný problém se sítí. Minimální požadovaná přenosová rychlost (šířka pásma) najdete tady: Šířka pásma sítě.
VideoBitRateMax Maximální přenosová rychlost (bity za sekundu) pro stream videa nebo sdílení obrazovky.

Hodnota s nízkou přenosovou rychlostí může znamenat špatný problém se sítí. Minimální požadovaná přenosová rychlost (šířka pásma) najdete tady: Šířka pásma sítě.
StreamDirection Směr datového proudu médií. Je buď příchozí, nebo odchozí.
CodecName Název kodeku používaného ke zpracování datových proudů médií. Může to být OPUS, G722, H264S, SATIN atd.

Ukázková data pro různé typy volání

Poznámka:

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

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

Protokoly diagnostiky volání

Informace o operaci sdílení protokolů diagnostiky volání:

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

Protokoly diagnostiky volání

Informace o operaci sdílení protokolů diagnostiky volání:

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

Nejčastější dotazy

Návody ukládat protokoly?

Tento požadavek vysvětluje následující část.

Protokoly Azure Communication Services se ve výchozím nastavení neukládají do vašeho účtu Azure, takže je musíte začít ukládat, abyste mohli používat nástroje, jako je řídicí panel pro přehledy hlasových hovorů a diagnostika volání. Pokud chcete tyto protokoly volání shromáždit, musíte povolit nastavení diagnostiky, které směruje data volání do pracovního prostoru služby Log Analytics.

Data se neukládají zpětně, takže začnete zachytávat protokoly volání až po konfiguraci nastavení diagnostiky.

Podle pokynů přidejte nastavení diagnostiky pro váš prostředek v části Povolit protokoly prostřednictvím nastavení diagnostiky ve službě Azure Monitor. Doporučujeme nejprve shromáždit všechny protokoly. Jakmile porozumíte možnostem ve službě Azure Monitor, určete, které protokoly chcete zachovat a jak dlouho. Když přidáte nastavení diagnostiky, zobrazí se výzva k výběru protokolů. Pokud chcete shromáždit všechny protokoly, vyberte všechny protokoly.

Objem dat, uchovávání a využití v Log Analytics v rámci služby Azure Monitor se účtuje prostřednictvím stávajících měřičů dat Azure. Doporučujeme podle potřeby monitorovat využití dat a zásady uchovávání informací. Další informace naleznete v tématu Řízení nákladů.

Pokud máte více ID prostředků Azure Communications Services, musíte tato nastavení povolit pro každé ID prostředku.

Další kroky