원격 세션에서 WebRTC 기반 호출 앱에 대한 멀티미디어 리디렉션과 개발자 통합
멀티미디어 리디렉션은 빠른 처리 및 렌더링을 위해 Azure Virtual Desktop, Windows 365 클라우드 PC 또는 Microsoft Dev Box의 원격 세션에서 비디오 재생 및 호출을 로컬 디바이스로 리디렉션합니다.
통화 리디렉션은 WebRTC 기반 통화 앱에 대한 오디오 호출을 최적화하여 대기 시간을 줄이고 통화 품질을 향상합니다. 연결은 웹RTC 호출이 원격 세션에서 로컬 디바이스로 오프로드되는 로컬 디바이스와 전화 통신 앱 서버 간에 발생합니다. 연결이 설정되면 리디렉션되지 않은 호출과 마찬가지로 호출 품질이 웹 페이지 또는 앱 공급자에 따라 달라집니다.
호출 리디렉션은 수정 없이 대부분의 WebRTC 기반 호출 앱에서 작동할 수 있습니다. 그러나 지원되지 않는 시나리오가 있거나 원격 세션에서 다른 환경을 제공할 수 있습니다.
이 문서에서는 지원되는 API 인터페이스 및 인스턴스 메서드에 대한 정보를 제공하고 탐색기 인터페이스의 속성과 함께 mediaDevices
사용할 수 있는 JavaScript 코드 조각을 보여 줍니다.
탐색기 인터페이스는 웹 사이트를 호출 리디렉션과 통합하는 미디어 캡처 및 스트림 API의 일부입니다. WebRTC API와 함께 이러한 API는 WebRTC 기반 통화 앱을 사용하여 오디오 및 비디오 데이터 스트리밍을 지원합니다. 멀티미디어 리디렉션은 API에서 개체의 mediaDevices
구현을 대체하여 호출 리디렉션을 검색하고, 연결 끊기 및 다시 연결 이벤트를 처리하고, 진단 정보를 수집합니다.
팁
멀티미디어 리디렉션과의 통합을 테스트하려는 경우 모든 웹 사이트에서 통화 리디렉션을 사용할 수 있도록 설정할 수 있습니다. 자세한 내용은 테스트를 위해 모든 사이트에 대한 통화 리디렉션 사용을 참조하세요.
지원되는 API 인터페이스 및 인스턴스 메서드
호출 리디렉션은 표준 WebRTC 사용을 원격 세션에서 로컬 디바이스로 호출을 리디렉션하는 구현으로 원활하게 대체하도록 설계되었습니다.
다음은 미디어 캡처 및 스트림 API 및 WebRTC API에서 호출 리디렉션에 사용되는 지원되는 인터페이스 및 인스턴스 메서드 목록입니다.
AnalyserNode
AudioContext
HTMLAudioElement
MediaDevices
MediaStream
MediaStreamAudioDestinationNode
MediaStreamAudioSourceNode
MediaStreamTrack
RTCDataChannel
RTCPeerConnection
RTCRtpReceiver
RTCRtpSender
RTCRtpTransceiver
알려진 제한 사항
호출 리디렉션에는 다음과 같은 API 제한 사항이 있습니다.
현재는 제한된 수의
WebAudio
노드만 지원됩니다.setSinkId
HTMLAudioElement
WebRTCsrcObject
트랙에 대한 작업에서 벨소리와 같은 모든 로컬 재생은 항상 원격 세션의 기본 오디오 출력에서 재생됩니다.일부 API는 정상적인 조건에서 동기적으로 반환되지만 호출 리디렉션과 함께 사용할 때 프록시여야 하므로 개체의 상태를 즉시 사용할 수 없을 수 있습니다.
통화 리디렉션 검색
호출 리디렉션이 활성 상태인지 여부를 감지하려면 개체의 isCallRedirectionEnabled
MediaDevices
속성을 확인할 수 있습니다. 이 속성이 true
면 호출 리디렉션이 활성화됩니다. 이 속성이 undefined
거나 false
호출 리디렉션이 활성화되지 않은 경우
window.navigator.mediaDevices['isCallRedirectionEnabled'] = true;
원격 세션에서 연결 끊김 검색
웹 페이지에서 호출 리디렉션을 사용할 때 사용자가 원격 세션의 연결을 끊고 다시 연결하면 개체를 지원하는 로컬 WebRTC 인스턴스를 더 이상 사용할 수 없습니다. 일반적으로 사용자가 페이지를 새로 고치면 다시 전화를 걸 수 있습니다.
웹 페이지는 모든 WebRTC 개체, 오디오 또는 비디오 요소 및 인터페이스를 분해하고 다시 만들어 이러한 연결 끊기 및 다시 연결 이벤트를 감지하고 MediaStream
MediaStreamTrack
처리할 수 있습니다. 이 방법을 사용하면 웹 페이지를 새로 고칠 필요가 없습니다.
이러한 이벤트에 대한 알림을 받으려면 다음 예제와 같이 개체에 MediaDevices
이벤트를 등록 rdpClientConnectionStateChanged
합니다. 이 이벤트는 새 상태를 포함하며, 이 상태는 다음 중 하나 connected
일 disconnected
수 있습니다.
navigator.mediaDevices.addEventListener('rdpClientConnectionStateChanged', () =>
console.log("state change: " + event.detail.state);
);
통화 리디렉션 진단
다음 예제에서는 개체에 노출 된 속성을 나열 합니다 MediaDevices
. 사용 중인 호출 리디렉션 버전 및 세션 식별자에 대한 특정 진단 정보를 제공합니다. 이 정보는 Microsoft에 문제를 보고할 때 유용하며 사용자 고유의 원격 분석 또는 진단 데이터의 일부로 수집하는 것이 좋습니다.
window.navigator.mediaDevices['mmrClientVersion'];
window.navigator.mediaDevices['mmrHostVersion'];
window.navigator.mediaDevices['mmrExtensionVersion'];
window.navigator.mediaDevices['activityId'];
window.navigator.mediaDevices['connectionId'];
각 속성이 나타내는 항목은 다음과 같습니다.
mmrClientVersion: Windows 앱 및 원격 데스크톱 앱의 일부로 제공되는 로컬 컴퓨터의 파일
MsMmrDVCPlugin.dll
버전입니다.mmrHostVersion: 세션 호스트, 클라우드 PC 또는 개발 상자에 설치된 파일
MsMMRHost.exe
의 버전입니다.mmrExtensionVersion: 브라우저에서 실행되는 Microsoft 멀티미디어 리디렉션 확장의 버전입니다.
activityId: Microsoft에서 원격 분석을 특정 세션에 연결하고 현재 웹 페이지 멀티미디어 리디렉션에 매핑하는 데 사용하는 고유 식별자가 리디렉션됩니다.
connectionId: Microsoft에서 원격 분석을 특정 세션에 연결하는 데 사용하고 로컬 디바이스와 원격 세션 간의 지정된 연결과 관련된 고유 식별자입니다.
이 모든 정보는 브라우저 확장의 세부 정보에서 최종 사용자가 사용할 수 있지만 이 예제에서는 이를 수집하는 프로그래밍 방식의 방법을 제공합니다.
호출 리디렉션 로그
기본적으로 멀티미디어 리디렉션은 콘솔에 로그되지 않습니다. 브라우저 확장에는 사용자가 로그를 수집할 수 있는 단추가 있습니다. 다음 예제에서는 프로그래밍 방식으로 콘솔 로그를 사용하도록 설정하는 방법을 보여 줍니다. 통합 작업을 수행하거나 브라우저 확장 인터페이스에서 제공하는 옵션보다 더 오래 실행되는 로그가 필요한 문제를 캡처하는 경우 프로그래밍 방식으로 콘솔 로그를 사용하도록 설정할 수 있습니다.
window.navigator.mediaDevices['mmrConsoleLoggingEnabled'] = true;
멀티미디어 리디렉션 로그를 프로그래밍 방식으로 수집하여 조사에 도움을 줄 수도 있습니다. 웹 페이지의 모든 로그는 문서의 이벤트에 등록하여 mmrExtensionLog
사용할 수도 있습니다.
이벤트 개체에는 다음과 같은 두 가지 속성이 있습니다.
수준: 항목의 추적 종류를 표시하며 특정 이벤트를 필터링할 수 있습니다. 수준은 다음 값 중 하나입니다.
- info
- verbose
- 경고
- error
메시지: 텍스트 기반 추적 메시지입니다.
다음 예제에서는 이벤트에 등록 mmrExtensionLog
하는 방법을 보여줍니다.
document.addEventListener('mmrExtensionLog', () =>
console.log("MMR event, level:" + event.detail.level + " : " + event.detail.message);
);
관련 콘텐츠
원격 세션의 비디오 재생 및 통화에 대한 멀티미디어 리디렉션에 대해 자세히 알아봅니다.