243 Commits

Author SHA1 Message Date
Storm Dragon 704b1a9558 Removed unused captions code. 2026-07-09 11:15:35 -04:00
Storm Dragon 26c7808587 Started reworking skaldctl. Give room status along with room name. 2026-05-30 22:46:32 -04:00
Storm Dragon 0a149e51ef Chalkboard feature added. 2026-05-24 22:36:27 -04:00
Storm Dragon aac197ef54 lock and unlock should now broadcast to the hall. Users trying to enter if hall is locked should now get message indicating the hall is locked. Removed redundant start with options. Browser requests mic permissions, also there is a mute option in the ui itself, so this seemed superfluous 2026-05-22 02:10:50 -04:00
Storm Dragon e257b344d1 First pass at full fork pretty much complete. 2026-05-20 14:29:39 -04:00
Storm Dragon 6275e3adef Latest code. Working voice, still needs some ui cleanup and accessibility fixes but in decent shape. 2026-05-19 21:47:31 -04:00
Storm Dragon 965347cad4 Checkpoint audio-only Skald fork work 2026-05-18 13:06:57 -04:00
Storm Dragon a8ada950d5 Rename group package and defaults to halls 2026-05-17 22:37:38 -04:00
Storm Dragon bda0e548d3 Rebrand project as Skald 2026-05-17 22:16:08 -04:00
Storm Dragon f718385342 Fix typo in missing user error 2026-05-09 12:56:31 -04:00
Juliusz Chroboczek 122db74fb8 Use message passing for changing permissions.
We used to handle permission change commands by directly mutating
the permissions field from the source client's thread, which is
racy.  We now use message passing.

