Udostępnij przez


Integracja deweloperów z przekierowaniem multimedialnym dla aplikacji wywołujących opartych na protokole WebRTC w sesji zdalnej

Przekierowanie multimediów przekierowuje odtwarzanie wideo i wywołania w sesji zdalnej z usługi Azure Virtual Desktop, Komputer w chmurze Windows 365 lub Microsoft Dev Box do urządzenia lokalnego w celu szybszego przetwarzania i renderowania.

Przekierowanie wywołań optymalizuje wywołania audio dla aplikacji wywołujących opartych na protokole WebRTC, zmniejszając opóźnienia i poprawiając jakość połączeń. Połączenie odbywa się między urządzeniem lokalnym a serwerem aplikacji telefonii, gdzie wywołania WebRTC są odciążane z sesji zdalnej do urządzenia lokalnego. Po nawiązaniu połączenia jakość wywołań będzie zależeć od strony internetowej lub dostawców aplikacji, tak samo jak w przypadku wywołania bez przekierowania.

Przekierowanie wywołań może działać z większością aplikacji wywołujących opartych na protokole WebRTC bez modyfikacji. Jednak mogą istnieć nieobsługiwanych scenariuszy lub może być konieczne zapewnienie innego środowiska w sesji zdalnej.

Ten artykuł zawiera informacje o obsługiwanych interfejsach API i metodach wystąpień oraz zawiera fragmenty kodu Języka JavaScript, których można użyć z właściwościąmediaDevices interfejsu Nawigator.

Interfejs nawigatora jest częścią interfejsu API przechwytywania multimediów i strumieni w celu zintegrowania witryny internetowej z przekierowaniem wywołań. Wraz z interfejsem API WebRTC te interfejsy API zapewniają obsługę przesyłania strumieniowego danych audio i wideo za pomocą aplikacji wywołujących opartych na protokole WebRTC. Przekierowanie multimedialne zastępuje implementację mediaDevices obiektu w interfejsach API w celu wykrywania przekierowania wywołań, obsługi zdarzeń rozłączenia i ponownego łączenia oraz zbierania informacji diagnostycznych.

Porada

Jeśli chcesz przetestować integrację z przekierowaniem multimedialnym, możesz włączyć funkcję przekierowania połączeń, aby była dostępna dla wszystkich witryn internetowych. Aby uzyskać więcej informacji, zobacz Włączanie przekierowania wywołań dla wszystkich witryn do testowania.

Obsługiwane interfejsy API i metody wystąpień

Przekierowanie wywołań zostało zaprojektowane tak, aby bezproblemowo zastąpić standardowe użycie usługi WebRTC implementacją, która przekierowuje wywołania z sesji zdalnej na urządzenie lokalne.

Oto lista obsługiwanych interfejsów i metod wystąpień używanych przez przekierowanie wywołań z interfejsu API przechwytywania multimediów i strumieni orazinterfejsu API WebRTC:

Znane ograniczenia

Przekierowanie wywołań ma następujące ograniczenia interfejsu API:

  • Obecnie obsługiwana jest tylko ograniczona WebAudio liczba węzłów.

  • setSinkId w programie HTMLAudioElement działa dla ścieżek WebRTC srcObject , jednak wszelkie lokalne odtwarzanie, takie jak dzwonek, zawsze odtwarza domyślne dane wyjściowe audio sesji zdalnej.

  • Ponieważ niektóre interfejsy API zwracają się synchronicznie w normalnych warunkach, ale muszą być serwerami proxy w przypadku użycia z przekierowaniem wywołań, możliwe, że stan obiektu nie jest natychmiast dostępny.

Wykrywanie przekierowania wywołań

Aby wykryć, czy przekierowanie wywołania jest aktywne, można sprawdzić isCallRedirectionEnabled właściwość obiektu MediaDevices . Jeśli ta właściwość to true, przekierowanie wywołania jest aktywne. Jeśli ta właściwość to undefined lub false, przekierowanie wywołań nie jest aktywne.

window.navigator.mediaDevices['isCallRedirectionEnabled'] = true;

Wykrywanie rozłączenia z sesji zdalnej

Gdy użytkownik rozłączy się i ponownie nawiąże połączenie z sesją zdalną podczas korzystania z przekierowania wywołań na stronie internetowej, lokalne wystąpienie WebRTC, które obsługiwało obiekty, nie jest już dostępne. Zazwyczaj jeśli użytkownik odświeży stronę, będzie mógł ponownie wykonywać wywołania.

