[ 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)