Přehled diagnostiky před voláním
Důležité
Tato funkce služeb Azure Communication Services je aktuálně ve verzi Preview.
Rozhraní API a sady SDK verze Preview jsou poskytovány bez smlouvy o úrovni služeb. Doporučujeme je nepoužívat pro produkční úlohy. Některé funkce nemusí být podporované nebo můžou mít omezené možnosti.
Další informace najdete v dodatečných podmínkách použití pro verze Preview Microsoft Azure.
Funkce rozhraní API před voláním umožňuje vývojářům programově ověřit připravenost klienta připojit se k volání služby Azure Communication Services. Pomocí sady SDK pro volání můžete přistupovat pouze k funkcím před voláním. Funkce diagnostiky před voláním poskytuje více diagnostik, včetně kvality zařízení, připojení a volání. Funkce diagnostiky před voláním je dostupná jenom pro web (JavaScript). V budoucnu plánujeme tyto možnosti povolit na různých platformách. Poskytněte nám zpětnou vazbu ohledně platforem, které chcete zobrazit s povolenou diagnostikou před voláním.
Požadavky
Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
Node.js doporučujeme používat aktivní verze dlouhodobé podpory (LTS).
Aktivní prostředek komunikační služby. Vytvořte prostředek komunikační služby.
Přístupový token uživatele pro vytvoření instance klienta volání. Naučte se vytvářet a spravovat přístupové tokeny uživatelů. K vytvoření uživatele a přístupového tokenu můžete také použít Azure CLI a spustit další příkaz se svým připojovací řetězec. Nezapomeňte zkopírovat připojovací řetězec z prostředku prostřednictvím webu Azure Portal.
az communication identity token issue --scope voip --connection-string "yourConnectionString"
Další informace najdete v tématu Použití Azure CLI k vytváření a správě přístupových tokenů.
Přístup k diagnostice před voláním
Důležité
Diagnostika před voláním je dostupná od verze 1.9.1-beta.1 volající sady SDK. Při použití těchto pokynů nezapomeňte použít tuto verzi nebo vyšší.
Pokud chcete získat přístup k diagnostice před voláním, musíte inicializovat callClient
přístupový token služby Azure Communication Services a zřídit ho. K této funkci a startTest
metodě máte přístupPreCallDiagnostics
.
import { CallClient, Features} from "@azure/communication-calling";
import { AzureCommunicationTokenCredential } from '@azure/communication-common';
const callClient = new CallClient();
const tokenCredential = new AzureCommunicationTokenCredential("INSERT ACCESS TOKEN");
const preCallDiagnosticsResult = await callClient.feature(Features.PreCallDiagnostics).startTest(tokenCredential);
Jakmile se dokončí jeho spuštění, můžou vývojáři získat přístup k objektu výsledku.
Výsledky diagnostiky
Diagnostika před voláním vrátí úplnou diagnostiku zařízení, včetně podrobností, jako jsou oprávnění zařízení, dostupnost a kompatibilita, statistika kvality volání a diagnostika během hovoru. Výsledky se vrátí jako PreCallDiagnosticsResult
objekt.
export declare type PreCallDiagnosticsResult = {
deviceAccess: Promise<DeviceAccess>;
deviceEnumeration: Promise<DeviceEnumeration>;
inCallDiagnostics: Promise<InCallDiagnostics>;
browserSupport?: Promise<DeviceCompatibility>;
id: string;
callMediaStatistics?: Promise<MediaStatsCallFeature>;
};
K jednotlivým objektům výsledků můžete přistupovat pomocí preCallDiagnosticsResult
typu. Výsledky jednotlivých testů se vrátí, protože jsou dokončeny s mnoha výsledky testů, které jsou k dispozici okamžitě. Pokud použijete inCallDiagnostics
test, výsledky můžou trvat až 1 minutu, protože test ověří kvalitu videa a zvuku.
Podpora prohlížečů
Kontrola kompatibility prohlížeče Browser
Kontroluje a OS
kompatibilitu Supported
a vrací hodnotu nebo NotSupported
hodnotu.
const browserSupport = await preCallDiagnosticsResult.browserSupport;
if(browserSupport) {
console.log(browserSupport.browser)
console.log(browserSupport.os)
}
Pokud se test nezdaří a prohlížeč používaný uživatelem je NotSupported
nejjednodušší způsob, jak to vyřešit tím, že požádá uživatele, aby přepnul na podporovaný prohlížeč. Projděte si podporované prohlížeče v přehledu > podpory javascriptové sady SDK pro volání v jazyce JavaScript podle operačního systému a prohlížeče.
Poznámka:
Známý problém: browser support
Test, který Unknown
se vrací v případech, kdy by měl vracet správnou hodnotu
Přístup k zařízení
Kontrola oprávnění určuje, jestli jsou videa a zvuková zařízení k dispozici z hlediska oprávnění. Poskytuje boolean
hodnotu pro audio
zařízení a video
zařízení.
const deviceAccess = await preCallDiagnosticsResult.deviceAccess;
if(deviceAccess) {
console.log(deviceAccess.audio)
console.log(deviceAccess.video)
}
Pokud test selže a oprávnění jsou pro zvuk a video false, neměl by uživatel pokračovat v připojení k hovoru. Místo toho uživatele vyzve k povolení oprávnění. Nejlepší způsob, jak to udělat, je poskytnutím konkrétní instrukce pro přístup k oprávněním na základě operačního systému, verze a prohlížeče, které používají. Další informace ooprávněních
Výčet zařízení
Dostupnost zařízení. Zkontroluje, jestli jsou v systému zjištěna mikrofon, kamera a reproduktory a jestli jsou připravená k použití. Available
Vrátí hodnotu nebo NotAvailable
hodnotu.
const deviceEnumeration = await preCallDiagnosticsResult.deviceEnumeration;
if(deviceEnumeration) {
console.log(deviceEnumeration.microphone)
console.log(deviceEnumeration.camera)
console.log(deviceEnumeration.speaker)
}
Pokud zařízení nejsou dostupná, neměl by uživatel pokračovat v připojování k hovoru. Místo toho uživatele vyzvat, aby zkontroloval připojení zařízení, aby se zajistilo, že jsou správně připojené náhlavní soupravy, kamery nebo reproduktory. Další informace o správě zařízení najdete v tématu Správa videa během hovorů.
Diagnostika inCall
Provede rychlý hovor, který zkontroluje metriky volání pro zvuk a video a vrátí výsledky zpět. Zahrnuje připojení (connected
, logickou hodnotu), kvalitu šířky pásma (bandWidth
, 'Bad' | 'Average' | 'Good'
) a diagnostiku volání pro zvuk a video (diagnostics
). Poskytnuté diagnostické kategorie zahrnují jitter
, packetLoss
a výsledky rtt
se generují pomocí jednoduché známky kvality ('Bad' | 'Average' | 'Good'
).
Diagnostika InCall používá statistiku kvality médií k výpočtu skóre kvality a diagnostiky problémů. Během diagnostiky před voláním je k dispozici úplná sada statistik kvality médií pro spotřebu. Mezi tyto statistiky patří nezpracované hodnoty napříč metrikami videa a zvuku, které můžete použít programově.
Diagnostika InCall poskytuje pohodlnou vrstvu nad statistikou kvality médií, která využívá výsledky, aniž by bylo nutné zpracovávat všechna nezpracovaná data. Další informace, včetně pokynů pro přístup, najdete v tématu Statistiky kvality médií pro probíhající volání.
const inCallDiagnostics = await preCallDiagnosticsResult.inCallDiagnostics;
if(inCallDiagnostics) {
console.log(inCallDiagnostics.connected)
console.log(inCallDiagnostics.bandWidth)
console.log(inCallDiagnostics.diagnostics.audio)
console.log(inCallDiagnostics.diagnostics.video)
}
V tomto kroku existuje několik možných bodů selhání. Hodnoty poskytované rozhraním API jsou založené na prahových hodnotách vyžadovaných službou. Nezpracované prahové hodnoty najdete ve statistikách kvality médií.
- Pokud se připojení nezdaří, vyzve uživatele, aby znovu kontrolovali připojení k síti. Selhání připojení se dají také přiřazovat síťovým podmínkám, jako jsou DNS, proxy servery nebo brány firewall. Další informace o doporučeném nastavení sítě najdete v tématu Doporučení k síti.
- Pokud je
Bad
šířka pásma, vyzve uživatele, aby vyzkoušeli jinou síť nebo ověřili dostupnost šířky pásma v aktuální síti. Ujistěte se, že neprobíhá žádné další aktivity s velkou šířkou pásma.
Ceny
Když se diagnostický test před voláním spustí na pozadí, použije k spuštění diagnostiky minuty volání. Test trvá přibližně 30 sekund a využívá až 30 sekund doby volání, která se účtuje standardní sazbou 0,004 USD za účastníka za minutu. V případě diagnostiky před voláním je poplatek za 1 účastníka x 30 sekund = 0,002 USD.