Strona internetowa może wykrywać i obsługiwać te zdarzenia rozłączania i ponownego łączenia, usuwając i odtwarzając wszystkie obiekty WebRTC, elementy audio lub wideo oraz MediaStream interfejsy.MediaStreamTrack Takie podejście eliminuje konieczność odświeżania strony internetowej.

Aby otrzymywać powiadomienia o tych zdarzeniach, zarejestruj rdpClientConnectionStateChanged zdarzenie w obiekcie MediaDevices , jak pokazano w poniższym przykładzie. To zdarzenie zawiera nowy stan, który może mieć wartość connected lub disconnected.

navigator.mediaDevices.addEventListener('rdpClientConnectionStateChanged', () => 
    console.log("state change: " + event.detail.state);
);

Diagnostyka przekierowania wywołań

W poniższym przykładzie wymieniono właściwości uwidocznione w obiekcie MediaDevices . Udostępniają określone informacje diagnostyczne dotyczące używanych wersji przekierowywania wywołań i identyfikatorów sesji. Te informacje są przydatne podczas zgłaszania problemów firmie Microsoft i zalecamy zebranie ich w ramach własnych danych telemetrycznych lub diagnostycznych.

window.navigator.mediaDevices['mmrClientVersion'];
window.navigator.mediaDevices['mmrHostVersion'];
window.navigator.mediaDevices['mmrExtensionVersion'];

window.navigator.mediaDevices['activityId'];
window.navigator.mediaDevices['connectionId'];

Oto, co reprezentuje każda właściwość:

  • mmrClientVersion: wersja pliku MsMmrDVCPlugin.dll na komputerze lokalnym, która jest częścią Windows App i aplikacji pulpitu zdalnego.

  • mmrHostVersion: wersja pliku MsMMRHost.exe zainstalowanego na hoście sesji, komputerze w chmurze lub polu deweloperskim.

  • mmrExtensionVersion: wersja rozszerzenia Przekierowanie multimediów firmy Microsoft uruchomionego w przeglądarce.

  • activityId: unikatowy identyfikator używany przez firmę Microsoft do kojarzenia danych telemetrycznych z określoną sesją i mapowania do bieżącego przekierowania multimedialnego strony internetowej jest przekierowujący.

  • connectionId: unikatowy identyfikator używany przez firmę Microsoft do kojarzenia danych telemetrycznych z określoną sesją i odnosi się do danego połączenia między urządzeniem lokalnym a sesją zdalną.

Wszystkie te informacje są dostępne dla użytkownika końcowego w szczegółach rozszerzenia przeglądarki, ale ten przykład zapewnia programowy sposób ich zbierania.

Dzienniki przekierowania wywołań

Domyślnie przekierowanie multimediów nie powoduje zalogowania się do konsoli programu . Rozszerzenie przeglądarki ma przycisk dla użytkowników do zbierania dzienników. W poniższym przykładzie pokazano, jak można programowo włączyć dzienniki konsoli. Możesz włączyć dzienniki konsoli programowo, jeśli pracujesz nad integracją lub przechwytujesz problem, który wymaga dłuższych dzienników niż opcja dostępna w interfejsie rozszerzenia przeglądarki.

window.navigator.mediaDevices['mmrConsoleLoggingEnabled'] = true;

Możesz również programowo zbierać dzienniki przekierowania multimedialnego, aby ułatwić badanie. Wszystkie dzienniki dla strony internetowej są również dostępne, rejestrując się na mmrExtensionLog potrzeby zdarzenia w dokumencie.

Obiekt zdarzenia ma dwie właściwości poniżej szczegółów:

  • Poziom: określa rodzaj śledzenia wpisu i umożliwia filtrowanie pod kątem określonych zdarzeń. Poziom jest jedną z następujących wartości:

    • Informacji
    • gadatliwy
    • ostrzeżenie
    • błąd
  • Wiadomość: wiadomość śledzenia oparta na tekście.

W poniższym przykładzie pokazano, jak zarejestrować się na potrzeby mmrExtensionLog zdarzenia:

document.addEventListener('mmrExtensionLog', () =>
    console.log("MMR event, level:" + event.detail.level + " : " + event.detail.message);
);

Prześlij swoją witrynę internetową do przeglądu lub poproś o pomoc

Jeśli reprezentujesz niezależnego dostawcy oprogramowania i chcesz, aby twoja witryna internetowa została dodana do listy Witryn internetowych na potrzeby przekierowania połączeń lub jeśli potrzebujesz pomocy w integracji witryny internetowej z przekierowaniem połączeń, wypełnij i prześlij ten formularz.

Dowiedz się więcej na temat przekierowania multimediów do odtwarzania wideo i wywołań w sesji zdalnej.