Intégration des développeurs à la redirection multimédia pour les applications d’appel WebRTC dans une session à distance
La redirection multimédia redirige la lecture et les appels vidéo dans une session distante à partir d’Azure Virtual Desktop, d’un PC cloud Windows 365 ou de Microsoft Dev Box vers votre appareil local pour accélérer le traitement et le rendu.
La redirection d’appels optimise les appels audio pour les applications d’appel basées sur WebRTC, ce qui réduit la latence et améliore la qualité des appels. La connexion se produit entre l’appareil local et le serveur d’applications de téléphonie, où les appels WebRTC sont déchargés d’une session distante vers un appareil local. Une fois la connexion établie, la qualité de l’appel devient dépendante de la page web ou des fournisseurs d’applications, comme elle le ferait avec un appel non redirigé.
La redirection d’appel peut fonctionner avec la plupart des applications d’appel basées sur WebRTC sans modification. Toutefois, il peut y avoir des scénarios non pris en charge ou vous souhaiterez peut-être fournir une expérience différente dans une session à distance.
Cet article fournit des informations sur les interfaces API prises en charge et les méthodes d’instance, et affiche des extraits de code JavaScript que vous pouvez utiliser avec la mediaDevices
propriété de l’interface du navigateur.
L’interface du navigateur fait partie de l’API Capture multimédia et Flux pour intégrer votre site web à la redirection des appels. Avec l’API WebRTC, ces API prennent en charge la diffusion en continu de données audio et vidéo avec des applications d’appel WebRTC. La redirection multimédia remplace l’implémentation de l’objet mediaDevices
dans les API pour détecter la redirection des appels, gérer les événements de déconnexion et de reconnexion, et collecter des informations de diagnostic.
Conseil
Lorsque vous souhaitez tester votre intégration à la redirection multimédia, vous pouvez activer la redirection des appels pour être disponible pour tous les sites web. Pour plus d’informations, consultez Activer la redirection des appels pour tous les sites pour tester.
Interfaces API prises en charge et méthodes d’instance
La redirection d’appels est conçue pour remplacer en toute transparence l’utilisation standard de WebRTC par une implémentation qui redirige les appels d’une session distante vers l’appareil local.
Voici une liste des interfaces et méthodes d’instance prises en charge utilisées par la redirection d’appels à partir de l’API Capture multimédia et Flux et l’API WebRTC :
AnalyserNode
AudioContext
HTMLAudioElement
MediaDevices
MediaStream
MediaStreamAudioDestinationNode
MediaStreamAudioSourceNode
MediaStreamTrack
RTCDataChannel
RTCPeerConnection
RTCRtpReceiver
RTCRtpSender
RTCRtpTransceiver
Limitations connues
La redirection d’appel présente les limitations d’API suivantes :
Seul un nombre limité de
WebAudio
nœuds sont actuellement pris en charge.setSinkId
sur unHTMLAudioElement
fonctionne pour WebRTCsrcObject
pistes, mais toute lecture locale, telle qu’une sonnerie, est toujours lue sur la sortie audio par défaut de la session distante.Comme certaines API retournent de façon synchrone dans des conditions normales, mais doivent être des proxys lorsqu’elles sont utilisées avec la redirection d’appels, il est possible que l’état d’un objet ne soit pas disponible immédiatement.
Détecter la redirection des appels
Pour détecter si la redirection d’appel est active, vous pouvez vérifier la propriété isCallRedirectionEnabled
de l’objet MediaDevices
. Si cette propriété est true
, la redirection des appels est active. Si cette propriété est undefined
ou false
, la redirection des appels n’est pas active.
window.navigator.mediaDevices['isCallRedirectionEnabled'] = true;
Détecter la déconnexion d’une session distante
Lorsqu’un utilisateur se déconnecte et se reconnecte à une session distante lors de l’utilisation de la redirection d’appel sur une page web, l’instance WebRTC locale qui a pris en charge les objets n’est plus disponible. En règle générale, si un utilisateur actualise la page, il est en mesure d’effectuer des appels à nouveau.
La page web peut détecter et gérer ces événements de déconnexion et de reconnexion en dépréciant et en recréant tous les objets WebRTC, éléments audio ou vidéo, et en MediaStream
ou MediaStreamTrack
interfaces. Cette approche élimine la nécessité d’actualiser la page web.
Pour être averti de ces événements, inscrivez l’événement rdpClientConnectionStateChanged
sur l’objet MediaDevices
, comme indiqué dans l’exemple suivant. Cet événement contient le nouvel état, qui peut être connected
ou disconnected
.
navigator.mediaDevices.addEventListener('rdpClientConnectionStateChanged', () =>
console.log("state change: " + event.detail.state);
);
Diagnostics de redirection des appels
L’exemple suivant répertorie les propriétés exposées sur l’objet MediaDevices
. Ils fournissent des informations de diagnostic spécifiques sur les versions de redirection d’appels utilisées et les identificateurs de session. Ces informations sont utiles pour signaler des problèmes à Microsoft et nous vous recommandons de les collecter dans le cadre de vos propres données de télémétrie ou de diagnostic.
window.navigator.mediaDevices['mmrClientVersion'];
window.navigator.mediaDevices['mmrHostVersion'];
window.navigator.mediaDevices['mmrExtensionVersion'];
window.navigator.mediaDevices['activityId'];
window.navigator.mediaDevices['connectionId'];
Voici ce que chaque propriété représente :
mmrClientVersion : version du fichier
MsMmrDVCPlugin.dll
sur l’ordinateur local, qui fait partie de l’application Windows et de l’application Bureau à distance.mmrHostVersion : version du fichier
MsMMRHost.exe
installée sur l’hôte de session, le PC cloud ou la zone de développement.mmrExtensionVersion : version de l’extension de redirection multimédia Microsoft exécutée dans le navigateur.
activityId : identificateur unique que Microsoft utilise pour associer la télémétrie à une session spécifique et mappe à la redirection multimédia de page web actuelle.
connectionId : identificateur unique utilisé par Microsoft pour associer des données de télémétrie à une session spécifique et se rapporte à la connexion donnée entre l’appareil local et la session distante.
Toutes ces informations sont disponibles pour l’utilisateur final dans les détails de l’extension de navigateur, mais cet exemple fournit un moyen programmatique de le collecter.
Journaux de redirection des appels
Par défaut, la redirection multimédia ne se connecte pas à la console. L’extension de navigateur dispose d’un bouton permettant aux utilisateurs de collecter les journaux. L’exemple suivant montre comment activer les journaux de console par programmation. Vous pouvez activer les journaux de console par programmation si vous travaillez sur l’intégration ou capturez un problème nécessitant plus de journaux d’activité en cours d’exécution que l’option de l’interface d’extension du navigateur.
window.navigator.mediaDevices['mmrConsoleLoggingEnabled'] = true;
Vous pouvez également collecter par programme les journaux de redirection multimédia pour faciliter les enquêtes. Tous les journaux d’activité de la page web sont également disponibles en vous inscrivant à l’événement mmrExtensionLog
sur le document.
L’objet événement a deux propriétés sous détail :
Niveau : indique le type de trace de l’entrée et vous permet de filtrer les événements spécifiques. Le niveau est l’une des valeurs suivantes :
- info
- commentaires
- avertissement
- error
Message : message de suivi textuel.
L’exemple suivant montre comment s’inscrire à l’événement mmrExtensionLog
:
document.addEventListener('mmrExtensionLog', () =>
console.log("MMR event, level:" + event.detail.level + " : " + event.detail.message);
);
Contenu connexe
En savoir plus sur redirection multimédia pour la lecture et les appels vidéo dans une session à distance.