On Wed, 2012-03-14 at 22:34 -0700, Laxmikant Rashinkar wrote: > > Arun Raghavan wrote: > > On Mon, 2012-03-12 at 15:42 -0700, LK Rashinkar wrote: > >> Hi, > >> > >> Background: > >> Xrdp is an open source RDP (Remote Desktop Protocol) server that > >> runs on Unices. It allows RDP clients running on Windows and Unices > >> to connect to it and presents a Unix desktop on the client computer. > >> So for example from a Windows 7 computer I can connect to an Xrdp > >> server running on my Ubuntu system and I will then have access to > >> my Ubuntu desktop on the Windows 7 computer. > >> > >> The problem: > >> Xrdp does not yet support audio redirection, which means that RDP > >> clients that connect to it cannot cannot hear any music/sound that is > >> played on the server. > >> > >> RDP protocol has built in features that supports audio redirection. > >> What I need to understand is how to use Pulseaudio to read audio data > >> on a per user login basis, without playing any of the sound on the physical > >> speaker on the server. For example, lets say I am logged into my ubuntu > >> system and I'm playing a youtube video. User A and User B login via > >> xrdp and they both start playing different youtube videos. The audio > >> from User A and B should not be played on the speaker on the server > >> and I need a way to read the audio data from User A and B and > >> using Pulseaudio. > >> > >> I'm sure PA has support for this, but if someone can guide me in the > >> right direction, it will be helpful. > > > > You could make a null sink and make it the default (preferably only > > sink, so users can't play anything locally). You could then use the > > monitor source to feed data to RDP. > > > > -- Arun > > > > Hi Arun, > > thanks for both your replies. I tried out your NULL sink idea and it works > just fine for me. I was able to play a MP3 file and youtube video simultaneously > and both got recorded by reading from null monitor source. So I'll go the null > sink way. > > One quick question though. Is it possible to rename the NULL sink dynamically > to something else, say xrdp_sync? You can give the sink a name at module load time using sink_name module argument. So something like: pactl load-module module-null-sink sink_name="xrdp_sink" Cheers, Arun