🚀 New Features
ISSC desktop streaming
The ISSC desktop plugin was adapted to work correctly with ISL AlwaysOn. The ISSC ZRLE codec was fully rewritten with a simpler and clearer implementation that improves performance of desktop sharing and allows future enhancements. Cursor grabbing with the polling driver was redesigned to properly display text input cursors at high DPI settings.
Region sharing was improved by removing the need for a proxy window. ISSC now uses the window provided by the user, improving the accuracy of region streaming.
Whiteboard handling was updated across all platforms. The whiteboard is now refreshed before showing or hiding, fixing flickering after clearing and restarting. On Windows, native GDI functions are now used, improving drawing performance.
Improved SSL compatibility with SNI
AutoTransport methods (wsstun-direct, https-proxy, etc.) now include SNI (Server Name Indication) in the SSL handshake. This improves compatibility with third-party services such as Cloudflare.
Increase timeout on “watcher” watchdog thread
The watchdog implementation on Windows was updated with:
- updated timeouts
- added log for thread IDs
- added NOX on failed thread create
- removed use of the
rand function that uses enter critical section
The time for the unresponsive scheduler check is 2.5 min (previously 2 min). The time for the unresponsive watcher check is now 10 min (previously 2 min). We now also report the WD count that was reached when the watchdog crashed.
Upload only 2% of watchdog crash reports
In the previous version, all ISL AlwaysOn watchdog crashes were uploaded to ISL Conference Proxy, but they did not contain enough useful information. We have limited watchdog crash report uploads to 2% of reported crashes to the ISL Conference Proxy.
ECDH algorithm logging
Log lines now include the ecdh_ctx key, indicating which algorithm was used to establish the shared secret.
Replace islhtml_filter_and_escape with implementation in common code
Per-product specific text escaping functionality was moved to a unified implementation of text escaping.
Update Mbedtls to 2.28.10
Internal mbedTLS library was updated to version 2.28.10.
Upgrade to libdatachannel-0.22.6 and libjuice-1.5.9
The libdatachannel and libjuice libraries were updated to the latest versions (libdatachannel-0.22.6 and libjuice-1.5.9).
Upgrade zlib to 1.3.1
The zlib library that is used in the ISL AlwaysOn application was upgraded to version 1.3.1.
🐞 Bug Fixes
Update libjpeg turbo to 3.1.0
In certain cases, desktop streaming stopped working. The operator log showed an issue with JPEG decoding due to incorrect JPEG encoding on the streaming side of the sent screen update, which caused the streaming to stop. libjpeg-turbo was updated to version 3.1.0 and the issue with JPEG decoding was resolved.
Increase delay when injecting keys on Windows
Users experienced an issue when using the “Paste (simulate typing)” feature while in session, as the pasted characters were not the same as they were in the shared clipboard. The functionality was redesigned and the issue is no longer reproducible.
Fix ISL AlwaysOn clean command
The clean and clean_silent commands were not working when uninstalling ISL AlwaysOn. The uninstaller froze and granted connections were not removed. The functionality was redesigned, the commands are now working correctly, and user grants will be removed during uninstall if either of the clean commands is supplied.
Always enable TLS when opening AT MUX channel
In the previous version, some MUX connection channels were not protected by a TLS session. A TLS session is now enabled on all MUX channels.
Black screen status not updating instantly
Users experienced an issue where sometimes the Black screen status was not updated instantly upon enabling or disabling the Black screen in session. The functionality was redesigned and the issue is no longer reproducible.
Key modifier remains set after injecting Unicode characters
In some cases, when operators were controlling the remote macOS computer and typing into the remote computer something that required modifier keys, after typing those modifiers could remain stuck. Handling of modifier keys was redesigned, and the keys are now correctly released after typing.
Fix querying for CPU features gcc
In some cases, the application crashed when checking for CPU features on Linux. Checking for CPU capabilities was redesigned, so the application will no longer crash.
Incorrect version display in executable details
ISL AlwaysOn was previously displaying incorrect version information when viewing the properties of plugin .dll files. The correct version is now shown.
Customized program name overlapped in the about window
In the ISL AlwaysOn about screen, the application name could overlap the logo in cases where customers specified a long name. The about screen was redesigned; the application name is now wrapped, meaning if it is too long, it will display the name in multiple rows.
Default ISL AlwaysOn directory still created when using custom installer defaults
If users had defined a customization for ISL AlwaysOn on Linux and it used a custom installation location, the default installation folder was still created. Handling of the custom installation location was redesigned; the default installation folder is no longer created.
Force screen refresh for Windows machines with no screen attached
Users experienced an issue where the remote computer’s screen did not refresh correctly when there was no screen attached to the computer. The functionality was redesigned and the issue is no longer reproducible.
Increase setup timeout and update check installed
Users experienced an issue where they were unable to enable restart & resume during a session. The issue was in the ISSC Daemon timeout being reached. This timeout was increased and should no longer cause inability to activate restart & resume.
Detect when running Windows Sandbox environment during connect procedure
Users experienced an issue with delays when connecting to ISL AlwaysOn computers in a Windows Sandbox environment. The functionality was redesigned and the issue is no longer reproducible.
Delay daemon init procedure on macOS
The ISSC Daemon init procedure was moved to a later stage because the ISSC daemon was initialized before flags were dumped. This improves the readability of the log and simplifies debugging.
macOS reports wrong architecture
Users experienced an issue where ISL AlwaysOn on Mac M-series computers with arm64 architectures, but running ISL programs with Rosetta, would report the Mac computers as having x86_64 architectures. The functionality was redesigned and the issue is no longer reproducible.
Change dots to underscores for filename on Linux
In previous versions, the filename version was delimited with dots. This caused an issue when the build number was less than 10, as the application opened as a text editor. The dots were replaced with underscores, and the application now always executes correctly.
Switch monitor handling to ISSC
Handling of monitor switching was ported to ISSC, which now prevents the application from crashing when the operator switches between monitors.
Skip monitor detect on virtual machines
In some cases, a “no monitors attached” driver was enabled when connecting to virtual machines. The application now checks if it’s being run on a virtual machine and skips the “no monitors attached” driver if it detects it’s running in a virtual machine.
Other fixes and improvements
Bug fixes, security updates, missing translations, and other general improvements.