Thanks to Vinayak Mishra.
2026-04-30 00:50:22 +02:00
Juliusz Chroboczek 2b4952fcf1 Protect websocket against oversized messages.
The maximum message size of 1MB is probably overkill, but SDP
can grow pretty large.  Thanks to Vinayak Mishra.
2026-04-07 15:45:24 +02:00
Juliusz Chroboczek a217b7bbc4 Hierarchical tokens. 2025-08-01 15:07:34 +02:00
Juliusz Chroboczek e7162642a7 Clone Group.Data and Client.Data.
This avoids a race condition.  Thanks to git-lul.
2025-07-09 23:39:37 +02:00
Juliusz Chroboczek 3b83044d67 Implement ICE restarts for WHIP. 2025-03-10 13:43:10 +01:00
Juliusz Chroboczek 9892ddbc5e Add ETag support to WHIP server. 2025-03-08 22:45:28 +01:00
Juliusz Chroboczek 078332f73a Check ICE ufrag and pwd in WHIP PATCH requests. 2025-03-08 22:44:55 +01:00
Juliusz Chroboczek 8f0850d0f0 Upgrade to Pion v4. 2025-03-08 18:41:52 +01:00
Juliusz Chroboczek ef0201c94d Replace RTCPFeedback in down tracks.
We used to copy the RTCPFeeback field from the up track.  It is
more correct to regenerate it with the exact feedback types
that we expect.
2024-11-30 17:55:24 +01:00
Juliusz Chroboczek 07f4aab9b1 Add new "caption" permission.
It is required for displaying captions.
2024-11-08 15:22:41 +01:00
Juliusz Chroboczek 123d51e011 Implement selective clearchat. 2024-08-17 16:56:06 +02:00
Juliusz Chroboczek eb72069c9b Add id to chat messages. 2024-08-17 16:56:06 +02:00
Juliusz Chroboczek ee18b60226 Reduce server-side timeout. 2024-06-10 21:32:11 +02:00
Juliusz Chroboczek bc512462c7 Fix parsing of AddClient error.
NotAuthorisedError may unwrap to os.ErrNotExist.
2024-06-08 14:52:14 +02:00
Juliusz Chroboczek 4eaf6d058a Remove obsolete ErrAnonymousNotAuthorised. 2024-05-11 13:39:50 +02:00
Juliusz Chroboczek ea4086243b Use UTC dates in token issuedAt field. 2024-05-08 17:25:28 +02:00
Juliusz Chroboczek 1315084185 Implement message permission and shutup command. 2024-05-08 16:24:32 +02:00
Juliusz Chroboczek ea4f14ee0a Enforce clearchat permissions in the server.
It was only being enforced in the client.
2024-05-08 15:38:51 +02:00
Juliusz Chroboczek a76f225bc0 Implement command /identify. 2024-05-01 23:38:31 +02:00
Juliusz Chroboczek e7e8a9b555 Add method Addr to client. 2024-05-01 23:38:21 +02:00
Juliusz Chroboczek 2f5c21d161 Implement accessors for stateful tokens. 2024-05-01 22:39:48 +02:00
Juliusz Chroboczek 3409f5a27f Replace uses of os.IsExist and os.IsNotExist with errors.Is.
The former don't properly unwrap errors.
2024-04-14 13:34:32 +02:00
Juliusz Chroboczek 68887f13d5 Rename tokens.Edit to Extend. 2024-04-14 13:21:55 +02:00
Juliusz Chroboczek b8f7c68338 Return correct error message for invalid tokens. 2024-03-03 15:42:46 +01:00
Juliusz Chroboczek 89f947df1f Rework handling of authorisation errors.
We'd sometimes return "Internal server error" on authentication
failures.  This should be gone now.
2024-03-03 13:43:50 +01:00
Juliusz Chroboczek 29e006037c Allow proxyURL to contain a path.
We now support or reasonable values for proxyURL, such as "http:"
or "/galene".
2024-02-24 12:46:30 +01:00
Juliusz Chroboczek dc34350d8f Complete parsing of WHIP candidates. 2023-12-20 01:42:11 +01:00
Juliusz Chroboczek 002d519f91 Use a named type for trackAction kind. 2023-12-09 22:13:24 +01:00
Juliusz Chroboczek 1c042b55af Fix typo in error message. 2023-12-09 17:32:16 +01:00
Juliusz Chroboczek 00fbfafeeb Make unbounded channels explicit.
We used to have unbounded channels embedded within rtpconn
and webClient.  Make the structure explicit and testable.
2023-12-09 17:27:38 +01:00
Juliusz Chroboczek 1e050fa4e3 Implement the WHIP protocol. 2023-07-11 17:25:58 +02:00
Juliusz Chroboczek dc8a78be32 Add test for parseStatefulToken. 2023-05-04 03:32:44 +02:00
Juliusz Chroboczek 76066a1a10 Fix error handling in maketoken. 2023-05-04 03:31:09 +02:00
Juliusz Chroboczek 1879ec81ea Don't send empty version fields.
We used to send a null version field in every message.  Don't.
2023-04-29 19:59:36 +02:00
Juliusz Chroboczek 8775ce6406 Keep track of issuer and creation date in tokens. 2023-04-08 21:13:35 +02:00
Juliusz Chroboczek c501b76d2b Rework selection of simulcast tracks.
We used to hard-wire the rid identifiers.  We now assume that
the simulcast streams are ordered in decreasing order of quality.
2023-04-06 12:40:22 +02:00
Juliusz Chroboczek 4c9e00d874 Report username errors to client.
We now report ErrUsernameRequired and ErrDuplicateUsername
errors by setting the "error" field of messages.
2023-04-04 01:22:05 +02:00
Juliusz Chroboczek 8aa95f5e22 Add protocol messages for managing tokens. 2023-04-04 00:59:54 +02:00
Juliusz Chroboczek aa53b78b2c Distinguish between no username and empty username. 2023-04-03 22:58:38 +02:00
Juliusz Chroboczek a1c1345719 Server-side support for protocol 2.
The "time" field of messages is now a string in RFC 3339 format,
and there is a new "error" field in messages.
2023-04-03 22:58:38 +02:00