Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-23 Thread Quinn Plattel
Hi,

I tried the pulse cookie method.  Here is what I did:

- on the local sound server side, I copied ~/.pulse-cookie to the remote
sound client to /etc/pulse/pulse-cookie-n900
- on the remote sound client side, I added the following two lines to
/etc/pulse/client.conf:
  default-server = localhost
  cookie-file = /etc/pulse/pulse-cookie-n900
- on the remote sound client side, I made /etc/pulse/pulse-cookie-n900
permissions 644
- on the local sound server side, I did a ssh -X -R 4713:localhost:4713
remote-sound-client PULSE_LOG=99 pactl stat
The following output of pactl stat follows:
--
Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
is 64.0 MiB, maximum usable slot size is 65472
Trying to connect to localhost:4713...
SHM possible: yes
Protocol version: remote 16, local 16
Negotiated SHM: no
Connection failure: Connection terminated
--

and pulseaudio daemon reports protocol error, kicking client

So no luck with cookies either.  I could try and upgrade pulseaudio on the
local server side, but it is going to be tricky.

br,
Quinn

On Mon, May 23, 2011 at 10:29 AM, Colin Guthrie gm...@colin.guthr.iewrote:

 'Twas brillig, and Quinn Plattel at 23/05/11 05:52 did gyre and gimble:
  HI.
 
  Last post on this thread, then I will start a new one.
  I managed to cut down the delay considerably by simplifying the commands:
 
  local sound server: ssh -L 5901:localhost 5901 -L 1234:localhost:1234
  remote sound client *parec | nc -l 1234
  local sound server: nc localhost 1234 | pacat
 
  The advantage with this is that the volume can be controlled manually
  with the local sound server's volume control and the delay is cut down
  to 3-5 seconds.


 The commands and procedure I outlined before is working fine and is free
 from bizarre work arounds. I'm not sure if the protocol error you are
 getting is coming form a bug in the client side or the server side, but
 either way it can be easily fixed if it's debugged appropriately.

 The lack of a cookie can be solved in several ways (e.g. by copying the
 ~/.pulse_cookie file between machines, or by setting up anonymous
 authentication when loading the TCP protocol module).

 I don't think your workaround (while creative) is the right way to go.
 Far a start parec|pacat has no dynamic sample rate adjustments to
 compensate for different clocks.

 Also with the parec command it seems you are connecting to to the remote
 PA daemon and recording from a monitor source (assuming no real source
 exists on the machine, the monitor source would be the default) so as to
 capture the sound which you then play back via pacat on the local
 system. If that's the case then you're already talking to the wrong PA
 daemon. As I said in my previous mail any client that runs on the remote
 system should connect *directly* (via SSH tunnel) to the remote PA. I'm
 sure it wouldn't take too long to work out the incompatibilities between
 the two protocol versions, but perhaps the one in Maemo has some kind of
 customisation applied on top that makes it generally incompatible?

 In general the protocol is backwards compatible and while I'd have to
 look, I'm not aware of any specific incompatibilities between 0.9.21 and
 0.9.15


 But if you cannot work out the protocol error here, I guess you're work
 around is the easiest option :s

 Col



 --

 Colin Guthrie
 gmane(at)colin.guthr.ie
 http://colin.guthr.ie/

 Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
 Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

 ___
 pulseaudio-discuss mailing list
 pulseaudio-discuss@mail.0pointer.de
 https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss




-- 
Best regards/Med venlig hilsen,
Quinn Plattel
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-22 Thread Quinn Plattel
Hi,

Here are my results

On Sat, May 21, 2011 at 7:58 PM, Colin Guthrie gm...@colin.guthr.ie wrote:

 Hi,

 I think you're maybe getting a little confused by client and server in
 terms of how things work here (perhaps not, as I've not thoroughly read
 all the many posts in this thread).


You are right.  I used the terminology because of the way I am ssh'ing from
and to.

2. Open a terminal and type: xprop -root | grep PULSE_COOKIE Ensure
 this has some output. If it does not then chances are the
 start-pulseaudio-x11 script was not run at login (or you have
 restarted your PA server after logging in). Try just running
 start-pulseaudio-x11 and see if that fixes it.


xprop -root | grep PULSE_COOKIE does not turn up any results on the local
sound server or on the remote sound client side
dpkg -L pulseaudio | grep start-pulseaudio-x11 does not turn up any
results on the local sound server side but
it does turn up results on the remote sound client side.


 3. Ensure that the tcp native protocol module is loaded. pacmd
 list-modules | grep module-native-protocol-tcp If it is not loaded,
 then simply type: pactl load-module module-native-protocol-tcp


pacmd gives the error No PulseAudio daemon running, or not running as
session daemon. on the local sound server side but
I managed to get around this by:
# stop pulseaudio
# pulseaudio --system --high-priority -C

and then at the pulseaudio command line: list-modules
Here is the module:
---
index: 18
name: module-native-protocol-tcp
argument: auth-anonymous=1
used: -1
load once: no
properties:
module.author = Lennart Poettering
module.description = Native protocol (TCP sockets)
module.version = 0.9.15
---


 4. SSH to your other machine:  ssh -X -R4713:localhost:4713 OTHERMACHINE

 If you get a warning:
 Warning: remote port forwarding failed for listen port 4713
 then chances are there is a PA daemon running there already, or you've
 SSH'ed twice. If the former, just change the *first* instance of 4713 to
 a random number of your choice (1024).


No problems there.



 5. On this remote machine, check your cookie is available via the xprop
 command show in step 2. If X11 forwarding is working properly, it should
 show up fine.


xprop -root | grep PULSE_COOKIE does not give any results on the remote
machine.


 6. Set the PULSE_SERVER variable to the forwarded tunnel port.
  export PULSE_SERVER=localhost:4713
 (or the port number you picked in step 4 if different)

 7. Confirm it's all working: PULSE_LOG=99 pactl stat

 Results of PULSE_LOG=99 pactl stat on the remote sound client side:
-
Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
is 64.0 MiB, maximum usable slot size is 65472
Trying to connect to localhost:4713...
SHM possible: yes
Protocol version: remote 16, local 16
Negotiated SHM: no
Connection failure: Connection terminated
-

Results on the local sound server side:
--
E: protocol-native.c: protocol error, kicking client
--


 Done!!

 So in this setup, the cookie used for authentication is forwarded
 automatically via piggy backing on to X11 connections but as you cannot
 connect directly to the machine we've had to override the PULSE_SERVER
 variable to go over the SSH tunnel.

 Below is the output from my session where I run these exact commands
 (note the host name in the pactl stat at the end).

 HTHs

 Col


 [colin@jimmy ~]$ hostname
 jimmy
 [colin@jimmy ~]$ xprop -root | grep PULSE_COOKIE
 PULSE_COOKIE(STRING) = 71eb0d3d53819c42957ce9..
 [colin@jimmy ~]$ pacmd list-modules | grep module-native-protocol-tcp
name: module-native-protocol-tcp
 [colin@jimmy ~]$ ssh -X -R :localhost:4713 mediacentre
 Last login: Sat May 21 18:51:40 2011 from jimmy.local
 [media@(Media)centre ~]$ xprop -root | grep PULSE_COOKIE
 PULSE_COOKIE(STRING) = 71eb0d3d53819c42957ce9..
 [media@(Media)centre ~]$ export PULSE_SERVER=localhost:
 [media@(Media)centre ~]$ PULSE_LOG=99 pactl stat
 Using shared memory pool with 1024 slots of size 64.0 KiB each, total
 size is 64.0 MiB, maximum usable slot size is 65496
 Trying to connect to localhost:...
 SHM possible: no
 Protocol version: remote 21, local 16
 Negotiated SHM: no
 Currently in use: 2 blocks containing 149.9 KiB bytes total.
 Allocated during whole lifetime: 1220055 blocks containing 1.6 GiB bytes
 total.
 Sample cache size: 86.0 KiB
 User name: colin
 Host Name: jimmy
 Server Name: pulseaudio
 Server Version: 1.0.0-0.354.1.csg1
 Default Sample Specification: s16le 2ch 44100Hz
 Default Channel Map: front-left,front-right
 Default Sink: alsa_output.pci-_00_1b.0.analog-stereo
 Default Source: alsa_input.pci-_00_1b.0.analog-stereo
 Cookie: d7756be2
 [media@(Media)centre ~]$



 --

 Colin 

Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-22 Thread Quinn Plattel
Hi,

