You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
3.6 KiB

  1. The latest version of this document can be found at wiki.
  2. * https://github.com/neutrinolabs/pulseaudio-module-xrdp/wiki/README
  3. # Overview
  4. xrdp implements Audio Output redirection using PulseAudio, which is a sound
  5. system used on POSIX operating systems.
  6. The server to client audio redirection is implemented as per **Remote Desktop
  7. Protocol: Audio Output Virtual Channel Extension
  8. [[MS-RDPEA]](https://msdn.microsoft.com/en-us/library/cc240933.aspx)** specs,
  9. which means it is interoperable with any RDP client which implements it
  10. (most of them including: MS RDP clients, FreeRDP).
  11. However, our Microphone redirection (client to server) implementation is
  12. proprietary and doesn't implement the
  13. [[MS-RDPEAI]](https://msdn.microsoft.com/en-us/library/dd342521.aspx)
  14. specs. Its only supported by the following clients so far: NeutrinoRDP client
  15. and rdesktop.
  16. Here is how to build pulseaudio modules for your distro, so you can have audio
  17. support through xrdp.
  18. In this instruction, pulseaudio version is **11.1**. You need to **replace the
  19. version number in this instruction** if your environment has different
  20. versions. You can find out your pulseaudio version executing the following
  21. command:
  22. pulseaudio --version
  23. or
  24. pkg-config --modversion libpulse
  25. # How to build
  26. ## Debian 9 / Ubuntu
  27. This instruction also should be applicable to the Ubuntu family.
  28. ### Prerequisites
  29. Some build tools and package development tools are required. Make sure install
  30. the tools.
  31. apt install build-essential dpkg-dev
  32. ### Prepare & build
  33. Install pulseaudio and requisite packages to build pulseaudio.
  34. apt install pulseaudio
  35. apt build-dep pulseaudio
  36. Fetch the pulseaudio source. You'll see `pulseaudio-11.1` directory in your
  37. current directory.
  38. apt source pulseaudio
  39. Enter into the directory and build the pulseaudio package.
  40. cd pulseaudio-11.1
  41. ./configure
  42. Finally, let's build xrdp source / sink modules. You'll have two .so files
  43. `module-xrdp-sink.so` and `module-xrdp-source.so`.
  44. git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
  45. cd pulseaudio-module-xrdp
  46. ./bootstrap && ./configure PULSE_DIR=/path/to/pulseaudio-11.1
  47. make
  48. ## Other distro
  49. First off, find out your pulseaudio version using `pulseaudio --version`
  50. command. Download the tarball of the pulseaudio version that you have.
  51. * https://freedesktop.org/software/pulseaudio/releases/
  52. After downloading the tarball, extract the tarball and `cd` into the source
  53. directory, then run `./configure`.
  54. wget https://freedesktop.org/software/pulseaudio/releases/pulseaudio-11.1.tar.xz
  55. tar xf pulseaudio-11.1.tar.xz
  56. cd pulseaudio-11.1
  57. ./configure
  58. If additional packages are required to run `./configure`, install requisite
  59. packages depending on your environment.
  60. Finally, let's build xrdp source / sink modules. You'll have two .so files
  61. `module-xrdp-sink.so` and `module-xrdp-source.so`.
  62. git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
  63. cd pulseaudio-module-xrdp
  64. ./bootstrap && ./configure PULSE_DIR=/path/to/pulseaudio-11.1
  65. make
  66. # Install
  67. Just `make install` should install built modules to the correct directory.
  68. You can confirm if the modules properly installed by following command:
  69. ```
  70. ls $(pkg-config --variable=modlibexecdir libpulse)
  71. ```
  72. If you can see lots of `module-*.so` and `module-xrdp-sink.so`,
  73. `module-xrdp-source.so`, PulseAudio modules should be properly built and
  74. installed.
  75. Enjoy!
  76. # See if it works
  77. To see if it works, run `pavumeter` in the xrdp session. Playback any YouTube
  78. video in Firefox. You'll see "Showing signal levels of **xrdp sink**" and
  79. volume meter moving.