1
Fork 0
Commit Graph

53 Commits

Author SHA1 Message Date
Juliusz Chroboczek b80e515eb0 Implement -udp command-line flag. 2021-08-06 18:35:15 +02:00
Juliusz Chroboczek 816b7a54df Restrict negotiation of downstream codecs, allow multiple profiles.
We now restrict the allowable codecs in the downstream direction,
which leads to a clean failure instead of a silent track.  We also
allow multiple profiles for a single codec.
2021-08-02 18:08:37 +02:00
Juliusz Chroboczek a5c97fd849 Add System permission.
This replaces the OverridePermissions method, and is communicated
to clients that can reliably and safely identify a system user.
2021-07-30 19:26:34 +02:00
Juliusz Chroboczek eedfaccaff Add locked and displayName to public-groups.json. 2021-07-16 20:01:54 +02:00
Juliusz Chroboczek 52a26327d7 Implement group status.
We now inform clients of the status of a group (locked, etc.).  Also
cleans up the handling of administrative messages, which solves the
issue of receiving "user" before "joined".
2021-07-16 19:51:54 +02:00
Juliusz Chroboczek 3e00bb4293 AV1 support. 2021-05-15 19:54:07 +02:00
Juliusz Chroboczek 6f9d7fc306 Scalable video coding (SVC). 2021-05-14 23:21:14 +02:00
Juliusz Chroboczek 3f3b245926 Fix profile-id for VP9. 2021-05-13 12:59:47 +02:00
Juliusz Chroboczek 26bf8a341a Don't send client parameters in delete message.
This avoids a race condition since the delete messages are sent
asynchronously.
2021-05-10 16:58:28 +02:00
Juliusz Chroboczek 795a40ceaf Simulcast. 2021-05-08 21:12:29 +02:00
Juliusz Chroboczek 99026c0e48 Implement option -udp-range. 2021-04-29 23:05:11 +02:00
Juliusz Chroboczek cd6920d7e2 Allow group.API() to fail. 2021-04-29 21:10:04 +02:00
Juliusz Chroboczek 3ba2394be7 Implement user statuses.
The server now maintains a set of statuses for each user that are not
interpreted by the server but communicated to the other members of the
group using 'user' messages.
2021-04-28 17:01:05 +02:00
Juliusz Chroboczek f0a39fca48 Send user permissions to client.
We now maintain the user list in the serverConnection.
2021-04-28 00:07:19 +02:00
Juliusz Chroboczek 189dfb4abe Export and document group.Description.
This is useful for people writing administrative interfaces.
2021-04-22 17:58:30 +02:00
Juliusz Chroboczek b660bc404c Attempt to negotiate stereo Opus audio. 2021-03-13 16:29:58 +01:00
Juliusz Chroboczek ea321be17a Make Kick part of the Client interface.
All clients implement Kick, no need for a separate interface.
2021-02-26 16:20:13 +01:00
Juliusz Chroboczek be2f2d7cb3 Fix typo in new client pushing code. 2021-02-15 13:43:10 +01:00
Juliusz Chroboczek fa625c693e Push clients synchronously.
Doing this asynchronously was racy -- under extreme circumstances, a
client could be deleted before it was added.
2021-02-14 16:46:15 +01:00
Juliusz Chroboczek c4e26b65b7 Tighten user check.
Don't allow a user with a wildcard password entry to use the same
username as a user with a specific entry even at the same privilege
level.
2021-02-06 23:32:42 +01:00
Juliusz Chroboczek 91c161e548 Don't cache group files for 5s.
A stat of a cached file is cheap, no need to micro-optimise.
2021-02-06 21:44:14 +01:00
Juliusz Chroboczek b4240c4505 Don't reuse API between peer connections.
This turns out to be incorrect when a MediaEngine is attached.
2021-02-04 21:03:17 +01:00
Juliusz Chroboczek a15915e8fc Tweak the autokick code. 2021-01-17 21:52:26 +01:00
Juliusz Chroboczek c769a4aad4 Add autokick option. 2021-01-17 21:29:07 +01:00
Juliusz Chroboczek 6098d4af9d Implement autolock. 2021-01-14 03:56:37 +01:00
Juliusz Chroboczek 2df05ca257 Fix typo in ReadPublicGroups. 2021-01-14 01:49:06 +01:00
Juliusz Chroboczek 98235afe06 Disallow unknown fields in group descriptions.
Make the de-facto "comment" and "contact" fields official.
2021-01-13 23:00:48 +01:00
Juliusz Chroboczek 61990ff1ef Check all group files on startup, not just the toplevel directory. 2021-01-13 22:56:43 +01:00
Juliusz Chroboczek 43ed55a055 Update group API after description change. 2021-01-04 01:41:34 +01:00
Juliusz Chroboczek a0418d26ec Send RTC configuration with joined message.
This avoids one HTTP request, and is potentially more flexible.
2020-12-28 02:55:19 +01:00
Juliusz Chroboczek d09c0f0a80 Make the value field of client messages carry arbitrary types. 2020-12-28 01:49:27 +01:00
Juliusz Chroboczek 5d38b0a231 Allow various codecs.
It is now possible to specify codecs other than VP8 and Opus.  This
turns out not to be very useful, since VP8 is the only codec supported
by all browsers (in violation of the WebRTC spec, which mandates support
for H.264), and there is no good reason to use anything other than Opus
for audio.
2020-12-26 19:46:37 +01:00
Juliusz Chroboczek d43a2b0104 Implement WallOps to send a warning to all operators. 2020-12-23 23:15:36 +01:00
Juliusz Chroboczek 66fb73d01e Relicense under the MIT licence. 2020-12-19 17:26:33 +01:00
Juliusz Chroboczek 2d07c5d317 Move to Pion v3 API. 2020-12-06 11:15:59 +01:00
Juliusz Chroboczek b134bfcf13 Improve error handling on join failure.
Solves the issue of groups with a name ending in "/".
2020-12-04 22:56:29 +01:00
Juliusz Chroboczek 27a2e45500 Implement /subgroups. 2020-12-02 19:47:32 +01:00
Juliusz Chroboczek b30d4fe537 Add delay after login failure. 2020-12-02 00:07:31 +01:00
Juliusz Chroboczek 0265df6331 Expire idle groups from memory.
Also get rid of dead groups, they're not useful.
2020-12-01 21:07:44 +01:00
Juliusz Chroboczek dc3256ca19 Remove left over debugging message. 2020-12-01 18:24:45 +01:00
Juliusz Chroboczek 6e5348101c Propagate kick originators. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek 4c0fd01258 Implement hashed passwords. 2020-11-29 22:17:51 +01:00
Juliusz Chroboczek 4b420e5bd6 Don't set permissions if clients overrides. 2020-11-29 16:42:42 +01:00
Juliusz Chroboczek 29bd67cc22 Implement subgroups. 2020-11-22 19:54:54 +01:00
Juliusz Chroboczek c1920e36b6 Increase size of SRTP replay window. 2020-11-03 00:58:21 +01:00
Juliusz Chroboczek 90ba4814c8 Discard old history entries. 2020-10-08 14:41:33 +02:00
Juliusz Chroboczek 31efabbefc Disable mDNS gathering by default. 2020-10-06 06:08:29 +02:00
Juliusz Chroboczek 9ce591e4c5 Override permissions for disk recording. 2020-10-01 13:40:15 +02:00
Juliusz Chroboczek 3bd9a1db4e Timestamp chat messages. 2020-09-30 00:54:12 +02:00
Juliusz Chroboczek 8399ee2c4a Implement group description. 2020-09-24 22:03:41 +02:00