Type: New Feature
Affects Version/s: None
Fix Version/s: 1.2.0
I'm beating this horse back to life from the old issue tracker as I do believe this is a rather important feature.
I know it was stated a day or two ago in the old issue tracker that there was better justification necessary for this to be considered. Seeing as this appears to be supported by both Microsoft in their RD Gateway and in Citrix's gateway products since ~2014, there appears to be a fairly reasonable justification for such a feature already in the business community, as well as demand (seeing as Citrix made a fairly prominent announcement about it.)
We love Guacamole in terms of performance (even when most of our users opted to go the VNC route, despite having the RDP option made available to them), mobile device operation, ease of use and administration and the pure brain-dead simplicity of implementation and integration. (Thanks to the developer who wrote that installation script, we were zero to deployed and operating in less than 15 minutes, VM server spin-up included!)
That being said, we may be forced to abandon the whole infrastructure on nearly 500 devices (and growing fast) in favor of a solution that is not as efficient, yet provides one feature that we dearly need.
From my research (not as a coder, but serious DevOps experience) it's relatively trivial to craft and broadcast a magic packet in Java (A GitHub search yields several project with examples averaging about ~75 LOC, including sanity checking.) Adding in a sort of "timeout hold-off" should yield less than an additional 100 LOC, and user interface adjustments, probably another few dozen or so. (Semi-educated guess.) All that would be left then is to add an optional MAC address field to the proper table and connection form, maybe a checkbox to enable WOL.
If WOL is simply too hard to code into Guacamole, then a more expansive set of classes in the connection API would go a long way towards being able to develop an extension. (From what I can see of the API docs, there appears to be one call that would allow us to start the WOL process, but there are several others necessary, for example; being able to hold off the connection timeout while the remote station completes waking up. We do, after all, want this to be a seamless process to the end user.)
It seems to me that there are several reasonable use cases for such a feature, even if it is an extension and not a core component, though it seems this would probably be easier to merge into core as it would work more elegantly with some database integration, which I did not see in the API docs. (Admittedly, might not have looked closely enough, and I don't really code Java, so I'm not sure what's in that section.)
I do think this would go a long way in scoring a decent amount of points for this project. It seems like there are others out there who support such a feature, hacky as it may be in some products.