[ 
https://issues.apache.org/jira/browse/GUACAMOLE-2050?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17941773#comment-17941773
 ] 

Mike Jumper commented on GUACAMOLE-2050:
----------------------------------------

This should probably be combined with GUACAMOLE-522 ("Support for WebUSB").

{quote}
usb-connect: Connect a USB device with ID and device info
usb-disconnect: Disconnect a device with specific ID
usb-data: Transfer data to/from USB devices
usb-list: List available/connected devices
usb-error: Report USB redirection errors
{quote}

It'd be good to leverage the existing stream/object concepts as much as 
possible to represent these devices. The {{filesystem}} instruction is probably 
a good example of this - an instruction that creates an object representation 
of a filesystem device, and then uses {{put}}/{{get}} instructions to address 
streams within that object (files).

One route might be to represent the USB hub as an object, and then each device 
as a stream on that object. Not sure how well that works (have not looked into 
USB as deeply as you have), but to me it seems clean in that only one new 
instruction would be required.

> USB Device Redirection
> ----------------------
>
>                 Key: GUACAMOLE-2050
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-2050
>             Project: Guacamole
>          Issue Type: New Feature
>          Components: guacamole-client, guacamole-server, RDP
>            Reporter: Alexander Leitner
>            Priority: Major
>
> Implement a system for connecting, disconnecting, and transferring data to 
> connected USB devices using webUSB.
> 1. Client-Side (Angular)
>  * Use WebUSB API to access USB devices from the browser
>  * Implement a USB device management UI in the sidebar
>  * Create mechanisms to connect/disconnect devices
>  * Build data transfer pipeline for USB device I/O
>  * Handle device permissions and user authorization
> 2. Protocol Layer
> Extend the Guacamole protocol with new instructions for the following:
> usb-connect: Connect a USB device with ID and device info
> usb-disconnect: Disconnect a device with specific ID
> usb-data: Transfer data to/from USB devices
> usb-list: List available/connected devices
> usb-error: Report USB redirection errors
> 3. RDP Integration
>  * Use FreeRDP's URBDRC (USB Redirection) channel for device redirection
>  * Handle device discovery, connection, and disconnection events
>  * Marshal device data between Guacamole protocol and RDP protocol



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to