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 null hodnota , 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
Přehled všech protokolů hlasových hovorů a videí najdete v tématu: Přehled protokolů volání služeb Azure Communication Services
Seznamte se s osvědčenými postupy pro správu kvality a spolehlivosti hovorů, viz: Zlepšení a správa kvality hovorů
Přečtěte si o řídicím panelu přehledů pro monitorování protokolů hlasových hovorů a videohovorů.
Zjistěte, jak pomocí protokolů volání diagnostikovat problémy s kvalitou volání a spolehlivostí diagnostiky volání, viz: Diagnostika volání