0 vote
Hello,
Scenario:
I've got a VDI somewhere on-premise behind some remote desktop gateway and need to run Microsoft Teams on that one with working audio and video. Currently, this has a lot of lag (of course).
Solution idea:
Microsoft has created a "WebRTC redirection service" [1] so that the media is transfered faster but there are a lot of prerequites [2] [3] which seem not fully documented [4]. One of the problems identified was that MSTSC does not support the redirection, but only MSRDC and the store app do (there is a matrix on the MS site as well). However, the remote system is not using the feed URL system and I do not get a signed RPC files.
Using the store app, I got media redirection working. However, many other features are lacking (like supporting several screens).
Using MSRDC I got a connection having media redirection working, but without interaction (a modal window tells me that the rdp file is wrong, probably due to the missing signing - no interaction is working). The multi-window feature seems not accessible as well, but I could not verify yet.
Why I am here at Devolution with my feature request?
According to your blog post https://blog.devolutions.net/2022/03/msrdc-is-now-supported-in-remote-desktop-manager/ RDM is able to use MSRDC as a backend-system. I have tried this and this works like a charm. Faster login, great multi-screen support etc pp
However, the media redirection is not yet enabled if I am using RDM over MSRDC.
Are you able to go the last (long) mile for enabling the media redirection service within RDM (over MSRDC)?
[1] https://learn.microsoft.com/en-us/azure/virtual-desktop/whats-new-webrtc
[2] https://learn.microsoft.com/en-us/azure/virtual-desktop/teams-on-avd
[3] https://www.go-euc.com/microsoft-teams-optimization-in-a-virtual-desktop/
[4] https://techcommunity.microsoft.com/t5/azure-virtual-desktop/avd-media-not-connected/m-p/3247823
MfG (kind regards)
Heiko Studt
Hi,
While we've managed to integrate MSRDC for non-AVD RDP connections quite well, support for AVD connections is limited to the external mode, without injection of the Azure AD credentials. It looks like from your description that you may not be using Azure Virtual Desktop, can you confirm that you are trying to use MSRDC *without* Azure Virtual Desktop?
Regarding the .RDP file signature requirement: MSRDC enforces it for AVD connections, and we've had to bypass it in order to generate a local .RDP file from the RDM connection options before launching msrdc.exe. So maybe you are indeed using Azure Virtual Desktop, but trying to launch locally modified .RDP files? If so, you should try importing the .RDP files in RDM to launch them, and it'll benefit from the RDP API hooking we've added.
I am not too familiar with the WebRTC redirection feature, but if it's a matter of enabling it in MSRDC, what I need to figure out is the corresponding .RDP file option. How is it normally enabled in MSRDC? It looks from the documentation that all the configuration needs to be done inside the AVD host, so maybe there's no client-side option to set.
Best regards,
Marc-André Moreau
Hello Marc André,
thanks for your prompt response and help. I am still researching the redirection feature on a rather high level, so after your response, I tried to search for the setting you mentioned and instead I found a registry setting for MSRDC [1] to switch on an "insider" mode. This enables some browser extension which seemingly is using the same redirection service.
After I had added that mentioned registry setting on my client, the "AVD Optimization" was showing in the remote Teams Classic within RDM! :-) :-)
So I removed the registry string to recheck - and it still was showing "optimized". I did not restart my client yet, so there is some uncertainy. So, either I did my previous checks wrong, or this insider mode made the difference now, or some magic was happening.
Just as a note: within the "new teams" the audio device redirection seems not to be recognized (it still shows "remote audio"); However, I am not sure how to check whether at least the media is optimized.
Sorry, that I bothered you prematurely, thanks alot for your great work!
MfG (best regards)
Heiko Studt
[1] https://learn.microsoft.com/en-us/azure/virtual-desktop/users/client-features-windows#enable-insider-releases
PS: I am not quite sure whether this is an on-premise azure virtual desktop setup (it seemingly is called so by teams) or some older/different type. I personally do not need any azure ad SSO or anything, so I am happy. The rdp file for msrdc was only a test to configure the remote desktop gateway (which you cannot set within the msrdc GUI) and this test was before I found your great blog post.
I will test/confirm my current configuration and probably will write some text on how to setup. If you like, I will add it to this post.
Hello Heiko,
If your research leads you to an option we could enable on our side, please let me know. We did our company hackathon this week and I used it as an opportunity to create an MSI installer package for MsRdpEx, our module for extended .RDP file options in the Microsoft RDP clients (mstsc and msrdc). This is the same module we use in RDM in both the embedded mode and external modes, and having it shipped separately should facilitate faster experimentation with new options before they are integrated within RDM. One issue you may encounter with calling msrdc.exe directly without the API hooking is that it can force .RDP file signatures when it thinks it's doing an AVD connection.
Best regards,
Marc-André Moreau
I Made an account just to say thank you for the MSRDPEx. I can confirm I am using it to run locally hosted VDI instances with microsofts Media redirection for videos, calls in browsers and tems hardware passthrough working perfectly. Using this to hook into nativly installed msrdpw.exe gets past the certificate error for non Azure hosted VDI's that was introduced in any version after RemoteDesktop_1.2.4331.0. And also as you have stated above, this fixed the issue of the new RDP app not allowing the use of unsigned rdp(w) files. While i use your software personally on my laptop, im greatful for the gitproject so I dont have to install RDM 100 times while I hop around test enviroments and hardware.
You guys are awesome.
Hello Heiko,
If your research leads you to an option we could enable on our side, please let me know. We did our company hackathon this week and I used it as an opportunity to create an MSI installer package for MsRdpEx, our module for extended .RDP file options in the Microsoft RDP clients (mstsc and msrdc). This is the same module we use in RDM in both the embedded mode and external modes, and having it shipped separately should facilitate faster experimentation with new options before they are integrated within RDM. One issue you may encounter with calling msrdc.exe directly without the API hooking is that it can force .RDP file signatures when it thinks it's doing an AVD connection.
Best regards,
I'm glad you like MsRdpEx! I made the MSI installer such that it would be much easier to use it separately from RDM, and also allowing us to find and fix bugs faster instead of debugging the problems only when launching mstsc from RDM.
Marc-André Moreau
I am sorry that I did not answer before, but nowadays (i.e. after some patch-rounds by MS) the RDM works like a charm with the fast Teams redirection using a RDP-gateway and RDP-Host and I am very happy using two monitors of my three remotely.
Thanks again, MfG (best regards)
Heiko
I am sorry that I did not answer before, but nowadays (i.e. after some patch-rounds by MS) the RDM works like a charm with the fast Teams redirection using a RDP-gateway and RDP-Host and I am very happy using two monitors of my three remotely.
Thanks again, MfG (best regards)
Heiko
Good to hear it's working for you, i am playing with these settings as well but i seem not to be able to get it working. When i connect with the windows app from Ipad os i can use teams optimizations. However when i connect from a regular mstsc or msrdc client it did not work. I was hoping with installing the msi provided in this post it would work out of the box. tested it but unfortunatly it seems not to work. Teams keeps having the spinning wheel with the message optimizing for AVD.
I did a test with the AVD broker (installed the agent on the local rds server) and connected and this works out of the box.
Am i doing something wrong? do i miss some settings inside my RDP file? Also from RDM it seems like this is not working, i have good hopes it will get working with the correct settings but there is not much information about this around.
I am sorry that I did not answer before, but nowadays (i.e. after some patch-rounds by MS) the RDM works like a charm with the fast Teams redirection using a RDP-gateway and RDP-Host and I am very happy using two monitors of my three remotely.
Thanks again, MfG (best regards)
Heiko
Good to hear it's working for you, i am playing with these settings as well but i seem not to be able to get it working. When i connect with the windows app from Ipad os i can use teams optimizations. However when i connect from a regular mstsc or msrdc client it did not work. I was hoping with installing the msi provided in this post it would work out of the box. tested it but unfortunatly it seems not to work. Teams keeps having the spinning wheel with the message optimizing for AVD.
I did a test with the AVD broker (installed the agent on the local rds server) and connected and this works out of the box.
Am i doing something wrong? do i miss some settings inside my RDP file? Also from RDM it seems like this is not working, i have good hopes it will get working with the correct settings but there is not much information about this around.
Unfortunately Devolutions software or their wrapper (msi package) no longer works with teams media acceleration, the new teams uses Slimcore acceleration and it does not work :(
The issue has been reported on MsRdpEx, unfortunately it's not an easy thing to deploy to test. In order to see it work, I guess I would need to do a Teams call inside an AVD session?
https://github.com/Devolutions/MsRdpEx/issues/122
https://github.com/Devolutions/MsRdpEx/issues/138
Marc-André Moreau
The issue has been reported on MsRdpEx, unfortunately it's not an easy thing to deploy to test. In order to see it work, I guess I would need to do a Teams call inside an AVD session?
https://github.com/Devolutions/MsRdpEx/issues/122
https://github.com/Devolutions/MsRdpEx/issues/138
You can test it pretty easy. on an RDS host install the latest teams and install the webrtc service.
then when u connect with an end user and start teams u will see optimizing for AVD on top. Most of the time it wants to restart teams. When it is succesfull u get a small text in the left top corner stating "optimized" if u hover over this text it will show "Optimized for AVD" that means webrtc is active, or it does state "Optimized for AVD using Slimcore" when it does use the slimcore module. I found if i i disable slimcore on the tenant the clients start working over the webrtc protocol. Otherwise when slimcore is active on the tenant it does try slimcore and does not fall back to webrtc. It seems like the client does detect something for slimcore but is not able to set it up correctly. Otherwise on the AVD it will automatically fall back to webrtc if slimcore does not work, this is not the case using the msrdc client.
i managed to get webrtc working by disabling slimcore tenant wide for now. That's a good start but better would be if we could manage to get Slimcore to work as that will be the future and i am not shure how long Microsoft is going to support the webrtc.
In addition information on slimcore can be found here
https://learn.microsoft.com/en-us/microsoftteams/vdi-2
The issue has been reported on MsRdpEx, unfortunately it's not an easy thing to deploy to test. In order to see it work, I guess I would need to do a Teams call inside an AVD session?
https://github.com/Devolutions/MsRdpEx/issues/122
https://github.com/Devolutions/MsRdpEx/issues/138
You can test it pretty easy. on an RDS host install the latest teams and install the webrtc service.
then when u connect with an end user and start teams u will see optimizing for AVD on top. Most of the time it wants to restart teams. When it is succesfull u get a small text in the left top corner stating "optimized" if u hover over this text it will show "Optimized for AVD" that means webrtc is active, or it does state "Optimized for AVD using Slimcore" when it does use the slimcore module. I found if i i disable slimcore on the tenant the clients start working over the webrtc protocol. Otherwise when slimcore is active on the tenant it does try slimcore and does not fall back to webrtc. It seems like the client does detect something for slimcore but is not able to set it up correctly. Otherwise on the AVD it will automatically fall back to webrtc if slimcore does not work, this is not the case using the msrdc client.
i managed to get webrtc working by disabling slimcore tenant wide for now. That's a good start but better would be if we could manage to get Slimcore to work as that will be the future and i am not shure how long Microsoft is going to support the webrtc.
ay mate,
Mind sharing how you disabled slimcore tenant wide for now?