Freerdp: Redirect local microphone fails when setting the Sound to Local

Created on 1 Jun 2017  路  24Comments  路  Source: FreeRDP/FreeRDP

Hello,
I'm trying to redirect my microphone to a remote Windows machine. I need to her the remote sound on my local machine (Ubuntu 16.04). The goal is to be able to use a softphone application for my work and it has no Linux client.

I've already set the registry and the group policy on the Windows machine to allow audio redirection, however there are no devices under the Windows Sound Recording Devices tab.

I've tried connecting using the following commands as well without success:
xfreerdp /v:server_ip /u:username /sound /clipboard /microphone:sys:alsa
xfreerdp /v:server_ip /u:username /sound /clipboard /microphone:sys:pulse
The session establishes but again there is no device under Recording Devices.

Any idea what else I might try?

Here are some details about my setup:

  • Client (OS name and version): Ubuntu 16.04
  • Remmina version (remmina --version): 1.2.0-rcgit-18 (git rcgit-18)
  • Desktop environment (GNOME, Unity, KDE, ..): Unity
  • Connecting to (OS and version): Windows 2008 R2 Datacenter SP1
  • Connecting via (RDP, VNC, ...): RDP
  • RDP issues only, freerdp version (xfreerdp --version): 2.0.0~dev

Cheers!
Marius

waiting-feedback

Most helpful comment

