Proto commits in strukturag/nextcloud-spreed-signaling

These 19 commits are when the Protocol Buffers files have changed:

Commit:47d0e38
Author:Joachim Bauch
Committer:Joachim Bauch

Add per-room bandwidth limits.

Commit:daaf16b
Author:Joachim Bauch
Committer:Joachim Bauch

Move session id codec to separate package.

Commit:124c371
Author:Joachim Bauch
Committer:Joachim Bauch

Move SFU related code to separate packages. With that move GRPC client code to "grpc" package to break dependencies. Also introduce new "proxy" package with common proxy-related code.

Commit:f4fca4f
Author:Joachim Bauch
Committer:Joachim Bauch

Use microseconds instead of timestamppb object for session creation.

Commit:c161815
Author:Joachim Bauch
Committer:Joachim Bauch

Get transient data from other nodes on first room join.

Commit:68fd9b8
Author:Joachim Bauch
Committer:Joachim Bauch

Add per-room bandwidth limits.

Commit:042c842
Author:Joachim Bauch

Add per-room bandwidth limits.

Commit:9235b80
Author:Joachim Bauch
Committer:Joachim Bauch

Return connection / publisher tokens for remote publishers. This supports connecting to and subscribing streams from proxies that don't know the signaling server sending the request.

The documentation is generated from this commit.

Commit:96c81f8
Author:Joachim Bauch
Committer:Joachim Bauch

Return token for remote publishers.

Commit:5da0a5d
Author:Joachim Bauch
Committer:Joachim Bauch

Prepare internal APIs for multiple backend urls.

Commit:aaaf8cc
Author:Joachim Bauch

Check version of cluster nodes and log warning if different.

Commit:d610b0f
Author:Joachim Bauch
Committer:Joachim Bauch

Prepare internal APIs for multiple backend urls.

Commit:72e38b7
Author:Joachim Bauch

Prevent duplicate virtual sessions in participant update events. This can happen if these sessions are returned by Nextcloud and then the local session is added. Also fixes events in clustered scenarios where virtual sessions are available on on server but the update events are generated on a different one.

Commit:9aeb57d
Author:Joachim Bauch
Committer:Joachim Bauch

Encode session ids using protobufs. This will reduce their size and improve encoding / decoding performance. Also fixes GO-2024-3106 (Stack exhaustion in Decoder.Decode in encoding/gob).

Commit:602452f
Author:Joachim Bauch
Committer:Joachim Bauch

Support resuming sessions that exist on a different Hub in the cluster.

Commit:deaa17a
Author:Joachim Bauch

Implement per-backend session limit for clusters.

Commit:95d5e50
Author:Joachim Bauch

Disconnect sessions with the same room session id synchronously. Previously there was a difference in the events being received by other sessions for the clustered case compared to the single-server case. Now the events / ordering are the same for both cases.

Commit:20cc51c
Author:Joachim Bauch
Committer:Joachim Bauch

grpc: Automatically detect if a target is the current server itself. This allows configuring the same list of targets for all instances without having to setup the "own" address differently for each server.

Commit:a0d3af1
Author:Joachim Bauch
Committer:Joachim Bauch

Add initial clustering support.