Captain's Log

Terminal7 1.1 - WebRTC signalling over SSH & CLI November 1, 2022

Hope this version finds you well. We’ve added two new big features and a few bug fixes. The version requires webexec upgrade so make sure your server are running webexec =>0.17.10.

WebRTC signalling over SSH

This one came from Rob and it’s about streamlining security by trickling ICE over SSH. Trickle ICE is the fastest way for two WebRTC peers to find each others. To support it we’ve added a new type of session, a hybrid one. Here’s how it flows:

The connect command first starts an SSH session. It then opens an SSH channel and tries to run /usr/local/bin/webexec accept. If webexec is not found it falls back to SSH for the rest of the session.

If the command succeeds T7 waits for webexec to send READY on the channel, signaling that a unix socket connection with the local agent is established. T7 then creates the offer and sends it over the SSH channel. It then receives the server’s answer and connection candidates start streaming in full duplex and the ICE is trickling. When the connection is established, the SSH session is closed and WebRTC rules the session.

CLI

TWR now has a bot that accepts a few simple commands:

help, add, connect, reset, gate, edit, hide, map, fortune.

We’ve refactored the GUI so that almost all actions are shortcuts to opening TWR and typing a command. For example, when you hit reset the bots gets the reset <gate_name> command.

Backend

We’re also releasing an improved webexec - Version 0.17.10. It adds printing the READY message when the accept commands establishes a connection with the local agent over a unix socket. To upgrade your server run:

bash -c "$(curl -sL https://get.webexec.sh)"

Testing

If you have an idea how to make T7 better, please talk to us on the discord server. If you find a problem with the new hybrid session please help us fix it by searching the bug in on our issues. If you found it please comment with your experience, If you haven’t found it, please feel free to open an issue.