I am having the same issue - While the pc is Windows 10 (not windows server) . The above recommendation Server Manager add the Remote Desktop Services Role. Is not available ( at least I didn't find it).

On linux I am using Ubunu 18.4
Running /microphone:sys:pulse as an option.

The microphone is not going through. It is grayed out when I check sound from the linux on the remote pc.
Please advise

All 24 comments

Please add some valuable information necessary for us to help you. See https://github.com/FreeRDP/FreeRDP/wiki/BugReporting
As for your issue you just need /sound /microphone to redirect, no additional magic necessary assuming you have a recent build.
We provide nightlies to check our current status here https://github.com/FreeRDP/FreeRDP/wiki/PreBuilds

The /sound /microphone options are the first I tried. Only when it failed to redirect the mic did I try the sys:alsa/pulse parameters (according to some discussions I found on the topic) again without success.

I expected to see the microphone under the Recording Devices and to be able to select it in my softphone tool. However, even though sound redirects from the remote machine to the local perfectly, the mic doesn't redirect from local to remote, with remote reporting no devices available.

I'm using the 64-bit Ubuntu 16.04 with the stock 2.0.0-dev freerdp. I haven't changed anything myself.

Had a look over the nighties, but that's a bit out of my league I'm afraid :(

If there's any other info I can provide, please let me know.

You windows version would be neat as not all versions supports microphone redirection, IIRC that's notably the case for home versions.
Using nightlies is not what I would call a high technical thing..

As mentioned above in my initial post, here are the details of my setup, including remote OS:

Client (OS name and version): Ubuntu 16.04
Remmina version (remmina --version): 1.2.0-rcgit-18 (git rcgit-18)
Desktop environment: Unity
Connecting to (OS and version): Windows 2008 R2 Datacenter SP1
Connecting via: RDP
freerdp version (xfreerdp --version): 2.0.0~dev

@hyperion1209 sorry, I missed that as I was replying to the mail.

@hyperion1209 Any news? Does it work with the nightlies, mstsc or other clients?

Hello, still haven't managed to get it to work. Regarding the nightly, ran into this error doing the apt-get update:

W: The repository 'http://pub.freerdp.com/repositories/deb/DIST freerdp-nightly Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch http://pub.freerdp.com/repositories/deb/DIST/dists/freerdp-nightly/main/binary-amd64/Packages 404 Not Found [IP: 212.232.26.215 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.

If I try to install:
E: Unable to locate package freerdp-nightly

Regarding other clients, we do have an internal client we use, but it's only for windows (I'm running it in wine). The sound works just fine on it but the clipboard doesn't and since it isn't open source, there's not much chance of fixing that :(

Cheers!
Marius

Come on @hyperion1209, you're supposed to change DIST by the name of your distribution (xenial in your case)

After successfully extracting my head out of my ass (I hope), I successfully installed the nightly. Thanks for the the tip, @hardening.

Here's what I get when I start the client. No remote recording devices show up on the windows machine.

/opt/freerdp-nightly/bin/xfreerdp /v:X.X.X.X /u:my_username /sound /clipboard /microphone
[10:37:06:391] [17366:17367] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[10:37:06:391] [17366:17367] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[10:37:06:391] [17366:17367] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[10:37:06:391] [17366:17367] [INFO][com.freerdp.client.common.cmdline] - loading channelEx drdynvc
Password:
[10:37:09:676] [17366:17367] [INFO][com.freerdp.gdi] - Local framebuffer format PIXEL_FORMAT_BGRX32
[10:37:09:676] [17366:17367] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[10:37:09:689] [17366:17367] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[10:37:09:718] [17366:17367] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel audin
[10:37:09:718] [17366:17367] [ERROR][com.freerdp.channels.audin.client] - audin_pulse_parse_addin_args failed with error 87!
[10:37:09:718] [17366:17367] [ERROR][com.freerdp.channels.audin.client] - pulse entry returned error 87.
[10:37:09:718] [17366:17367] [ERROR][com.freerdp.channels.audin.client] - audin_load_device_plugin pulse failed with error 87!
[10:37:09:718] [17366:17367] [ERROR][com.freerdp.channels.audin.client] - audin_oss_parse_addin_args failed with errorcode 87!
[10:37:09:718] [17366:17367] [ERROR][com.freerdp.channels.audin.client] - oss entry returned error 87.
[10:37:09:718] [17366:17367] [ERROR][com.freerdp.channels.audin.client] - audin_load_device_plugin oss failed with error 87!
[10:37:09:718] [17366:17367] [ERROR][com.freerdp.channels.audin.client] - audin_alsa_parse_addin_args failed with errorcode 87!
[10:37:09:718] [17366:17367] [ERROR][com.freerdp.channels.audin.client] - alsa entry returned error 87.
[10:37:09:718] [17366:17367] [ERROR][com.freerdp.channels.audin.client] - audin_load_device_plugin alsa failed with error 87!
[10:37:09:718] [17366:17367] [ERROR][com.freerdp.channels.audin.client] - no sound device.
[10:37:09:732] [17366:17386] [INFO][com.freerdp.channels.rdpsnd.client] - Loaded pulse backend for rdpsnd

If I use /microphone:sys:pulse the errors go away, but still no recording devices are visible.

/opt/freerdp-nightly/bin/xfreerdp /v:X.X.X.X /u:my_username /sound /clipboard /microphone:sys:pulse
[10:41:03:551] [17875:17876] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[10:41:03:551] [17875:17876] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[10:41:03:551] [17875:17876] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[10:41:03:551] [17875:17876] [INFO][com.freerdp.client.common.cmdline] - loading channelEx drdynvc
Password:
[10:41:07:362] [17875:17876] [INFO][com.freerdp.gdi] - Local framebuffer format PIXEL_FORMAT_BGRX32
[10:41:07:362] [17875:17876] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[10:41:07:373] [17875:17876] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[10:41:07:404] [17875:17876] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel audin
[10:41:07:420] [17875:17883] [INFO][com.freerdp.channels.rdpsnd.client] - Loaded pulse backend for rdpsnd
[10:41:07:420] [17875:17876] [INFO][com.freerdp.channels.audin.client] - Loaded pulse backend for audin

@hyperion1209 Found the issue with the error messages when using just microphone and fixed it in #4000.
Still, on my machine I can record with /microphone:sys:alsa as well as /microphone:sys:pulse. Remote is windows 10 enterprise

@akallabeth: Is there any chance you could try connecting to a Windows 2008 R2 Datacenter SP1 VM to see if you have the same issue as me? Perhaps it's Windows related, even though I've allowed microphone redirection... Scratching my head here...

@hyperion1209 I'd suggest setting the environment variable WLOG_LEVEL=Debug before launching so that we have more traces (and see if the channel is ever solicited)

@hyperion1209 And a very simple check if it is server related is to try to use MSTSC and see if it works there (assuming you have another windows installation around)

@akallabeth : I don't have a Windows install, but I did try with my company's own internal client (running in wine, cause it's a windows one...) and that works.

@hardening : I've set the environment variable WLOG_LEVEL to Debug on the local machine. Does it save a log file somewhere? The CLI output displays only this when launching:

/opt/freerdp-nightly$ echo $WLOG_LEVEL
Debug

/opt/freerdp-nightly/bin/xfreerdp /v:X.X.X.X /u:username /sound /clipboard /microphone:sys:pulse
[13:45:09:109] [3079:3080] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[13:45:09:109] [3079:3080] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[13:45:09:109] [3079:3080] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[13:45:09:110] [3079:3080] [INFO][com.freerdp.client.common.cmdline] - loading channelEx drdynvc
Password:
[13:45:13:965] [3079:3080] [INFO][com.freerdp.gdi] - Local framebuffer format PIXEL_FORMAT_BGRX32
[13:45:13:965] [3079:3080] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[13:45:13:975] [3079:3080] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[13:45:13:990] [3079:3080] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel audin
[13:45:13:009] [3079:3167] [INFO][com.freerdp.channels.rdpsnd.client] - Loaded pulse backend for rdpsnd
[13:45:13:015] [3079:3080] [INFO][com.freerdp.channels.audin.client] - Loaded pulse backend for audin

@hyperion1209 Ok, good to know that that is working, one less variable to check.
As for your debug output, mine is a bit more verbose. Maybe something is not working with your env settings, try /log-level:debug command line, that does the same.

@akallabeth : That did it. But the output is rather lengthy. Shall I paste it here?

@hyperion1209 you can attach it as a file/zip

@akallabeth Here it is:
Xfreerdp_debug_output.zip

@hyperion1209 Please check https://serverfault.com/questions/549812/cant-redirect-microphone-by-rdp-no-audio-devices-are-installed did the trick for me on windows server 2008r2

@akallabeth Happy days! I finally got it to work. I had tried the advice in your link before posting my problem here, but didn't succeed. This is what I did to make it work:

  1. Set the Allow audio recording redirection in Computer Configuration\Policies\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Device and Resource Redirection to Not-configured.
  2. Under Server Manager add the Remote Desktop Services Role and configure the Audio recording redirection on the Configure Client Experience page in the Add Roles Wizard.

Please note that setting the Device and Resource Redirection in step 1 to Enabled greys out the Audio recording redirection in step 2 rendering it impossible to configure.

Thanks @akallabeth for all your help and for bearing with me :)

I am having the same issue - While the pc is Windows 10 (not windows server) . The above recommendation Server Manager add the Remote Desktop Services Role. Is not available ( at least I didn't find it).

On linux I am using Ubunu 18.4
Running /microphone:sys:pulse as an option.

The microphone is not going through. It is grayed out when I check sound from the linux on the remote pc.
Please advise

@ehaparna I have a same problem. Did you found some solution?

Additional privacy settings in Windows Server can block access to the microphone. To fix:

Start > Settings > Privacy > Microphone > Allow apps to access your microphone > On

Solved the problem for me on Windows Server 2016 host.

My connection string:

xfreerdp /sound:sys:pulse,format:1,quality:high /microphone:sys:alsa,format:1,quality:high /v:192.168.0.2 ...

@ehaparna I have a same problem. Did you found some solution?

Had similar issue.
Neither freerdp nor remmina was forwarding local USB microphone from Raspbian to Windows 10 Enterprise.
When I went though all these steps, my issue was fixed (posting for future reference):

  1. (Host) Set the Allow audio recording redirection & Allow audio and video playback redirection in Computer Configuration\Policies\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Device and Resource Redirection to Enabled. Do not allow supported Plug and Play device redirection to Disabled.
  2. (Host) Rebooted

_Here, I decided to connect Win10 -> Win10, and confirmed that mic redirection does work. So issue was client side._

  1. (Client) Installed Pulse Audio on Raspbian sudo apt-get install pavucontrol paprefs pulseaudio
  2. (Client) Rebooted
  3. (Host) Went to Services, restarted Remote Desktop Services UserMode Port Redirector and Windows Audio Endpoint Builder (from within the connection via RDP).

After this, freerdp works when I specify /microphone:sys:pulse and remmina forwards the local mic as well. I suspect that actual issue was fixed by installing and using pulseaudio instead of alsa but can't be sure.

Was this page helpful?
0 / 5 - 0 ratings