I have now found a partial solution to the protocol error that happens when
I try to play sound remotely through pulse.
What I did was I played around with different versions of pulseaudio on the
remote side by using different versions of Ubuntu.
On the local server side, we are using pulseaudio 0.9.15.
Ubuntu Lucid Lynx 10.04 has version 0.9.22 of pulseaudio and it gives
protocol error on the local server side.
Ubuntu Koala Karmic 9.10 has version 0.9.19 of pulseaudio and it gives
protocol error on the local server side.
Ubuntu Jaunty Jackelope 9.04 has version 0.9.14 of pulseaudio and it works
perfectly without the protocol error on the local server side.

I will see if I can downgrade the version of pulseaudio in Ubuntu Lucid
Lynx.

Question: Is it possible to force pulseaudio to use an older protocol?

br,
Quinn

On Sun, May 22, 2011 at 4:49 PM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 Here are my results

 On Sat, May 21, 2011 at 7:58 PM, Colin Guthrie gm...@colin.guthr.iewrote:

 Hi,

 I think you're maybe getting a little confused by client and server in
 terms of how things work here (perhaps not, as I've not thoroughly read
 all the many posts in this thread).


 You are right.  I used the terminology because of the way I am ssh'ing from
 and to.

 2. Open a terminal and type: xprop -root | grep PULSE_COOKIE Ensure
 this has some output. If it does not then chances are the
 start-pulseaudio-x11 script was not run at login (or you have
 restarted your PA server after logging in). Try just running
 start-pulseaudio-x11 and see if that fixes it.


 xprop -root | grep PULSE_COOKIE does not turn up any results on the local
 sound server or on the remote sound client side
 dpkg -L pulseaudio | grep start-pulseaudio-x11 does not turn up any
 results on the local sound server side but
 it does turn up results on the remote sound client side.


 3. Ensure that the tcp native protocol module is loaded. pacmd
 list-modules | grep module-native-protocol-tcp If it is not loaded,
 then simply type: pactl load-module module-native-protocol-tcp


 pacmd gives the error No PulseAudio daemon running, or not running as
 session daemon. on the local sound server side but
 I managed to get around this by:

 # stop pulseaudio
 # pulseaudio --system --high-priority -C

 and then at the pulseaudio command line: list-modules
 Here is the module:
 ---
 index: 18

 name: module-native-protocol-tcp
 argument: auth-anonymous=1
 used: -1
 load once: no
 properties:
 module.author = Lennart Poettering
 module.description = Native protocol (TCP sockets)
 module.version = 0.9.15
 ---


 4. SSH to your other machine:  ssh -X -R4713:localhost:4713 OTHERMACHINE

 If you get a warning:
 Warning: remote port forwarding failed for listen port 4713
 then chances are there is a PA daemon running there already, or you've
 SSH'ed twice. If the former, just change the *first* instance of 4713 to
 a random number of your choice (1024).


 No problems there.



 5. On this remote machine, check your cookie is available via the xprop
 command show in step 2. If X11 forwarding is working properly, it should
 show up fine.


 xprop -root | grep PULSE_COOKIE does not give any results on the remote
 machine.


 6. Set the PULSE_SERVER variable to the forwarded tunnel port.
  export PULSE_SERVER=localhost:4713
 (or the port number you picked in step 4 if different)

 7. Confirm it's all working: PULSE_LOG=99 pactl stat

 Results of PULSE_LOG=99 pactl stat on the remote sound client side:

 -
 Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
 is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to localhost:4713...
 SHM possible: yes
 Protocol version: remote 16, local 16
 Negotiated SHM: no
 Connection failure: Connection terminated
 -

 Results on the local sound server side:
 --

 E: protocol-native.c: protocol error, kicking client
 --


 Done!!

 So in this setup, the cookie used for authentication is forwarded
 automatically via piggy backing on to X11 connections but as you cannot
 connect directly to the machine we've had to override the PULSE_SERVER
 variable to go over the SSH tunnel.

 Below is the output from my session where I run these exact commands
 (note the host name in the pactl stat at the end).

 HTHs

 Col


 [colin@jimmy ~]$ hostname
 jimmy
 [colin@jimmy ~]$ xprop -root | grep PULSE_COOKIE
 PULSE_COOKIE(STRING) = 71eb0d3d53819c42957ce9..
 [colin@jimmy ~]$ pacmd list-modules | grep module-native-protocol-tcp
name: module-native-protocol-tcp
 [colin@jimmy ~]$ ssh -X -R :localhost:4713 mediacentre
 Last login: Sat May 21 18:51:40 2011 from jimmy.local
 [media@(Media)centre ~]$ xprop -root | grep 

Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-22 Thread Quinn Plattel
Hi,

Correction on the last two lines:
local sound server: mkfifo *fifo.wav*
local sound server: paplay --volume=48000 -v fifo.wav  nc localhost 1234
fifo.wav

br,
Quinn

On Sun, May 22, 2011 at 9:57 PM, Quinn Plattel qie...@gmail.com wrote:

 Well, here is my almost perfect solution:

 local sound server: ssh -L 5901:localhost:5901 -L 1234:localhost:1234
 remote sound client
 remote sound client: mkfifo output.wav
 remote sound client: parec | sox -t raw -r 44100 -s -L -b 16 -c 2 -
 output.wav  cat output.wav | nc -l 1234
 local sound server: mkfifo output.wav
 local sound server: paplay --volume=48000 -v fifo.wav  nc localhost 1234
 fifo.wav

 As you can see, I use port 5901 for VNC and port 1234 to forward sound.
 The only thing is it takes at least 30 seconds before it plays on the
 speakers.

 Any ideas why such a huge latency?

 br,
 Quinn


 On Sun, May 22, 2011 at 8:13 PM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 I have now found a partial solution to the protocol error that happens
 when I try to play sound remotely through pulse.
 What I did was I played around with different versions of pulseaudio on
 the remote side by using different versions of Ubuntu.
 On the local server side, we are using pulseaudio 0.9.15.
 Ubuntu Lucid Lynx 10.04 has version 0.9.22 of pulseaudio and it gives
 protocol error on the local server side.
 Ubuntu Koala Karmic 9.10 has version 0.9.19 of pulseaudio and it gives
 protocol error on the local server side.
 Ubuntu Jaunty Jackelope 9.04 has version 0.9.14 of pulseaudio and it works
 perfectly without the protocol error on the local server side.

 I will see if I can downgrade the version of pulseaudio in Ubuntu Lucid
 Lynx.

 Question: Is it possible to force pulseaudio to use an older protocol?

 br,
 Quinn


 On Sun, May 22, 2011 at 4:49 PM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 Here are my results

 On Sat, May 21, 2011 at 7:58 PM, Colin Guthrie gm...@colin.guthr.iewrote:

 Hi,

 I think you're maybe getting a little confused by client and server in
 terms of how things work here (perhaps not, as I've not thoroughly read
 all the many posts in this thread).


 You are right.  I used the terminology because of the way I am ssh'ing
 from and to.

 2. Open a terminal and type: xprop -root | grep PULSE_COOKIE Ensure
 this has some output. If it does not then chances are the
 start-pulseaudio-x11 script was not run at login (or you have
 restarted your PA server after logging in). Try just running
 start-pulseaudio-x11 and see if that fixes it.


 xprop -root | grep PULSE_COOKIE does not turn up any results on the
 local sound server or on the remote sound client side
 dpkg -L pulseaudio | grep start-pulseaudio-x11 does not turn up any
 results on the local sound server side but
 it does turn up results on the remote sound client side.


 3. Ensure that the tcp native protocol module is loaded. pacmd
 list-modules | grep module-native-protocol-tcp If it is not loaded,
 then simply type: pactl load-module module-native-protocol-tcp


 pacmd gives the error No PulseAudio daemon running, or not running as
 session daemon. on the local sound server side but
 I managed to get around this by:

 # stop pulseaudio
 # pulseaudio --system --high-priority -C

 and then at the pulseaudio command line: list-modules
 Here is the module:
 ---
 index: 18

 name: module-native-protocol-tcp
 argument: auth-anonymous=1
 used: -1
 load once: no
 properties:
 module.author = Lennart Poettering
 module.description = Native protocol (TCP sockets)
 module.version = 0.9.15
 ---


 4. SSH to your other machine:  ssh -X -R4713:localhost:4713 OTHERMACHINE

 If you get a warning:
 Warning: remote port forwarding failed for listen port 4713
 then chances are there is a PA daemon running there already, or you've
 SSH'ed twice. If the former, just change the *first* instance of 4713 to
 a random number of your choice (1024).


 No problems there.



 5. On this remote machine, check your cookie is available via the xprop
 command show in step 2. If X11 forwarding is working properly, it should
 show up fine.


 xprop -root | grep PULSE_COOKIE does not give any results on the remote
 machine.


 6. Set the PULSE_SERVER variable to the forwarded tunnel port.
  export PULSE_SERVER=localhost:4713
 (or the port number you picked in step 4 if different)

 7. Confirm it's all working: PULSE_LOG=99 pactl stat

 Results of PULSE_LOG=99 pactl stat on the remote sound client side:

 -
 Using shared memory pool with 1024 slots of size 64.0 KiB each, total
 size is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to localhost:4713...
 SHM possible: yes
 Protocol version: remote 16, local 16
 Negotiated SHM: no
 Connection failure: Connection terminated
 -

 Results on the local sound server side:
 

Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-22 Thread Quinn Plattel
HI.

