Diagnostyka przed wywołaniem
Ważne
Ta funkcja usług Azure Communication Services jest obecnie dostępna w wersji zapoznawczej.
Interfejsy API i zestawy SDK w wersji zapoznawczej są udostępniane bez umowy dotyczącej poziomu usług. Zalecamy, aby nie używać ich w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą nie być obsługiwane lub mogą mieć ograniczone możliwości.
Aby uzyskać więcej informacji, zapoznaj się z dodatkowymi warunkami użytkowania dla wersji zapoznawczych platformy Microsoft Azure.
Funkcja interfejsu API wstępnego wywołania umożliwia deweloperom programowe weryfikowanie gotowości klienta do dołączenia do wywołania usług Azure Communication Services. Dostęp do funkcji wstępnego wywołania można uzyskać tylko przy użyciu zestawu SDK wywołującego. Funkcja diagnostyki przed wywołaniami zapewnia wiele diagnostyki, w tym urządzenia, połączenia i jakości połączeń. Funkcja diagnotyczna wywołania wstępnego jest dostępna tylko dla sieci Web (JavaScript). Planujemy włączyć te możliwości na różnych platformach w przyszłości. Przekaż nam opinię na temat platform, które chcesz zobaczyć włączoną diagnostykę przed wywołaniami.
Wymagania wstępne
Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
zaleca się Node.js aktywnych wersji długoterminowych pomocy technicznej (LTS).
Aktywny zasób usług komunikacyjnych. Utwórz zasób usług komunikacyjnych.
Token dostępu użytkownika w celu utworzenia wystąpienia klienta wywołania. Dowiedz się, jak tworzyć tokeny dostępu użytkowników i zarządzać nimi. Możesz również użyć interfejsu wiersza polecenia platformy Azure i uruchomić następne polecenie za pomocą parametry połączenia, aby utworzyć użytkownika i token dostępu. Pamiętaj, aby skopiować parametry połączenia z zasobu za pośrednictwem witryny Azure Portal.
az communication identity token issue --scope voip --connection-string "yourConnectionString"
Aby uzyskać więcej informacji, zobacz Tworzenie tokenów dostępu za pomocą interfejsu wiersza polecenia platformy Azure i zarządzanie nimi.
Uzyskiwanie dostępu do diagnostyki przed wywołaniami
Ważne
Diagnostyka przed wywołaniami jest dostępna od wersji 1.9.1-beta.1 zestawu Call SDK. Pamiętaj, aby użyć tej wersji lub nowszej podczas wykonywania tych instrukcji.
Aby uzyskać dostęp do diagnostyki przed wywołaniami, należy zainicjować callClient
token dostępu usług Azure Communication Services i aprowizować token dostępu usług Azure Communication Services. W tym miejscu możesz uzyskać dostęp do PreCallDiagnostics
funkcji i startTest
metody .
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);
Po zakończeniu działania deweloperzy mogą uzyskać dostęp do obiektu wynikowego.
Wyniki diagnostyki
Diagnostyka przed wywołaniem zwraca pełną diagnostykę urządzenia, w tym szczegółowe informacje, takie jak uprawnienia urządzenia, dostępność i zgodność, statystyki jakości wywołań i diagnostyka wywołań. Wyniki są zwracane jako PreCallDiagnosticsResult
obiekt.
export declare type PreCallDiagnosticsResult = {
deviceAccess: Promise<DeviceAccess>;
deviceEnumeration: Promise<DeviceEnumeration>;
inCallDiagnostics: Promise<InCallDiagnostics>;
browserSupport?: Promise<DeviceCompatibility>;
id: string;
callMediaStatistics?: Promise<MediaStatsCallFeature>;
};
Dostęp do poszczególnych obiektów wyników można uzyskać przy użyciu preCallDiagnosticsResult
typu . Wyniki poszczególnych testów są zwracane w miarę ich ukończenia, gdy wiele wyników testów jest dostępnych natychmiast. Jeśli używasz inCallDiagnostics
testu, wyniki mogą potrwać do 1 minuty, ponieważ test weryfikuje jakość wideo i dźwięku.
Obsługa przeglądarek
Sprawdzanie zgodności przeglądarki. Browser
Sprawdza zgodność i OS
zwraca Supported
wartość lubNotSupported
.
const browserSupport = await preCallDiagnosticsResult.browserSupport;
if(browserSupport) {
console.log(browserSupport.browser)
console.log(browserSupport.os)
}
Jeśli test zakończy się niepowodzeniem, a przeglądarka używana przez użytkownika to NotSupported
, najprostszym sposobem rozwiązania jest prośba użytkownika o przełączenie się do obsługiwanej przeglądarki. Zapoznaj się z obsługiwanymi przeglądarkami w temacie Wywoływanie zestawu SDK — omówienie > zestawu JavaScript Calling SDK obsługiwane przez system operacyjny i przeglądarkę.
Uwaga
Znany problem: browser support
test zwracany Unknown
w przypadkach, w których powinien zwracać poprawną wartość.
Dostęp do urządzenia
Sprawdzanie uprawnień określa, czy urządzenia wideo i audio są dostępne z perspektywy uprawnień. Zapewnia boolean
wartość dla audio
urządzeń i video
.
const deviceAccess = await preCallDiagnosticsResult.deviceAccess;
if(deviceAccess) {
console.log(deviceAccess.audio)
console.log(deviceAccess.video)
}
Jeśli test zakończy się niepowodzeniem, a uprawnienia są fałszywe dla audio i wideo, użytkownik nie powinien kontynuować dołączania do połączenia. Zamiast tego monituj użytkownika o włączenie uprawnień. Najlepszym sposobem, aby to zrobić, jest dostarczenie konkretnej instrukcji dotyczącej uzyskiwania dostępu do uprawnień na podstawie systemu operacyjnego, wersji i przeglądarki, z której korzystają. Aby uzyskać więcej informacji na temat uprawnień, zobacz Listę kontrolną zaawansowanych środowisk wywoływania w przeglądarkach internetowych.
Wyliczenie urządzenia
Dostępność urządzenia. Sprawdza, czy w systemie wykryto mikrofon, kamerę i urządzenia głośnikowe oraz czy są gotowe do użycia. Available
Zwraca wartość lubNotAvailable
.
const deviceEnumeration = await preCallDiagnosticsResult.deviceEnumeration;
if(deviceEnumeration) {
console.log(deviceEnumeration.microphone)
console.log(deviceEnumeration.camera)
console.log(deviceEnumeration.speaker)
}
Jeśli urządzenia nie są dostępne, użytkownik nie powinien kontynuować dołączania do połączenia. Zamiast tego monituj użytkownika o sprawdzenie połączeń urządzeń, aby upewnić się, że wszystkie zestawy nagłowne, kamery lub głośniki są prawidłowo podłączone. Aby uzyskać więcej informacji na temat zarządzania urządzeniami, zobacz Zarządzanie wideo podczas połączeń.
Diagnostyka InCall
Wykonuje szybkie wywołanie, aby zaewidencjonować metryki wywołania dla audio i wideo i dostarcza wyniki z powrotem. Obejmuje łączność (connected
, wartość logiczną), jakość przepustowości (bandWidth
, 'Bad' | 'Average' | 'Good'
) oraz diagnostykę połączeń audio i wideo (diagnostics
). Podane kategorie diagnostyczne obejmują jitter
, packetLoss
i rtt
i wyniki są generowane przy użyciu prostej klasy jakości ('Bad' | 'Average' | 'Good'
).
Diagnostyka InCall używa statystyk jakości multimediów do obliczania wyników jakości i diagnozowania problemów. Podczas diagnostyki przed wywołaniami pełny zestaw statystyk jakości multimediów jest dostępny do użycia. Te statystyki obejmują nieprzetworzone wartości w metrykach wideo i audio, których można używać programowo.
Diagnostyka InCall zapewnia wygodną warstwę na podstawie statystyk jakości multimediów, aby korzystać z wyników bez konieczności przetwarzania wszystkich nieprzetworzonych danych. Aby uzyskać więcej informacji, w tym instrukcje dostępu, zobacz Statystyki jakości multimediów dotyczące trwającego połączenia.
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)
}
W tym kroku istnieje wiele możliwych punktów awarii. Wartości udostępniane przez interfejs API są oparte na wartościach progowych wymaganych przez usługę. Nieprzetworzone progi można znaleźć w statystykach jakości multimediów.
- Jeśli połączenie nie powiedzie się, monituj użytkowników o ponowne sprawdzanie łączności sieciowej. Błędy połączeń mogą być również przypisywane do warunków sieciowych, takich jak DNS, serwery proxy lub zapory. Aby uzyskać więcej informacji na temat zalecanego ustawienia sieci, zobacz Zalecenia dotyczące sieci.
- Jeśli przepustowość to
Bad
, monituj użytkowników o wypróbowanie innej sieci lub sprawdzenie dostępności przepustowości w bieżącej sieci. Upewnij się, że nie są wykonywane żadne inne działania związane z wysoką przepustowością.
Cennik
Gdy test diagnostyczny przed wywołaniem jest uruchamiany w tle, używa wywołań minut do uruchomienia diagnostyki. Test trwa około 30 sekund, używając maksymalnie 30 sekund czasu wywołania, który jest naliczany według standardowej stawki 0,004 USD na uczestnika na minutę. W przypadku diagnostyki przed wywołaniami opłata jest naliczana za 1 uczestnika x 30 sekund = $0.002.