RDP Audio Support
See original GitHub issueFirst off sorry for the wall of text.
Short and to the point question does anyone have a functional RDP client with audio support for guacamole-lite they could share?
On the surface I think maybe guacamole-lite might not be passing file/audio output and input streams from guacd to the javascript client through the websocket tunnel. Though I am not sure, thus why I am reaching out.
I have been trying to reverse engineer audio support from the stock java client, and as far as I can tell they do not do anything special and the base guacamole-common should negotiate the additional InputStream needed for the raw PCM audio supported by modern browsers. In my custom app and the default java client I am using identical code for the client: https://cdn.jsdelivr.net/npm/guacamole-client@1.0.0/dist/guacamole-client.min.js
When negotiating the connection I am getting identical lines back from guacd with both my custom client/guacamole-lite and the stock java client, so I believe the audio= connectionstring parameters might be redundant as that happens regardless of if they are included or not:
guacd[8]: INFO: Accepted format: 16-bit PCM with 2 channels at 44100 Hz
guacd[8]: INFO: Accepted format: 16-bit PCM with 2 channels at 22050 Hz
From a debugging standpoint I have gone through and captured Guacamole.Tunnel.oninstruction
events client side and have noticed that specifically there are no audio
opcodes being sent to the client to process that are normally processed by this clientside:
https://github.com/apache/guacamole-client/blob/32b106b982dc74e71e1cbb3d2c5e0c5b9b9a8bab/guacamole-common-js/src/main/webapp/modules/Client.js#L884
From a due diligence standpoint I use Docker for development and deployment, if anyone is interested in helping out or debugging you can simply run this Docker container:
docker run --name taisun -d \
--restart always \
-p 3000:3000 \
-p 8000:8000 \
-v /var/run/docker.sock:/var/run/docker.sock \
taisun/webapp
If you hop on port 8000 the rdp client can be found under public/js/rdp.js
You can spinup an RDP client and a guacd instance from the web interface on port 3000 under VDI (no parameters are needed outside of the name)
Also just a side note I have functional audio in the VDI endpoints with xrdp and pulseaudio, I have tested them functional with multiple clients including stock guacamole client 1.0.0 and 1.1.0.
Another thing to mention is after this projects(guacamole-lite) inception Guacamole shifted all the audio tunneling code to raw PCM vs a mix of different mimetypes(ogg vorbis etc) in 0.9.9, not sure if that matters just bringing it up.
Issue Analytics
- State:
- Created 3 years ago
- Comments:5 (1 by maintainers)
this.sendOpCode(['audio']);
withthis.sendOpCode(['audio', 'audio/L16']);
Reference PR: https://github.com/vadimpronin/guacamole-lite/pull/32 Closing this issue , huge thanks to @cblk !!!