Last post on this thread, then I will start a new one.
I managed to cut down the delay considerably by simplifying the commands:

local sound server: ssh -L 5901:localhost 5901 -L 1234:localhost:1234
remote sound client *parec | nc -l 1234
local sound server: nc localhost 1234 | pacat

The advantage with this is that the volume can be controlled manually with
the local sound server's volume control and the delay is cut down to 3-5
seconds.

br,
Quinn

On Sun, May 22, 2011 at 9:58 PM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 Correction on the last two lines:
 local sound server: mkfifo *fifo.wav*

 local sound server: paplay --volume=48000 -v fifo.wav  nc localhost 1234
 fifo.wav

 br,
 Quinn


 On Sun, May 22, 2011 at 9:57 PM, Quinn Plattel qie...@gmail.com wrote:

 Well, here is my almost perfect solution:

 local sound server: ssh -L 5901:localhost:5901 -L 1234:localhost:1234
 remote sound client
 remote sound client: mkfifo output.wav
 remote sound client: parec | sox -t raw -r 44100 -s -L -b 16 -c 2 -
 output.wav  cat output.wav | nc -l 1234
 local sound server: mkfifo output.wav
 local sound server: paplay --volume=48000 -v fifo.wav  nc localhost 1234
 fifo.wav

 As you can see, I use port 5901 for VNC and port 1234 to forward sound.
 The only thing is it takes at least 30 seconds before it plays on the
 speakers.

 Any ideas why such a huge latency?

 br,
 Quinn


 On Sun, May 22, 2011 at 8:13 PM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 I have now found a partial solution to the protocol error that happens
 when I try to play sound remotely through pulse.
 What I did was I played around with different versions of pulseaudio on
 the remote side by using different versions of Ubuntu.
 On the local server side, we are using pulseaudio 0.9.15.
 Ubuntu Lucid Lynx 10.04 has version 0.9.22 of pulseaudio and it gives
 protocol error on the local server side.
 Ubuntu Koala Karmic 9.10 has version 0.9.19 of pulseaudio and it gives
 protocol error on the local server side.
 Ubuntu Jaunty Jackelope 9.04 has version 0.9.14 of pulseaudio and it
 works perfectly without the protocol error on the local server side.

 I will see if I can downgrade the version of pulseaudio in Ubuntu Lucid
 Lynx.

 Question: Is it possible to force pulseaudio to use an older protocol?

 br,
 Quinn


 On Sun, May 22, 2011 at 4:49 PM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 Here are my results

 On Sat, May 21, 2011 at 7:58 PM, Colin Guthrie gm...@colin.guthr.iewrote:

 Hi,

 I think you're maybe getting a little confused by client and server in
 terms of how things work here (perhaps not, as I've not thoroughly read
 all the many posts in this thread).


 You are right.  I used the terminology because of the way I am ssh'ing
 from and to.

 2. Open a terminal and type: xprop -root | grep PULSE_COOKIE Ensure
 this has some output. If it does not then chances are the
 start-pulseaudio-x11 script was not run at login (or you have
 restarted your PA server after logging in). Try just running
 start-pulseaudio-x11 and see if that fixes it.


 xprop -root | grep PULSE_COOKIE does not turn up any results on the
 local sound server or on the remote sound client side
 dpkg -L pulseaudio | grep start-pulseaudio-x11 does not turn up any
 results on the local sound server side but
 it does turn up results on the remote sound client side.


 3. Ensure that the tcp native protocol module is loaded. pacmd
 list-modules | grep module-native-protocol-tcp If it is not loaded,
 then simply type: pactl load-module module-native-protocol-tcp


 pacmd gives the error No PulseAudio daemon running, or not running as
 session daemon. on the local sound server side but
 I managed to get around this by:

 # stop pulseaudio
 # pulseaudio --system --high-priority -C

 and then at the pulseaudio command line: list-modules
 Here is the module:
 ---
 index: 18

 name: module-native-protocol-tcp
 argument: auth-anonymous=1
 used: -1
 load once: no
 properties:
 module.author = Lennart Poettering
 module.description = Native protocol (TCP sockets)
 module.version = 0.9.15
 ---


 4. SSH to your other machine:  ssh -X -R4713:localhost:4713
 OTHERMACHINE

 If you get a warning:
 Warning: remote port forwarding failed for listen port 4713
 then chances are there is a PA daemon running there already, or you've
 SSH'ed twice. If the former, just change the *first* instance of 4713
 to
 a random number of your choice (1024).


 No problems there.



 5. On this remote machine, check your cookie is available via the xprop
 command show in step 2. If X11 forwarding is working properly, it
 should
 show up fine.


 xprop -root | grep PULSE_COOKIE does not give any results on the
 remote machine.


 6. Set the PULSE_SERVER variable to the forwarded tunnel port.
  export PULSE_SERVER=localhost:4713
 (or the port number you picked in step 4 if 

Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-21 Thread Quinn Plattel
Hi,

From what Colin says, the standard port is 4713 for pulseaudio.  As I said
before all network ports are blocked except port 22 which is only for ssh
connections.
I should be able to tunnel port 4713 through ssh by doing this: ssh -L
4713:localhost:4713 user@server.  Then I can tell pulseaudio to use the
servers local port 4713 which is automatically forwarded to the client's
local port 4713.  But from what pactl stat command is telling me, then
port 4713 on the client side seems to be blocked as it is giving a
connection refused.  I know the tunnelling works with ssh because I use
vnc connections through ssh by ssh -L 5901:localhost:5901 user@server and
that works perfectly with my vnc client and server solution.

I am not sure if I can use pactl load-module module-protocol-native-tcp
together with tunnelled tcp connections.  I need more details on how to
that.

btw, I can see there is something listening on port 4713 on the client when
I use the netstat -an|grep 4713 command:
-
tcp0  0 0.0.0.0:47130.0.0.0:*   LISTEN
-
So now the question is why does the listener process on the client not
accept pulseaudio data via the ssh tunnel?

br,
Quinn



On Fri, May 20, 2011 at 7:15 PM, Fred Frigerio ffrige...@frigerio.uswrote:

 Have you tried  redirecting the port in SSH? Then you get the native PA
 with SSH. I am not sure if there is some standard port.

 Fred Frigerio




 On Fri, May 20, 2011 at 1:01 PM, Quinn Plattel qie...@gmail.com wrote:

 Here is pactl stat on the client side:


 PULSE_LOG=99 pactl stat
 -
 Using private memory pool with 1024 slots of size 16,0 KiB each, total
 size is 16,0 MiB, maximum usable slot size is 16344
 Trying to connect to
 /home/user/.pulse/fbd5d27658d3fcf30cb25bf800531799:runtime/native...
 connect(): No such file or directory (2)
 Trying to connect to /var/run/pulse/native...
 SHM possible: no

 Protocol version: remote 16, local 16
 Negotiated SHM: no
 Currently in use: 1 blocks containing 16,0 KiB bytes total.
 Allocated during whole lifetime: 263989 blocks containing 231,3 MiB bytes
 total.

 Sample cache size: 0 B
 User name: pulse
 Host Name: Nokia-N900
 Server Name: pulseaudio
 Server Version: 0.9.15
 Default Sample Specification: s16le 2ch 48000Hz

 Default Channel Map: front-left,front-right
 Default Sink: sink.music
 Default Source: source.record
 Cookie: 26e54bb2
 -

 br,
 Quinn


 On Fri, May 20, 2011 at 6:58 PM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 This is interesting:

 client: ssh -XL 4713:localhost:4713 user@server
 server: PULSE_LOG=99 pactl stat
 
 Using shared memory pool with 1024 slots of size 64.0 KiB each, total
 size is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to
 /home/quinn/.pulse/1ffe0fd6b5c9262aaa374e734c2cc8d0-runtime/native...
 SHM possible: yes
 Protocol version: remote 16, local 16
 Negotiated SHM: yes
 Currently in use: 1 blocks containing 63.9 KiB bytes total.
 Allocated during whole lifetime: 15741 blocks containing 81.5 MiB bytes
 total.
 Sample cache size: 0 B
 User name: quinn
 Host Name: server
 Server Name: pulseaudio
 Server Version: 0.9.21-63-gd3efa-dirty
 Default Sample Specification: s16le 2ch 44100Hz
 Default Channel Map: front-left,front-right
 Default Sink: auto_null
 Default Source: auto_null.monitor
 Cookie: 6ccbf517
 
 server: export PULSE_SERVER=localhost:4713
 server: PULSE_LOG=99 pactl stat
 ---
 Using shared memory pool with 1024 slots of size 64.0 KiB each, total
 size is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to localhost:4713...
 connect(): Connection refused
 Connection failure: Connection refused
 ---

 Ideas?

 Quinn

 On Fri, May 20, 2011 at 5:48 PM, Colin Guthrie gm...@colin.guthr.iewrote:

 Hi,

 'Twas brillig, and Quinn Plattel at 20/05/11 15:52 did gyre and gimble:
  I am currently trying to attempt to redirect pulse audio sound from a
  server to a client through ssh.  I am bit unclear on what the correct
  way is of doing it.

 Firstly, I wrote up how our X11 piggy backing stuff work here:


 http://colin.guthr.ie/2009/08/sound-on-linux-is-confusing-defuzzing-part-2-pulseaudio/


 Technically we do not tunnel over SSH directly (this can of course be
 done, but not automatically as SSH does not know about PA in the same
 way it knows about X11). We can however piggy back on the X11 forwarding
 built into SSH for our authentication (cookie) and server connection
 strings.

 If this is on a private network (direct routing) then the built in way
 is the best, but it doesn't go over SSH. You just need to ensure the
 machine you're sshing from has the netwrok protocol 

Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-21 Thread Quinn Plattel
Hi,

I found this message when I am trying to tunnel 4713 via ssh ssh -L
4713:localhost:4713 user@server:

bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 4713
Could not request local forwarding.


BUT, this seems to work ssh -R 4713:localhost:4713 user@server (notice the
-R parameter)

So, it seems the forwarding direction has some say in this.  Forwarding from
local to remote is not the right way, but forwarding from remote to local is
the correct way.

pactl stat also seems to get a bit futher this time with the correct
tunnelling direction:
-
Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
is 64.0 MiB, maximum usable slot size is 65472
Trying to connect to localhost:4713...
SHM possible: yes
Protocol version: remote 16, local 16
Negotiated SHM: no
Connection failure: Connection terminated
-

So now we are down from connection refused to connection failure:
connection terminated.

If I attach an strace to the pulseaudio process then this happens when
pactl stat tries to connect to it remotely:
---
Process 1075 attached - interrupt to quit
restart_syscall(... resuming interrupted call ...) = 1
accept(57, 0, NULL) = 66
fcntl64(66, F_GETFD)= 0
fcntl64(66, F_SETFD, FD_CLOEXEC)= 0
setsockopt(57, SOL_SOCKET, SO_PRIORITY, [6], 4) = 0
setsockopt(57, SOL_TCP, TCP_NODELAY, [1], 4) = 0
setsockopt(57, SOL_IP, IP_TOS, [16], 4) = 0
fcntl64(66, F_GETFL)= 0x2 (flags O_RDWR)
fcntl64(66, F_SETFL, O_RDWR|O_NONBLOCK) = 0
fstat64(66, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
getpeername(66, {sa_family=AF_INET, sin_port=htons(54205),
sin_addr=inet_addr(127.0.0.1)}, [16]) = 0
getpeername(66, {sa_family=AF_INET, sin_port=htons(54205),
sin_addr=inet_addr(127.0.0.1)}, [16]) = 0
setsockopt(66, SOL_SOCKET, SO_RCVBUF, [16344], 4) = 0
setsockopt(66, SOL_SOCKET, SO_SNDBUF, [16344], 4) = 0
getsockname(66, {sa_family=AF_INET, sin_port=htons(4713),
sin_addr=inet_addr(127.0.0.1)}, [16]) = 0
open(/proc/0/cmdline, O_RDONLY)   = -1 ENOENT (No such file or
directory)
ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbed12ef4) = -1 ENOTTY
(Inappropriate ioctl for device)
write(2, E: client-ext.c: client-ext.c: Ca..., 57) = 57
---

I am assuming the problem lies on the client side and not on the server
side.  Any more ideas?  How can I see what is going on with the pulseaudio
daemon when a remote client is trying to connect?

br,
Quinn

On Sat, May 21, 2011 at 10:31 AM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 From what Colin says, the standard port is 4713 for pulseaudio.  As I said
 before all network ports are blocked except port 22 which is only for ssh
 connections.
 I should be able to tunnel port 4713 through ssh by doing this: ssh -L
 4713:localhost:4713 user@server.  Then I can tell pulseaudio to use the
 servers local port 4713 which is automatically forwarded to the client's
 local port 4713.  But from what pactl stat command is telling me, then
 port 4713 on the client side seems to be blocked as it is giving a
 connection refused.  I know the tunnelling works with ssh because I use
 vnc connections through ssh by ssh -L 5901:localhost:5901 user@server
 and that works perfectly with my vnc client and server solution.

 I am not sure if I can use pactl load-module module-protocol-native-tcp
 together with tunnelled tcp connections.  I need more details on how to
 that.

 btw, I can see there is something listening on port 4713 on the client when
 I use the netstat -an|grep 4713 command:
 -
 tcp0  0 0.0.0.0:47130.0.0.0:*   LISTEN
 -
 So now the question is why does the listener process on the client not
 accept pulseaudio data via the ssh tunnel?

 br,
 Quinn




 On Fri, May 20, 2011 at 7:15 PM, Fred Frigerio ffrige...@frigerio.uswrote:

 Have you tried  redirecting the port in SSH? Then you get the native PA
 with SSH. I am not sure if there is some standard port.

 Fred Frigerio




 On Fri, May 20, 2011 at 1:01 PM, Quinn Plattel qie...@gmail.com wrote:

 Here is pactl stat on the client side:


 PULSE_LOG=99 pactl stat
 -
 Using private memory pool with 1024 slots of size 16,0 KiB each, total
 size is 16,0 MiB, maximum usable slot size is 16344
 Trying to connect to
 /home/user/.pulse/fbd5d27658d3fcf30cb25bf800531799:runtime/native...
 connect(): No such file or directory (2)
 Trying to connect to 

Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-21 Thread Quinn Plattel
Hi,

I finally got some more details from pulseaudio.  I did this on the client:
--
# stop pulseaudio
# pulseaudio --system --high-priority -C
--

Now, when I run pactl stat on the server, pulseaudio on the client
reports:
--
E: client-ext.c: client-ext.c: Can't obtain command line
E: protocol-native.c: protocol error, kicking client
---

This is strange because pactl on the server side reports that the protocol
version is the same on both the remote and the local side:
--
Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
is 64.0 MiB, maximum usable slot size is 65472
Trying to connect to localhost:4713...
SHM possible: yes
Protocol version: remote 16, local 16
Negotiated SHM: no
Connection failure: Connection terminated
--

Any ideas?

br,
Quinn


On Sat, May 21, 2011 at 10:53 AM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 I found this message when I am trying to tunnel 4713 via ssh ssh -L
 4713:localhost:4713 user@server:
 
 bind: Address already in use
 channel_setup_fwd_listener: cannot listen to port: 4713
 Could not request local forwarding.
 

 BUT, this seems to work ssh -R 4713:localhost:4713 user@server (notice
 the -R parameter)

 So, it seems the forwarding direction has some say in this.  Forwarding
 from local to remote is not the right way, but forwarding from remote to
 local is the correct way.

 pactl stat also seems to get a bit futher this time with the correct
 tunnelling direction:
 -

 Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
 is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to localhost:4713...
 SHM possible: yes
 Protocol version: remote 16, local 16
 Negotiated SHM: no
 Connection failure: Connection terminated
 -

 So now we are down from connection refused to connection failure:
 connection terminated.

 If I attach an strace to the pulseaudio process then this happens when
 pactl stat tries to connect to it remotely:
 ---
 Process 1075 attached - interrupt to quit
 restart_syscall(... resuming interrupted call ...) = 1
 accept(57, 0, NULL) = 66
 fcntl64(66, F_GETFD)= 0
 fcntl64(66, F_SETFD, FD_CLOEXEC)= 0
 setsockopt(57, SOL_SOCKET, SO_PRIORITY, [6], 4) = 0
 setsockopt(57, SOL_TCP, TCP_NODELAY, [1], 4) = 0
 setsockopt(57, SOL_IP, IP_TOS, [16], 4) = 0
 fcntl64(66, F_GETFL)= 0x2 (flags O_RDWR)
 fcntl64(66, F_SETFL, O_RDWR|O_NONBLOCK) = 0
 fstat64(66, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
 getpeername(66, {sa_family=AF_INET, sin_port=htons(54205),
 sin_addr=inet_addr(127.0.0.1)}, [16]) = 0
 getpeername(66, {sa_family=AF_INET, sin_port=htons(54205),
 sin_addr=inet_addr(127.0.0.1)}, [16]) = 0
 setsockopt(66, SOL_SOCKET, SO_RCVBUF, [16344], 4) = 0
 setsockopt(66, SOL_SOCKET, SO_SNDBUF, [16344], 4) = 0
 getsockname(66, {sa_family=AF_INET, sin_port=htons(4713),
 sin_addr=inet_addr(127.0.0.1)}, [16]) = 0
 open(/proc/0/cmdline, O_RDONLY)   = -1 ENOENT (No such file or
 directory)
 ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbed12ef4) = -1 ENOTTY
 (Inappropriate ioctl for device)
 write(2, E: client-ext.c: client-ext.c: Ca..., 57) = 57
 ---

 I am assuming the problem lies on the client side and not on the server
 side.  Any more ideas?  How can I see what is going on with the pulseaudio
 daemon when a remote client is trying to connect?

 br,
 Quinn


 On Sat, May 21, 2011 at 10:31 AM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 From what Colin says, the standard port is 4713 for pulseaudio.  As I said
 before all network ports are blocked except port 22 which is only for ssh
 connections.
 I should be able to tunnel port 4713 through ssh by doing this: ssh -L
 4713:localhost:4713 user@server.  Then I can tell pulseaudio to use the
 servers local port 4713 which is automatically forwarded to the client's
 local port 4713.  But from what pactl stat command is telling me, then
 port 4713 on the client side seems to be blocked as it is giving a
 connection refused.  I know the tunnelling works with ssh because I use
 vnc connections through ssh by ssh -L 5901:localhost:5901 user@server
 and that works perfectly with my vnc client and server solution.

 I am not sure if I can use pactl load-module module-protocol-native-tcp
 together with tunnelled tcp connections.  I need more details on how to
 that.

 btw, I can see 

Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-21 Thread Quinn Plattel
Hi,

Some more attempts.  I have now tried this:
client (session 1): stop pulseaudio
client (session 1): pulseaudio --system --high-priority -C

client (session 2): ssh -R 4000:localhost:4000 user@server
client (session 3): socat TCP-LISTEN:4000,fork
UNIX-CONNECT:/var/run/pulse/native

server: export PULSE_SERVER=localhost:4000
server: pactl stat

client (session 1) response (pulseaudio): E: protocol-native.c: protocol
error, kicking client

protocol error - how can we go deeper to debug the problem?

Pulseaudio version information:
server: 0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu14
client: 0.9.15-1maemo43+0m5

client pulseaudio modules loaded (pactl list|grep Name: module)
---
Name: module-native-protocol-unix
Name: module-simple-protocol-unix
Name: module-stream-restore
Name: module-rescue-streams
Name: module-suspend-on-idle
Name: module-augment-properties
Name: module-null-sink
Name: module-alsa-sink-old
Name: module-alsa-sink-volume
Name: module-alsa-source-old
Name: module-nokia-voice
Name: module-nokia-music
Name: module-nokia-record
Name: module-alsa-sink-old
Name: module-alsa-source-old
Name: module-bluetooth-discover
Name: module-combine
Name: module-esound-protocol-unix
Name: module-native-protocol-tcp
Name: module-policy-enforcement
Name: module-match
Name: module-cli
---

br,
Quinn

On Sat, May 21, 2011 at 11:29 AM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 I finally got some more details from pulseaudio.  I did this on the client:
 --
 # stop pulseaudio
 # pulseaudio --system --high-priority -C
 --

 Now, when I run pactl stat on the server, pulseaudio on the client
 reports:
 --
 E: client-ext.c: client-ext.c: Can't obtain command line
 E: protocol-native.c: protocol error, kicking client
 ---

 This is strange because pactl on the server side reports that the protocol
 version is the same on both the remote and the local side:

 --
 Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
 is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to localhost:4713...
 SHM possible: yes
 Protocol version: remote 16, local 16
 Negotiated SHM: no
 Connection failure: Connection terminated
 --

 Any ideas?

 br,
 Quinn



 On Sat, May 21, 2011 at 10:53 AM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 I found this message when I am trying to tunnel 4713 via ssh ssh -L
 4713:localhost:4713 user@server:
 
 bind: Address already in use
 channel_setup_fwd_listener: cannot listen to port: 4713
 Could not request local forwarding.
 

 BUT, this seems to work ssh -R 4713:localhost:4713 user@server (notice
 the -R parameter)

 So, it seems the forwarding direction has some say in this.  Forwarding
 from local to remote is not the right way, but forwarding from remote to
 local is the correct way.

 pactl stat also seems to get a bit futher this time with the correct
 tunnelling direction:
 -

 Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
 is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to localhost:4713...
  SHM possible: yes
 Protocol version: remote 16, local 16
 Negotiated SHM: no
 Connection failure: Connection terminated
 -

 So now we are down from connection refused to connection failure:
 connection terminated.

 If I attach an strace to the pulseaudio process then this happens when
 pactl stat tries to connect to it remotely:

 ---
 Process 1075 attached - interrupt to quit
 restart_syscall(... resuming interrupted call ...) = 1
 accept(57, 0, NULL) = 66
 fcntl64(66, F_GETFD)= 0
 fcntl64(66, F_SETFD, FD_CLOEXEC)= 0
 setsockopt(57, SOL_SOCKET, SO_PRIORITY, [6], 4) = 0
 setsockopt(57, SOL_TCP, TCP_NODELAY, [1], 4) = 0
 setsockopt(57, SOL_IP, IP_TOS, [16], 4) = 0
 fcntl64(66, F_GETFL)= 0x2 (flags O_RDWR)
 fcntl64(66, F_SETFL, O_RDWR|O_NONBLOCK) = 0
 fstat64(66, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
 getpeername(66, {sa_family=AF_INET, sin_port=htons(54205),
 sin_addr=inet_addr(127.0.0.1)}, [16]) = 0
 getpeername(66, {sa_family=AF_INET, sin_port=htons(54205),
 sin_addr=inet_addr(127.0.0.1)}, [16]) = 0
 setsockopt(66, SOL_SOCKET, SO_RCVBUF, [16344], 4) = 0
 setsockopt(66, SOL_SOCKET, SO_SNDBUF, [16344], 4) = 0
 getsockname(66, 

Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-21 Thread Quinn Plattel
Hi,

I did a LANG=C pulseaudio --system --high-priority -
/root/pulseverbose.log 21 on the client to write a detailed log file.
Here is the results when the remote client tries to connect:
-
I: client.c: Created 9 Native client (TCP/IP client from 127.0.0.1:50604)
I: protocol-native.c: Client authenticated anonymously.
E: client-ext.c: client-ext.c: Can't obtain command line
D: client-ext.c: new/modified client (idx=9) (Native client (TCP/IP client
from 127.0.0.1:50604)|noid|0|0|noexe|noarg|noargs)
D: protocol-native.c: Protocol version: remote 16, local 16
D: protocol-native.c: SHM possible: no
D: protocol-native.c: Negotiated SHM: no
E: protocol-native.c: protocol error, kicking client
I: client.c: Freed 9 Native client (TCP/IP client from 127.0.0.1:50604)
D: client-ext.c: client removed (idx=9)
-

Still have not got further to solving the protocol error problem.  Maybe
something to do with SHM?

br,
Quinn

On Sat, May 21, 2011 at 5:14 PM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 Some more attempts.  I have now tried this:
 client (session 1): stop pulseaudio
 client (session 1): pulseaudio --system --high-priority -C

 client (session 2): ssh -R 4000:localhost:4000 user@server
 client (session 3): socat TCP-LISTEN:4000,fork
 UNIX-CONNECT:/var/run/pulse/native

 server: export PULSE_SERVER=localhost:4000
 server: pactl stat

 client (session 1) response (pulseaudio): E: protocol-native.c: protocol
 error, kicking client

 protocol error - how can we go deeper to debug the problem?

 Pulseaudio version information:
 server: 0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu14
 client: 0.9.15-1maemo43+0m5

 client pulseaudio modules loaded (pactl list|grep Name: module)
 ---
 Name: module-native-protocol-unix
 Name: module-simple-protocol-unix
 Name: module-stream-restore
 Name: module-rescue-streams
 Name: module-suspend-on-idle
 Name: module-augment-properties
 Name: module-null-sink
 Name: module-alsa-sink-old
 Name: module-alsa-sink-volume
 Name: module-alsa-source-old
 Name: module-nokia-voice
 Name: module-nokia-music
 Name: module-nokia-record
 Name: module-alsa-sink-old
 Name: module-alsa-source-old
 Name: module-bluetooth-discover
 Name: module-combine
 Name: module-esound-protocol-unix
 Name: module-native-protocol-tcp
 Name: module-policy-enforcement
 Name: module-match
 Name: module-cli
 ---

 br,
 Quinn


 On Sat, May 21, 2011 at 11:29 AM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 I finally got some more details from pulseaudio.  I did this on the
 client:
 --
 # stop pulseaudio
 # pulseaudio --system --high-priority -C
 --

 Now, when I run pactl stat on the server, pulseaudio on the client
 reports:
 --
 E: client-ext.c: client-ext.c: Can't obtain command line
 E: protocol-native.c: protocol error, kicking client
 ---

 This is strange because pactl on the server side reports that the protocol
 version is the same on both the remote and the local side:

 --
 Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
 is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to localhost:4713...
 SHM possible: yes
 Protocol version: remote 16, local 16
 Negotiated SHM: no
 Connection failure: Connection terminated
 --

 Any ideas?

 br,
 Quinn



 On Sat, May 21, 2011 at 10:53 AM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 I found this message when I am trying to tunnel 4713 via ssh ssh -L
 4713:localhost:4713 user@server:
 
 bind: Address already in use
 channel_setup_fwd_listener: cannot listen to port: 4713
 Could not request local forwarding.
 

 BUT, this seems to work ssh -R 4713:localhost:4713 user@server (notice
 the -R parameter)

 So, it seems the forwarding direction has some say in this.  Forwarding
 from local to remote is not the right way, but forwarding from remote to
 local is the correct way.

 pactl stat also seems to get a bit futher this time with the correct
 tunnelling direction:
 -

 Using shared memory pool with 1024 slots of size 64.0 KiB each, total
 size is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to localhost:4713...
  SHM possible: yes
 Protocol version: remote 16, local 16
 Negotiated SHM: no
 Connection failure: Connection terminated
 -


Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-21 Thread Colin Guthrie
Hi,

I think you're maybe getting a little confused by client and server in
terms of how things work here (perhaps not, as I've not thoroughly read
all the many posts in this thread).

As I know how to do what you want to do, I'll just write the
instructions here:


1. Start of on the machine you want to hear the sound on. This will be
your local terminal. It's the server in this case as it's running the
PulseAudio server. You do not need to run a PulseAudio server on the
other machine, just use the PulseAudio client library for audio (either
directly or via alsa-pulse plugin).

2. Open a terminal and type: xprop -root | grep PULSE_COOKIE Ensure
this has some output. If it does not then chances are the
start-pulseaudio-x11 script was not run at login (or you have
restarted your PA server after logging in). Try just running
start-pulseaudio-x11 and see if that fixes it.

3. Ensure that the tcp native protocol module is loaded. pacmd
list-modules | grep module-native-protocol-tcp If it is not loaded,
then simply type: pactl load-module module-native-protocol-tcp

4. SSH to your other machine:  ssh -X -R4713:localhost:4713 OTHERMACHINE

If you get a warning:
Warning: remote port forwarding failed for listen port 4713
then chances are there is a PA daemon running there already, or you've
SSH'ed twice. If the former, just change the *first* instance of 4713 to
a random number of your choice (1024).

5. On this remote machine, check your cookie is available via the xprop
command show in step 2. If X11 forwarding is working properly, it should
show up fine.

6. Set the PULSE_SERVER variable to the forwarded tunnel port.
 export PULSE_SERVER=localhost:4713
(or the port number you picked in step 4 if different)

7. Confirm it's all working: PULSE_LOG=99 pactl stat


Done!!

So in this setup, the cookie used for authentication is forwarded
automatically via piggy backing on to X11 connections but as you cannot
connect directly to the machine we've had to override the PULSE_SERVER
variable to go over the SSH tunnel.

Below is the output from my session where I run these exact commands
(note the host name in the pactl stat at the end).

HTHs

Col


[colin@jimmy ~]$ hostname
jimmy
[colin@jimmy ~]$ xprop -root | grep PULSE_COOKIE
PULSE_COOKIE(STRING) = 71eb0d3d53819c42957ce9..
[colin@jimmy ~]$ pacmd list-modules | grep module-native-protocol-tcp
name: module-native-protocol-tcp
[colin@jimmy ~]$ ssh -X -R :localhost:4713 mediacentre
Last login: Sat May 21 18:51:40 2011 from jimmy.local
[media@(Media)centre ~]$ xprop -root | grep PULSE_COOKIE
PULSE_COOKIE(STRING) = 71eb0d3d53819c42957ce9..
[media@(Media)centre ~]$ export PULSE_SERVER=localhost:
[media@(Media)centre ~]$ PULSE_LOG=99 pactl stat
Using shared memory pool with 1024 slots of size 64.0 KiB each, total
size is 64.0 MiB, maximum usable slot size is 65496
Trying to connect to localhost:...
SHM possible: no
Protocol version: remote 21, local 16
Negotiated SHM: no
Currently in use: 2 blocks containing 149.9 KiB bytes total.
Allocated during whole lifetime: 1220055 blocks containing 1.6 GiB bytes
total.
Sample cache size: 86.0 KiB
User name: colin
Host Name: jimmy
Server Name: pulseaudio
Server Version: 1.0.0-0.354.1.csg1
Default Sample Specification: s16le 2ch 44100Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-_00_1b.0.analog-stereo
Default Source: alsa_input.pci-_00_1b.0.analog-stereo
Cookie: d7756be2
[media@(Media)centre ~]$



-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-20 Thread Quinn Plattel
HI,

Thanks for info, but I don't think it is the solution I am interested in. I
have to use ssh as my server is behind a firewall
and ssh is the only way to contact it.  The other thing is I would like to
use vnc to work with my server.

Right now, I am doing this:

client: ssh -L 5901:localhost:5901 user@server
client: vncviewer localhost:5901

Of course vnc, does not support sound so I was hoping that I can use ssh
tunnels to redirect the sound somehow.

I did some xprop -root|grep PULSE tests.  If I ssh to my server from an
Ubuntu Linux machine, then I can see four PULSE variables in use.
If I do the xprop test from Maemo Linux, then it shows no PULSE variables.
If I ssh from there to my server with the -X parameter, then there is also
no PULSE variables shown.
I can confirm that pulseaudio is working on Maemo by doing a mplayer -ao
pulse some-sound-file.wav

br,
Quinn


On Fri, May 20, 2011 at 5:48 PM, Colin Guthrie gm...@colin.guthr.ie wrote:

 Hi,

 'Twas brillig, and Quinn Plattel at 20/05/11 15:52 did gyre and gimble:
  I am currently trying to attempt to redirect pulse audio sound from a
  server to a client through ssh.  I am bit unclear on what the correct
  way is of doing it.

 Firstly, I wrote up how our X11 piggy backing stuff work here:


 http://colin.guthr.ie/2009/08/sound-on-linux-is-confusing-defuzzing-part-2-pulseaudio/


 Technically we do not tunnel over SSH directly (this can of course be
 done, but not automatically as SSH does not know about PA in the same
 way it knows about X11). We can however piggy back on the X11 forwarding
 built into SSH for our authentication (cookie) and server connection
 strings.

 If this is on a private network (direct routing) then the built in way
 is the best, but it doesn't go over SSH. You just need to ensure the
 machine you're sshing from has the netwrok protocol module loaded into
 PA (pactl load-module module-protocol-native-tcp, or put it in your
 default.pa) and make sure port 4713/tcp is open for external connections.

 Also ensure that module-x11-publish is loaded on the client side and you
 should get some interesting results from xprop -root | grep PULSE.

 Then when you ssh with x11 forwarding running the xprop command on the
 remote machine should show you the same results.



 If you cannot use the direct connection, just setup TCP tunnels in your
 SSH config and then hack the PULSE_SERVER property or env var on the
 remote machine to point to e.g. localhost:4713 which will actually be a
 tunnel back to localhost:4713 on the remote machine. The PULSE_COOKIE
 stuff already forwarded should be enough for auth.

 For debugging connections:

 PULSE_LOG=99 pactl stat

 This shows you e.g. the server name it's trying to connect to etc.


 Hope that helps (although I wrote it really quick so apologies if it
 doesn't! I'll clarify later if needs be :D)

 Col


 --

 Colin Guthrie
 gmane(at)colin.guthr.ie
 http://colin.guthr.ie/

 Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
 Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

 ___
 pulseaudio-discuss mailing list
 pulseaudio-discuss@mail.0pointer.de
 https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss




-- 
Best regards/Med venlig hilsen,
Quinn Plattel
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-20 Thread Quinn Plattel
Hi,

This is interesting:

client: ssh -XL 4713:localhost:4713 user@server
server: PULSE_LOG=99 pactl stat

Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
is 64.0 MiB, maximum usable slot size is 65472
Trying to connect to
/home/quinn/.pulse/1ffe0fd6b5c9262aaa374e734c2cc8d0-runtime/native...
SHM possible: yes
Protocol version: remote 16, local 16
Negotiated SHM: yes
Currently in use: 1 blocks containing 63.9 KiB bytes total.
Allocated during whole lifetime: 15741 blocks containing 81.5 MiB bytes
total.
Sample cache size: 0 B
User name: quinn
Host Name: server
Server Name: pulseaudio
Server Version: 0.9.21-63-gd3efa-dirty
Default Sample Specification: s16le 2ch 44100Hz
Default Channel Map: front-left,front-right
Default Sink: auto_null
Default Source: auto_null.monitor
Cookie: 6ccbf517

server: export PULSE_SERVER=localhost:4713
server: PULSE_LOG=99 pactl stat
---
Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
is 64.0 MiB, maximum usable slot size is 65472
Trying to connect to localhost:4713...
connect(): Connection refused
Connection failure: Connection refused
---

Ideas?

Quinn

On Fri, May 20, 2011 at 5:48 PM, Colin Guthrie gm...@colin.guthr.ie wrote:

 Hi,

 'Twas brillig, and Quinn Plattel at 20/05/11 15:52 did gyre and gimble:
  I am currently trying to attempt to redirect pulse audio sound from a
  server to a client through ssh.  I am bit unclear on what the correct
  way is of doing it.

 Firstly, I wrote up how our X11 piggy backing stuff work here:


 http://colin.guthr.ie/2009/08/sound-on-linux-is-confusing-defuzzing-part-2-pulseaudio/


 Technically we do not tunnel over SSH directly (this can of course be
 done, but not automatically as SSH does not know about PA in the same
 way it knows about X11). We can however piggy back on the X11 forwarding
 built into SSH for our authentication (cookie) and server connection
 strings.

 If this is on a private network (direct routing) then the built in way
 is the best, but it doesn't go over SSH. You just need to ensure the
 machine you're sshing from has the netwrok protocol module loaded into
 PA (pactl load-module module-protocol-native-tcp, or put it in your
 default.pa) and make sure port 4713/tcp is open for external connections.

 Also ensure that module-x11-publish is loaded on the client side and you
 should get some interesting results from xprop -root | grep PULSE.

 Then when you ssh with x11 forwarding running the xprop command on the
 remote machine should show you the same results.



 If you cannot use the direct connection, just setup TCP tunnels in your
 SSH config and then hack the PULSE_SERVER property or env var on the
 remote machine to point to e.g. localhost:4713 which will actually be a
 tunnel back to localhost:4713 on the remote machine. The PULSE_COOKIE
 stuff already forwarded should be enough for auth.

 For debugging connections:

 PULSE_LOG=99 pactl stat

 This shows you e.g. the server name it's trying to connect to etc.


 Hope that helps (although I wrote it really quick so apologies if it
 doesn't! I'll clarify later if needs be :D)

 Col


 --

 Colin Guthrie
 gmane(at)colin.guthr.ie
 http://colin.guthr.ie/

 Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
 Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

 ___
 pulseaudio-discuss mailing list
 pulseaudio-discuss@mail.0pointer.de
 https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss

___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-20 Thread Quinn Plattel
Here is pactl stat on the client side:

PULSE_LOG=99 pactl stat
-
Using private memory pool with 1024 slots of size 16,0 KiB each, total size
is 16,0 MiB, maximum usable slot size is 16344
Trying to connect to
/home/user/.pulse/fbd5d27658d3fcf30cb25bf800531799:runtime/native...
connect(): No such file or directory (2)
Trying to connect to /var/run/pulse/native...
SHM possible: no
Protocol version: remote 16, local 16
Negotiated SHM: no
Currently in use: 1 blocks containing 16,0 KiB bytes total.
Allocated during whole lifetime: 263989 blocks containing 231,3 MiB bytes
total.
Sample cache size: 0 B
User name: pulse
Host Name: Nokia-N900
Server Name: pulseaudio
Server Version: 0.9.15
Default Sample Specification: s16le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: sink.music
Default Source: source.record
Cookie: 26e54bb2
-

br,
Quinn

On Fri, May 20, 2011 at 6:58 PM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 This is interesting:

 client: ssh -XL 4713:localhost:4713 user@server
 server: PULSE_LOG=99 pactl stat
 
 Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
 is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to
 /home/quinn/.pulse/1ffe0fd6b5c9262aaa374e734c2cc8d0-runtime/native...
 SHM possible: yes
 Protocol version: remote 16, local 16
 Negotiated SHM: yes
 Currently in use: 1 blocks containing 63.9 KiB bytes total.
 Allocated during whole lifetime: 15741 blocks containing 81.5 MiB bytes
 total.
 Sample cache size: 0 B
 User name: quinn
 Host Name: server
 Server Name: pulseaudio
 Server Version: 0.9.21-63-gd3efa-dirty
 Default Sample Specification: s16le 2ch 44100Hz
 Default Channel Map: front-left,front-right
 Default Sink: auto_null
 Default Source: auto_null.monitor
 Cookie: 6ccbf517
 
 server: export PULSE_SERVER=localhost:4713
 server: PULSE_LOG=99 pactl stat
 ---
 Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
 is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to localhost:4713...
 connect(): Connection refused
 Connection failure: Connection refused
 ---

 Ideas?

 Quinn

 On Fri, May 20, 2011 at 5:48 PM, Colin Guthrie gm...@colin.guthr.iewrote:

 Hi,

 'Twas brillig, and Quinn Plattel at 20/05/11 15:52 did gyre and gimble:
  I am currently trying to attempt to redirect pulse audio sound from a
  server to a client through ssh.  I am bit unclear on what the correct
  way is of doing it.

 Firstly, I wrote up how our X11 piggy backing stuff work here:


 http://colin.guthr.ie/2009/08/sound-on-linux-is-confusing-defuzzing-part-2-pulseaudio/


 Technically we do not tunnel over SSH directly (this can of course be
 done, but not automatically as SSH does not know about PA in the same
 way it knows about X11). We can however piggy back on the X11 forwarding
 built into SSH for our authentication (cookie) and server connection
 strings.

 If this is on a private network (direct routing) then the built in way
 is the best, but it doesn't go over SSH. You just need to ensure the
 machine you're sshing from has the netwrok protocol module loaded into
 PA (pactl load-module module-protocol-native-tcp, or put it in your
 default.pa) and make sure port 4713/tcp is open for external connections.

 Also ensure that module-x11-publish is loaded on the client side and you
 should get some interesting results from xprop -root | grep PULSE.

 Then when you ssh with x11 forwarding running the xprop command on the
 remote machine should show you the same results.



 If you cannot use the direct connection, just setup TCP tunnels in your
 SSH config and then hack the PULSE_SERVER property or env var on the
 remote machine to point to e.g. localhost:4713 which will actually be a
 tunnel back to localhost:4713 on the remote machine. The PULSE_COOKIE
 stuff already forwarded should be enough for auth.

 For debugging connections:

 PULSE_LOG=99 pactl stat

 This shows you e.g. the server name it's trying to connect to etc.


 Hope that helps (although I wrote it really quick so apologies if it
 doesn't! I'll clarify later if needs be :D)

 Col


 --

 Colin Guthrie
 gmane(at)colin.guthr.ie
 http://colin.guthr.ie/

 Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
 Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

 ___
 pulseaudio-discuss mailing list
 pulseaudio-discuss@mail.0pointer.de
 https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss







-- 
Best regards/Med venlig hilsen,
Quinn Plattel
___
pulseaudio-discuss mailing list

Re: [pulseaudio-discuss] How to redirect pulse audio through ssh?

2011-05-20 Thread Fred Frigerio
Have you tried  redirecting the port in SSH? Then you get the native PA with
SSH. I am not sure if there is some standard port.

Fred Frigerio



On Fri, May 20, 2011 at 1:01 PM, Quinn Plattel qie...@gmail.com wrote:

 Here is pactl stat on the client side:


 PULSE_LOG=99 pactl stat
 -
 Using private memory pool with 1024 slots of size 16,0 KiB each, total size
 is 16,0 MiB, maximum usable slot size is 16344
 Trying to connect to
 /home/user/.pulse/fbd5d27658d3fcf30cb25bf800531799:runtime/native...
 connect(): No such file or directory (2)
 Trying to connect to /var/run/pulse/native...
 SHM possible: no

 Protocol version: remote 16, local 16
 Negotiated SHM: no
 Currently in use: 1 blocks containing 16,0 KiB bytes total.
 Allocated during whole lifetime: 263989 blocks containing 231,3 MiB bytes
 total.

 Sample cache size: 0 B
 User name: pulse
 Host Name: Nokia-N900
 Server Name: pulseaudio
 Server Version: 0.9.15
 Default Sample Specification: s16le 2ch 48000Hz

 Default Channel Map: front-left,front-right
 Default Sink: sink.music
 Default Source: source.record
 Cookie: 26e54bb2
 -

 br,
 Quinn


 On Fri, May 20, 2011 at 6:58 PM, Quinn Plattel qie...@gmail.com wrote:

 Hi,

 This is interesting:

 client: ssh -XL 4713:localhost:4713 user@server
 server: PULSE_LOG=99 pactl stat
 
 Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
 is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to
 /home/quinn/.pulse/1ffe0fd6b5c9262aaa374e734c2cc8d0-runtime/native...
 SHM possible: yes
 Protocol version: remote 16, local 16
 Negotiated SHM: yes
 Currently in use: 1 blocks containing 63.9 KiB bytes total.
 Allocated during whole lifetime: 15741 blocks containing 81.5 MiB bytes
 total.
 Sample cache size: 0 B
 User name: quinn
 Host Name: server
 Server Name: pulseaudio
 Server Version: 0.9.21-63-gd3efa-dirty
 Default Sample Specification: s16le 2ch 44100Hz
 Default Channel Map: front-left,front-right
 Default Sink: auto_null
 Default Source: auto_null.monitor
 Cookie: 6ccbf517
 
 server: export PULSE_SERVER=localhost:4713
 server: PULSE_LOG=99 pactl stat
 ---
 Using shared memory pool with 1024 slots of size 64.0 KiB each, total size
 is 64.0 MiB, maximum usable slot size is 65472
 Trying to connect to localhost:4713...
 connect(): Connection refused
 Connection failure: Connection refused
 ---

 Ideas?

 Quinn

 On Fri, May 20, 2011 at 5:48 PM, Colin Guthrie gm...@colin.guthr.iewrote:

 Hi,

 'Twas brillig, and Quinn Plattel at 20/05/11 15:52 did gyre and gimble:
  I am currently trying to attempt to redirect pulse audio sound from a
  server to a client through ssh.  I am bit unclear on what the correct
  way is of doing it.

 Firstly, I wrote up how our X11 piggy backing stuff work here:


 http://colin.guthr.ie/2009/08/sound-on-linux-is-confusing-defuzzing-part-2-pulseaudio/


 Technically we do not tunnel over SSH directly (this can of course be
 done, but not automatically as SSH does not know about PA in the same
 way it knows about X11). We can however piggy back on the X11 forwarding
 built into SSH for our authentication (cookie) and server connection
 strings.

 If this is on a private network (direct routing) then the built in way
 is the best, but it doesn't go over SSH. You just need to ensure the
 machine you're sshing from has the netwrok protocol module loaded into
 PA (pactl load-module module-protocol-native-tcp, or put it in your
 default.pa) and make sure port 4713/tcp is open for external
 connections.

 Also ensure that module-x11-publish is loaded on the client side and you
 should get some interesting results from xprop -root | grep PULSE.

 Then when you ssh with x11 forwarding running the xprop command on the
 remote machine should show you the same results.



 If you cannot use the direct connection, just setup TCP tunnels in your
 SSH config and then hack the PULSE_SERVER property or env var on the
 remote machine to point to e.g. localhost:4713 which will actually be a
 tunnel back to localhost:4713 on the remote machine. The PULSE_COOKIE
 stuff already forwarded should be enough for auth.

 For debugging connections:

 PULSE_LOG=99 pactl stat

 This shows you e.g. the server name it's trying to connect to etc.


 Hope that helps (although I wrote it really quick so apologies if it
 doesn't! I'll clarify later if needs be :D)

 Col


 --

 Colin Guthrie
 gmane(at)colin.guthr.ie
 http://colin.guthr.ie/

 Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
 Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

 ___
 pulseaudio-discuss mailing list