Commit Graph
100 Commits
Author SHA1 Message Date
Joachim Bauch a05acc9cb4 Include available features in header of backend requests to Nextcloud.
The header "X-Spreed-Signaling-Features" will contain a comma-separated list
of feature flags.
2021-11-03 15:24:27 +01:00
Joachim Bauch 2f8e7f9f66 Return available features in header of backend responses.
The header "X-Spreed-Signaling-Features" will contain a comma-separated list
of feature flags.
2021-11-03 15:24:27 +01:00
Joachim Bauch 70b37364d3 Support separate permissions for publishing audio / video.
Clients with permission "publish-media" can publish any audio/video. Other
clients need to have "publish-audio" and/or "publish-video" to publish the
corresponding media types. For this the SDP in the offer is parsed to check
what will be sent.
2021-11-03 15:24:25 +01:00
Joachim Bauch 3b26003b12 Merge pull request #167 from strukturag/rtt-logging
Reduce RTT logging
2021-11-03 15:02:09 +01:00
Joachim Bauch 782503a141 Don't log RTT of proxy clients. 2021-11-03 14:56:51 +01:00
Joachim Bauch 42dc476033 Only log RTT of connections to proxy if larger than 500ms. 2021-11-03 14:56:25 +01:00
Joachim Bauch 31294aee1d Merge pull request #166 from strukturag/dependabot/github_actions/actions/checkout-2.4.0
Bump actions/checkout from 2.3.5 to 2.4.0
2021-11-03 08:27:19 +01:00
Joachim Bauch fb12b359e0 Merge pull request #163 from strukturag/dependabot/github_actions/actions/checkout-2.3.5
Bump actions/checkout from 2.3.4 to 2.3.5
2021-10-19 13:33:02 +02:00
Joachim Bauch 628abe470e Merge pull request #159 from strukturag/subscribe-internal-clients
Internal clients always may subscribe all streams.
2021-10-19 13:32:28 +02:00
Joachim Bauch fdf43a7787 Merge pull request #160 from strukturag/migrate-jwt
deps: Migrate to "github.com/golang-jwt/jwt".
2021-10-11 15:20:23 +02:00
Joachim Bauch e09022c78d deps: Migrate to "github.com/golang-jwt/jwt".
The previous "gopkg.in/dgrijalva/jwt-go.v3" is no longer maintained.
2021-10-11 14:02:57 +02:00
Joachim Bauch 1190856414 Merge pull request #158 from strukturag/dependabot/go_modules/github.com/nats-io/nats.go-1.13.0
Bump github.com/nats-io/nats.go from 1.12.3 to 1.13.0
2021-10-11 13:45:48 +02:00
Joachim Bauch c51276596b Internal clients always may subscribe all streams.
Follow-up to #133.
2021-10-11 13:44:54 +02:00
Joachim Bauch aeb7834ff7 Merge pull request #133 from strukturag/check-subscribe-call
Only allow subscribing if both users are in the same room and call.
2021-09-23 13:38:37 +02:00
Joachim Bauch a663dd43f9 Add option to allow subscribing of any streams (disabled by default). 2021-09-23 09:05:49 +02:00
Joachim Bauch b398591447 Only allow subscribing if both users are in the same room and call.
Previously it was possible to subscribe any stream if the session id of the
publisher was known.
2021-09-23 09:05:25 +02:00
Joachim Bauch 7a6f9577fe Merge pull request #154 from strukturag/dependabot/go_modules/github.com/nats-io/nats.go-1.12.3
Bump github.com/nats-io/nats.go from 1.12.1 to 1.12.3
2021-09-22 08:55:32 +02:00
Joachim Bauch 4530b91434 Merge pull request #153 from strukturag/ci-go-1.17
CI: Also test with Golang 1.17
2021-09-14 14:03:18 +02:00
Joachim Bauch 93a4bf1949 CI: Also test with Golang 1.17 2021-09-14 13:58:13 +02:00
Joachim Bauch 6d4c8bba20 Merge pull request #150 from strukturag/dependabot/go_modules/github.com/nats-io/nats.go-1.12.1
Bump github.com/nats-io/nats.go from 1.11.0 to 1.12.1
2021-09-13 09:12:33 +02:00
Joachim Bauch c0603d6b4d Merge pull request #144 from strukturag/dependabot/go_modules/github.com/prometheus/client_golang-1.11.0
Bump github.com/prometheus/client_golang from 1.10.0 to 1.11.0
2021-08-11 08:58:55 +02:00
Joachim Bauch 29cd282691 Merge pull request #99 from strukturag/prometheus-metrics
Add prometheus metrics
2021-08-10 10:08:50 +02:00
Joachim Bauch 4c77ae04ef Close publishers/subscribers if proxy session is closed. 2021-08-10 09:24:59 +02:00
Joachim Bauch 6841d1495f Fixup: don't decrement virtual sessions twice. 2021-08-10 08:50:41 +02:00
Joachim Bauch ce1b3fc6e2 Add more metrics on rooms / sessions / backends. 2021-08-10 08:50:41 +02:00
Joachim Bauch 5d431e5612 Lint prometheus stats. 2021-08-10 08:50:40 +02:00
Joachim Bauch 70f9f7ea91 Also track subscriber streams by type. 2021-08-10 08:50:40 +02:00
Joachim Bauch f758f8a5e7 Expose publisher streams by type through metrics. 2021-08-10 08:50:39 +02:00
Joachim Bauch c01caa94e6 Add prometheus metrics. 2021-08-10 08:50:39 +02:00
Joachim Bauch 300edddc5a Add github.com/prometheus/client_golang v1.10.0 2021-08-10 08:50:35 +02:00
Joachim Bauch dfad9307ce Merge pull request #143 from strukturag/override-country-continent-mapping
Support continent mapping overrides.
2021-08-10 08:49:36 +02:00
Joachim Bauch 7bf6fa903b Support continent mapping overrides.
This can be used for example to route all users on continent A to proxies
on continent B. Useful if no proxy exists on continent A and the global
selection chooses a non-ideal proxy.
2021-08-06 16:00:54 +02:00
Joachim Bauch ffb79c747c Add method "IsValidContinent". 2021-08-06 15:41:18 +02:00
Joachim Bauch 2ac58a3360 Merge pull request #140 from strukturag/stop-publishers-without-permissions
Stop publishers if session is no longer allowed to publish.
2021-08-05 12:21:10 +02:00
Joachim Bauch ed1c834a29 Stop publishers if session is no longer allowed to publish. 2021-08-05 12:15:26 +02:00
Joachim Bauch 64faa1c499 Merge pull request #138 from strukturag/dependabot/go_modules/github.com/google/uuid-1.3.0
Bump github.com/google/uuid from 1.2.0 to 1.3.0
2021-07-14 08:34:57 +02:00
Joachim Bauch 425b52c2c3 Merge pull request #134 from strukturag/body-on-redirect
Only include body in 307/308 redirects if going to same host.
2021-07-13 08:52:00 +02:00
Joachim Bauch 66bcf2468d Simplify request creation when getting capabilities. 2021-07-07 12:35:53 +02:00
Joachim Bauch dc713ea8e8 Only include body in 307/308 redirects if going to same host. 2021-07-07 12:35:53 +02:00
Joachim Bauch b422b4d379 Merge pull request #131 from strukturag/dependabot/github_actions/coverallsapp/github-action-1.1.3
Bump coverallsapp/github-action from 1.1.2 to 1.1.3
2021-07-07 11:33:33 +02:00
Joachim Bauch 1820816160 Merge pull request #132 from strukturag/force-https
Force HTTPS for backend connections in old-style configurations.
2021-07-07 11:03:32 +02:00
Joachim Bauch ec71f29fee Force HTTPS for backend connections in old-style configurations.
Prevents clients from sending a HTTP auth URL to trigger an insecure
connection from the signaling server to Nextcloud.
2021-07-07 09:16:59 +02:00
Joachim Bauch ed8c2752cb Merge pull request #129 from morph027/multiarch-easyjson
adjust easyjson for multiarch builds
2021-07-05 08:30:41 +02:00
Joachim Bauch 2662d49017 Update changelog for 0.3.0 2021-07-01 09:24:52 +02:00
Joachim Bauch e40e86f32c Merge pull request #104 from strukturag/stream-selection-api
Add API to select a simulcast substream / temporal layer.
2021-07-01 08:54:11 +02:00
Joachim Bauch b091db000e Merge pull request #121 from strukturag/initial-virtual-flags
Notify new clients about flags of virtual sessions
2021-06-08 13:51:23 +02:00
Joachim Bauch 8a87a0d602 Add feature flag "simulcast". 2021-06-08 13:49:09 +02:00
Joachim Bauch 0a8ce3bda3 Add API to select a simulcast substream / temporal layer. 2021-06-08 13:49:08 +02:00
Joachim Bauch 9d2ad0f243 Notify new clients about current flags of virtual sessions. 2021-06-08 13:46:25 +02:00
Joachim Bauch 4d991725c3 Add method to get pending messages from testclient. 2021-06-08 13:45:58 +02:00
Joachim Bauch 6886bb9b53 Merge pull request #119 from strukturag/check-capabilities-v4api
Fetch capabilities to check if "v3" signaling API of Talk should be used.
2021-06-08 10:33:21 +02:00
Joachim Bauch 2bbc0a4d3c Fetch capabilities to check if "v3" signaling API of Talk should be used. 2021-06-08 10:23:27 +02:00
Joachim Bauch 60b11b1ba9 Don't start test until receiving goroutine is ready. 2021-06-08 09:44:53 +02:00
Joachim Bauch 6c72d3f2bc Merge pull request #116 from strukturag/dependabot/go_modules/github.com/nats-io/nats-server/v2-2.2.6
Bump github.com/nats-io/nats-server/v2 from 2.2.1 to 2.2.6
2021-06-08 09:38:43 +02:00
Joachim Bauch 35d3bf84e6 Merge pull request #115 from strukturag/test-improvements
Various test improvements
2021-06-08 09:27:05 +02:00
Joachim Bauch 7618bc683c Ignore room NATS messages that were sent before the room was joined.
Can happen mostly during tests (e.g. TestClientTakeoverRoomSession)
where the new client could receive the "leave" event that was sent
before it joined the room (but got delivered after joining).
2021-06-08 09:20:18 +02:00
Joachim Bauch 2628735431 Send close message when explicitly closing client. 2021-06-07 17:14:31 +02:00
Joachim Bauch 9a473b9bf1 Wait for close message to be processed in test client before closing. 2021-06-07 17:14:31 +02:00
Joachim Bauch 447fa9a279 Add "String" methods to ClientMessage/ServerMessage. 2021-06-07 16:53:26 +02:00
Joachim Bauch c8886d03c9 Simplify loopback NATS client.
Only use one goroutine per client instead of one per subscription.
This ensures that (like with the "real" client), all messages are
processed in order across different subscriptions.
2021-06-07 16:53:26 +02:00
Joachim Bauch fe95626f3b Support closing clients from message processor. 2021-06-07 15:15:50 +02:00
Joachim Bauch 618e7b085e Fix potential race condition when closing message channel. 2021-06-07 15:14:51 +02:00
Joachim Bauch 8bf4fb5675 Merge pull request #120 from strukturag/notify-multiple-waiters
Support multiple waiters for the same key.
2021-06-07 14:51:12 +02:00
Joachim Bauch 60a88b327b Support multiple waiters for the same key. 2021-06-07 14:36:52 +02:00
Joachim Bauch 7bdff5ddef Use subtests for testing with different values. 2021-06-07 10:44:25 +02:00
Joachim Bauch 04d315b0a4 Wait for any messages to be processed before stopping Hub in tests. 2021-06-07 10:37:56 +02:00
Joachim Bauch 3f19882612 No need to close NATS receiver channel.
Will be garbage collected once the room is removed and is not needed to
wakeup the reader (which is terminated in a "select" loop from the close
channel).
2021-06-07 10:29:50 +02:00
Joachim Bauch 2f4414561e No need to include trailing newline in log messages. 2021-06-04 16:42:17 +02:00
Joachim Bauch 9a921a6572 Merge pull request #111 from strukturag/async-client-processing
Make client message processing asynchronous.
2021-06-04 16:27:03 +02:00
Joachim Bauch 0b2df54343 Send hello response through session. 2021-06-04 15:46:22 +02:00
Joachim Bauch 6e54d8f4f4 Attempt to fix flaky tests. 2021-06-04 15:46:21 +02:00
Joachim Bauch 21f3f506d1 Send more responses through the session to handle disconnected / resuming clients. 2021-06-04 15:40:43 +02:00
Joachim Bauch 15d5c93b0b Support session resumption while a room is being joined.
If a client resumed a session while a (slow) backend request to join a room
was still active, the response could get lost.
2021-06-04 15:40:42 +02:00
Joachim Bauch b8b46264c1 Create messagechan for proxy clients. 2021-06-04 15:40:42 +02:00
Joachim Bauch 2b02a2f929 Make client message processing asynchronous.
This helps in detecting clients that disconnect while a backend request for
them is still active (e.g. joining a room).
2021-06-04 15:40:39 +02:00
Joachim Bauch 8f3db6da80 Merge pull request #105 from strukturag/nats-tests
Add tests for regular NATS client.
2021-06-04 15:39:44 +02:00
Joachim Bauch 1687c80122 Add more tests. 2021-06-04 15:30:55 +02:00
Joachim Bauch 762d1512c4 Remove unused "Request" method from NATS client. 2021-06-04 15:16:16 +02:00
Joachim Bauch 0d1c546355 Use buffered channel to receive read error. 2021-06-04 15:13:34 +02:00
Joachim Bauch c91b0de254 Add tests for regular NATS client. 2021-06-04 15:13:33 +02:00
Joachim Bauch 6fb57c7823 Merge pull request #114 from strukturag/janus-remove-nats
Remove NATS notifications for Janus publishers
2021-06-04 15:03:50 +02:00
Joachim Bauch 9b83993d48 Assume one Janus server is only used by one signaling server / -proxy.
With that, we can notify publisher events locally instead of through NATS
and can remove code that looks up publisher rooms by their ids on Janus.
2021-06-04 14:52:23 +02:00
Joachim Bauch d7bd809c54 Add class no notify named waiters. 2021-06-04 14:26:03 +02:00
Joachim Bauch f38ebdc518 Merge pull request #113 from strukturag/serialize-turn-credentials
Don't include TURN credentials in log message.
2021-06-01 08:30:10 +02:00
Joachim Bauch 5ed89af1eb Don't include TURN credentials in log message. 2021-06-01 08:24:48 +02:00
Joachim Bauch dcc32bd682 Merge pull request #112 from strukturag/ci-codeql
CI: Add CodeQL Analysis.
2021-05-31 17:13:16 +02:00
Joachim Bauch ca8ce625e4 CI: Add CodeQL Analysis. 2021-05-31 17:05:08 +02:00
Joachim Bauch 9919e5a7e6 Merge pull request #110 from strukturag/dependabot/github_actions/actions/cache-2.1.6
Bump actions/cache from 2.1.5 to 2.1.6
2021-05-31 12:30:27 +02:00
Joachim Bauch 52c1514978 Always use auth userid in ping requests.
Fixes issue introduced in 3a2adffab6 where some
ping requests were not evaluated correctly if a userid was given in the room
session data.
2021-05-19 16:24:15 +02:00
Joachim Bauch da5890a1c7 Merge pull request #108 from strukturag/dependabot/github_actions/actions/checkout-2.3.4
Bump actions/checkout from 2 to 2.3.4
2021-05-12 08:27:22 +02:00
Joachim Bauch 327597f768 Merge pull request #107 from strukturag/dependabot/github_actions/golangci/golangci-lint-action-2.5.2
Bump golangci/golangci-lint-action from 2 to 2.5.2
2021-05-12 08:27:03 +02:00
Joachim Bauch 87b8e3bfd2 Merge pull request #106 from strukturag/dependabot/github_actions/actions/cache-2.1.5
Bump actions/cache from 2 to 2.1.5
2021-05-12 08:26:47 +02:00
Joachim Bauch d432b0c1a9 Merge pull request #103 from strukturag/dependabot/github_actions/jandelgado/gcov2lcov-action-v1.0.8
Bump jandelgado/gcov2lcov-action from v1.0.2 to v1.0.8
2021-04-27 10:47:25 +02:00
Joachim Bauch 58cf21b63f Merge pull request #102 from strukturag/dependabot/github_actions/coverallsapp/github-action-v1.1.2
Bump coverallsapp/github-action from v1.1.1 to v1.1.2
2021-04-27 10:46:38 +02:00
Joachim Bauch e143ada50d Merge pull request #101 from strukturag/dependabot-actions
dependabot: check github actions for updates.
2021-04-27 09:05:12 +02:00
Joachim Bauch 1d12bfb107 dependabot: check github actions for updates. 2021-04-27 09:01:07 +02:00
Joachim Bauch 5d87df4b8e Return error if unknown hello session was received while waiting for joined events. 2021-04-27 08:48:36 +02:00
Joachim Bauch 9cf796640c Don't require certain order of own/other "joined" events. 2021-04-27 08:39:19 +02:00
Joachim Bauch 73acd90f2b Merge pull request #32 from strukturag/ci-golang-lint
CI: Also run golangci-lint
2021-04-26 17:36:42 +02:00
Joachim Bauch 929ac80b86 CI: Also run golangci-lint 2021-04-26 17:32:43 +02:00