xrdp sink / source pulseaudio modules
Go to file
matt335672 2d62018e58
Merge pull request #135 from matt335672/support_dot_users
Support usernames with dots in them
2025-04-17 11:39:27 +01:00
.github/workflows Add CI dependency for building pulseaudio module 2025-01-03 16:51:06 +00:00
instfiles Changes following review and retest 2021-11-09 08:58:08 +00:00
scripts Support usernames with dots in them 2025-04-17 11:33:12 +01:00
src Fix accessing state within sink_process_msg() 2025-04-14 14:38:52 +01:00
.gitignore use config_ac.h for our config.h 2018-08-23 14:16:22 +09:00
bootstrap brush up use of autotools 2018-08-08 12:47:55 +09:00
configure.ac bump version to v0.8 2025-04-15 17:33:24 +09:00
LICENSE Switch LICENSE to LGPLv2.1 2021-01-04 15:32:28 +09:00
Makefile.am Add install files to the build 2021-10-30 15:10:57 +01:00
README.md Update README.md 2021-11-03 11:22:47 +00:00

Build Status Gitter (xrdp)

Overview

xrdp implements Audio Output redirection using PulseAudio, which is a sound system used on POSIX operating systems.

The server to client audio redirection is implemented as per Remote Desktop Protocol: Audio Output Virtual Channel Extension [MS-RDPEA] specs, which means it is interoperable with any RDP client which implements it (most of them including: MS RDP clients, FreeRDP).

The client to server audio redirection is implemented as per Remote Desktop Protocol: Audio Input Redirection Virtual Channel Extension [MS-RDPEAI] which means it is interoperable with any RDP client which implements it (most of them including: MS RDP clients, FreeRDP).

How to build

These modules make use of the internal pulseaudio module API. To build them you need access to the pulseaudio sources and configuration.

Be aware that the pulseaudio application development packages provided with many distributions do not contain the files necessary to use the pulseaudio module API. Consequently, the preparation for building these modules can be a little more involved than just installing development tools and packages.

Consult the Pulseaudio Wiki for instructions on building the modules for your platform:-

https://github.com/neutrinolabs/pulseaudio-module-xrdp/wiki

Install

One the modules have been built, sudo make install should do the following:-

  • Install the modules to the correct directory
  • Install a script load_pa_modules.sh to load the modules when a session is started. On many systems this script is installed by default in /usr/libexec/pulseaudio-module-xrdp/
  • Install a desktop file pulseaudio-xrdp.desktop which will call the load_pa_modules.sh script when a desktop is loaded. On many systems this script is installed by default in /etc/xdg/autostart

Note that the modules will only be loaded automatically when the desktop starts if your desktop supports the XDG autostart specification. Most modern desktops support this.

You can confirm if the modules are properly installed by following command:

ls $(pkg-config --variable=modlibexecdir libpulse) | grep xrdp

If you can see module-xrdp-sink.so and module-xrdp-source.so, PulseAudio modules are properly built and installed.

Enjoy!

See if it works

The easiest way to test this is to use the paplay command to play an audio file.

You can also do the following:-

  • run pavumeter in the xrdp session-
  • Playback any YouTube video in Firefox.

You'll see "Showing signal levels of xrdp sink" and volume meter moving.