Dela via


Utvecklarintegrering med multimedieomdirigering för WebRTC-baserade samtalsappar i en fjärrsession

Multimedieomdirigering omdirigerar videouppspelning och anrop i en fjärrsession från Azure Virtual Desktop, en Windows 365 Molnbaserad dator eller Microsoft Dev Box till din lokala enhet för snabbare bearbetning och rendering.

Omdirigering av samtal optimerar ljudsamtal för WebRTC-baserade samtalsappar, vilket minskar svarstiden och förbättrar samtalskvaliteten. Anslutningen sker mellan den lokala enheten och telefoniappservern, där WebRTC-anrop avlastas från en fjärrsession till en lokal enhet. När anslutningen har upprättats blir samtalskvaliteten beroende av webbsidan eller appleverantörerna, precis som med ett icke-omdirigerat anrop.

Omdirigering av samtal kan fungera med de flesta WebRTC-baserade samtalsappar utan ändringar. Det kan dock finnas scenarier som inte stöds eller så kanske du vill tillhandahålla en annan upplevelse i en fjärrsession.

Den här artikeln innehåller information om API-gränssnitt och instansmetoder som stöds och visar JavaScript-kodfragment som du kan använda med mediaDevices egenskapen för navigatörsgränssnittet.

Navigatörsgränssnittet är en del av Media Capture- och Streams-API:et för att integrera din webbplats med omdirigering av samtal. Tillsammans med WebRTC-API:et ger dessa API:er stöd för direktuppspelning av ljud- och videodata med WebRTC-baserade samtalsappar. Multimedieomdirigering ersätter implementeringen av mediaDevices objektet i API:erna för att identifiera omdirigering av samtal, hantera frånkopplings- och återanslutningshändelser och samla in diagnostikinformation.

Tips

När du vill testa integreringen med multimedieomdirigering kan du aktivera omdirigering av samtal för att vara tillgänglig för alla webbplatser. Mer information finns i Aktivera omdirigering av samtal för alla platser för testning.

API-gränssnitt och instansmetoder som stöds

Omdirigering av samtal är utformat för att sömlöst ersätta Standard WebRTC-användning med en implementering som omdirigerar anrop från en fjärrsession till den lokala enheten.

Här är en lista över gränssnitt och instansmetoder som stöds som används av omdirigering av samtal från Media Capture and Streams API och WebRTC API:

Kända begränsningar

Omdirigering av samtal har följande API-begränsningar:

  • För närvarande stöds endast ett begränsat antal WebAudio noder.

  • setSinkId på ett HTMLAudioElement verk för WebRTC-spår srcObject , men all lokal uppspelning, till exempel en ringsignal, spelas alltid upp på standardljudutdata från fjärrsessionen.

  • Eftersom vissa API:er returneras synkront under normala förhållanden, men måste vara proxyservrar när de används med omdirigering av samtal, är det möjligt att tillståndet för ett objekt inte är tillgängligt omedelbart.

Identifiera omdirigering av samtal

Om du vill identifiera om anropsomdirigering är aktiv kan du kontrollera isCallRedirectionEnabled objektets MediaDevices egenskap. Om den här egenskapen är trueär omdirigering av samtal aktiv. Om den här egenskapen är undefined eller falseär samtalsomdirigering inte aktiv.

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

Identifiera frånkoppling från en fjärrsession

När en användare kopplar från och återansluter till en fjärrsession vid användning av samtalsomdirigering på en webbsida, är den lokala WebRTC-instans som stödde objekten inte längre tillgänglig. Om en användare uppdaterar sidan kan de vanligtvis göra anrop igen.

Webbsidan kan identifiera och hantera dessa frånkopplings- och återanslutningshändelser genom att riva ned och återskapa alla WebRTC-objekt, ljud- eller videoelement och MediaStream eller MediaStreamTrack gränssnitt. Den här metoden eliminerar behovet av att uppdatera webbsidan.

Om du vill få ett meddelande om dessa händelser registrerar rdpClientConnectionStateChanged du händelsen på MediaDevices -objektet, som du ser i följande exempel. Den här händelsen innehåller det nya tillståndet, som kan vara antingen connected eller disconnected.

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

Diagnostik för omdirigering av samtal

I följande exempel visas de egenskaper som exponeras för MediaDevices objektet. De tillhandahåller specifik diagnostikinformation om de versioner av samtalsomdirigering som används och sessionsidentifierare. Den här informationen är användbar när du rapporterar problem till Microsoft och vi rekommenderar att du samlar in den som en del av dina egna telemetri- eller diagnostikdata.

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

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

Här är vad varje egenskap representerar:

  • mmrClientVersion: versionen av filen MsMmrDVCPlugin.dll på den lokala datorn, som ingår i Windows App och fjärrskrivbordsappen.

  • mmrHostVersion: versionen av filen MsMMRHost.exe som är installerad på sessionsvärden, Cloud PC eller dev box.

  • mmrExtensionVersion: versionen av Microsoft Multimedia Redirection-tillägget som körs i webbläsaren.

  • activityId: en unik identifierare som Microsoft använder för att associera telemetri till en specifik session och mappar till den aktuella multimedieomdirigeringen på webbsidan omdirigeras.

  • connectionId: en unik identifierare som Microsoft använder för att associera telemetri till en specifik session och relaterar till den angivna anslutningen mellan den lokala enheten och fjärrsessionen.

All den här informationen är tillgänglig för slutanvändaren i information om webbläsartillägget, men det här exemplet ger ett programmatiskt sätt att samla in den.

Omdirigeringsloggar för samtal

Som standard loggas inte multimedieomdirigering till konsolen. Webbläsartillägget har en knapp för att användarna ska kunna samla in loggar. I följande exempel visas hur du kan aktivera konsolloggar programmatiskt. Du kanske vill aktivera konsolloggar programmatiskt om du arbetar med integrering eller samlar in ett problem som kräver längre loggar än vad alternativet i gränssnittet för webbläsartillägg ger.

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

Du kanske också vill samla in loggar för multimedieomdirigering programmatiskt för att underlätta undersökningar. Alla loggar för webbsidan är också tillgängliga genom att registrera för mmrExtensionLog händelsen i dokumentet.

Händelseobjektet har två egenskaper under detalj:

  • Nivå: anger vilken typ av spårning posten är och gör att du kan filtrera efter specifika händelser. Nivå är ett av följande värden:

    • information
    • mångordig
    • varning
    • fel
  • Meddelande: det textbaserade spårningsmeddelandet.

I följande exempel visas hur du registrerar dig för mmrExtensionLog händelsen:

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

Skicka in din webbplats för granskning eller be om hjälp

Om du representerar en ISV och du vill att din webbplats ska läggas till i listan över webbplatser för omdirigering av samtal, eller om du behöver hjälp med att integrera din webbplats med samtalsomdirigering, fyller du i och skickar det här formuläret.

Läs mer om multimedieomdirigering för videouppspelning och samtal i en fjärrsession.