jwetzell / docker-guacamole

A self-contained guacamole docker container for x64 and ARM. Remotely connect over SSH, RDP or VNC using HTML5.
https://hub.docker.com/r/oznu/guacamole/
GNU General Public License v3.0
104 stars 17 forks source link

Cannot enable sound #19

Closed ghost closed 3 months ago

ghost commented 1 year ago

Truth be told, I've never had sound but gave up whenever I saw the onzu build had been discontinued. I found this, updated just the image to be:

guacamole: # External web vnc container_name: guacamole image: jwetzell/guacamole:latest restart: unless-stopped ports:

I have a sound adapter and a volume slider, just no sound emits from the browser. Everything else works.

Here are logs, NOTE: The rejection was because I didn't actually log out then back in after changing the image, once I did that it was fine.

guaclogs.txt

jwetzell commented 1 year ago

I would always specify the version of the image to use (instead of latest). But i've been using 1.5.1-amd64 and have audio working with a Windows 10 VM and RDP. I'm not sure what you are RDP'ing into but the RDP server need to support audio redirection. I think there are also some connection options regarding audio not sure what they effect though.

ghost commented 1 year ago

Yeah it's set up standard rdp and when I use the rdp client I have audio.

ghost commented 1 year ago

I double checked and have nothing regarding sound disabled.

ghost commented 1 year ago

Also changed to the specific tag and no sound.

jwetzell commented 1 year ago

The only thing I can see is that your logs have some sort of WebSocket error with some HttpTunnel fallback and no audio stream picked up. Here is a snippet from my connection to RDP with working audio.

guacd[361]: INFO:   Loading keymap "en-us-qwerty" 23:29:15.075 [http-nio-8080-exec-1] 
INFO  o.a.g.tunnel.TunnelRequestService - User "<USERNAME>" connected to connection "32".
guacd[361]: INFO:   Connected to RDPDR 1.13 as client 0x0003
guacd[361]: INFO:   Connected to RDPDR 1.13 as client 0x0002
guacd[361]: INFO:   RDPDR user logged on
guacd[361]: INFO:   Accepted format: 16-bit PCM with 2 channels at 44100 Hz

and here is from your logs

guacd[593]: INFO:   Loading keymap "en-us-qwerty" 22:21:25.452 [http-nio-8080-exec-6] 
INFO  o.a.g.tunnel.TunnelRequestService - User "negativzeroe" connected to connection "1". 22:21:25.452 [http-nio-8080-exec-6] 
INFO  o.a.g.t.h.RestrictedGuacamoleHTTPTunnelServlet - Using HTTP tunnel (not WebSocket). Performance may be sub-optimal.
guacd[593]: INFO:   Connected to RDPDR 1.13 as client 0x0003
guacd[593]: INFO:   Connected to RDPDR 1.13 as client 0x0002
guacd[593]: INFO:   RDPDR user logged on
jwetzell commented 1 year ago

In the meanwhile I will continue trying to get it to break, trying may I know what OS you are running so I can try to setup a similar setup.

ghost commented 1 year ago

My host is Debian Bullseye - and I'm running the VM on kvm. Here is my xml from it. Note, When using the Windows RDP client (mstsc) I had sound prior to installing this sound card, I added it as a troubleshooting step based on something I read elsewhere which gave me a volume slider in guacamole (as opposed to a red X), so I'm partially there with that, just the sound doesn't emit lol. Also - I've already added my admin account and the "docker" account to sound, and the two pulse groups in /etc/group. win10.xml.md

ghost commented 1 year ago

Oh and regarding the websocket thing, it may be relevant to know I'm also using the linuxserver/swag container with this in nginx config (I checked the sample newest version and there is no change):

## Version 2021/05/18
# make sure that your dns has a cname set for guacamole and that your guacamole container is not using a base url

server {
listen 443 ssl;
listen [::]:443 ssl;

server_name guacamole.*;

include /config/nginx/ssl.conf;

client_max_body_size 0;

# enable for ldap auth, fill in ldap details in ldap.conf
#include /config/nginx/ldap.conf;

# enable for Authelia
#include /config/nginx/authelia-server.conf;

location / {
    # enable the next two lines for http auth
    #auth_basic "Restricted";
    #auth_basic_user_file /config/nginx/.htpasswd;

    # enable the next two lines for ldap auth
    #auth_request /auth;
    #error_page 401 =200 /ldaplogin;

    # enable for Authelia
    #include /config/nginx/authelia-location.conf;

    include /config/nginx/proxy.conf;
    include /config/nginx/resolver.conf;
    set $upstream_app guacamole;
    set $upstream_port 8080;
    set $upstream_proto http;
    proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    proxy_buffering off;
}
}

I've since added:

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        access_log off;

That seems to resolve the HTTP message but still no sound.

guacd[269]: INFO:       Creating new client for protocol "rdp"
guacd[269]: INFO:       Connection ID is "$7e80c761-af4b-46ac-8c7c-5bbfe34a0a71"
guacd[353]: INFO:       Security mode: NLA
guacd[353]: INFO:       Resize method: display-update
guacd[353]: INFO:       Clipboard line ending normalization: Preserve (none)
guacd[353]: INFO:       User "@f11c8991-5772-4c8f-8070-0f5281b849ad" joined connection "$7e80c761-af4b-46ac-8c7c-5bbfe34a0a71" (1 users now present)
guacd[353]: INFO:       Loading keymap "base"
guacd[353]: INFO:       Loading keymap "en-us-qwerty"
13:31:54.341 [http-nio-8080-exec-9] INFO  o.a.g.tunnel.TunnelRequestService - User "negativzeroe" connected to connection "1".guacd[353]: INFO:       Connected to RDPDR 1.13 as client 0x0003
guacd[353]: INFO:       Connected to RDPDR 1.13 as client 0x0002
guacd[353]: INFO:       RDPDR user logged on
ghost commented 1 year ago

Just following up on this. Not sure what else to do.

jwetzell commented 1 year ago

I haven't had time to do any sort of troubleshooting/debugging on this. I can confirm audio works using RDP from a Windows VM. I have not gotten audio to work on an Ubuntu VM using gnome-rdp. That's as far as I've gone.

ghost commented 1 year ago

Okay - just to clarify it is a windows vm, just running on KVM linux host (same host as docker stack).