You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@guacamole.apache.org by mu...@tutanota.com.INVALID on 2021/09/03 14:10:03 UTC

Guacamole Session Recording Playback

Hi everyone,

I'm trying to develop guacamole-client but stucked at session recording playback. I want to save recordings at guacamole-client machine (not on guacd machine) and playback on that machine but I can't find any way to do this. I saw guacamole-playback-example but it uses a dumped file that's allready on guacamole-client machine. Can you give me advice about that.

Best Regards.

-Mücahit KURTLAR

Re: Guacamole Session Recording Playback

Posted by Nick Couchman <vn...@apache.org>.
On Fri, Sep 3, 2021 at 10:10 AM <mu...@tutanota.com.invalid> wrote:

> Hi everyone,
>
> I'm trying to develop guacamole-client but stucked at session recording
> playback. I want to save recordings at guacamole-client machine (not on
> guacd machine) and playback on that machine but I can't find any way to do
> this. I saw guacamole-playback-example but it uses a dumped file that's
> allready on guacamole-client machine. Can you give me advice about that.
>
>
There's currently not a way to save recordings using Guacamole Client - the
recording functionality is performed by guacd, as the user running guacd.

We've talked in the past about various ways to more tightly integrate the
recordings made by guacd into the Guacamole Client system, but no progress
has been made on that. If that's something you're trying to do, I can think
of a couple of possibilities that you could look into:
* Write some recording functionality in Guacamole Client, perhaps on the
Java side of things. This would likely involve intercepting the traffic
that goes between the end user (web browser) and guacd, and writing it off
to a file, similar to how guacd does it. It should be doable, and probably
pretty easily, as Guacamole Client already takes care of tunneling between
HTTP(S)/WS(S) and guacd, so it should just be a matter of making a copy of
the data that the tunnel is handling. There may be some logic that needs to
be thrown in to ignore certain things, but I would think this would be
doable. The only other thing I can think of, here, is that however you
implement it will need to be done in a "non-blocking" sort of way - so, the
code that makes the copy of that data and writes it out to disk will either
need to be robust enough that it doesn't interfere with the client <->
guacd conversation, or you'll want to buffer it in such a way that the
conversation can continue even if the writing out to disk is delayed,
fails, etc.
* Provide some level of integration between guacd's recordings and
Guacamole Client - some sort of tagging, or tracking of the recordings, and
ability for Guacamole Client to retrieve them. This would allow the
recordings to continue to be done by guacd, which is likely going to be
more resource efficient and less prone to delays/dropped data, but is going
to require some more creative thought as to how to make that integration
happen. There may need to be some additional conversation that happens
between guacd and Guacamole Client where the name and location of the file
is provided back to Guacamole Client so that it can store it somewhere, or
even some other sort of channel where Guacamole Client can request a list
of recordings.
* Mike also mentioned at one point the ability to record on the browser
side, so that users could essentially have their recordings instantly and
locally. This would likely be very resource intensive (browser is not going
to be efficient at this), and limited in terms of frame rate, amount of
data, etc.

-Nick