Commit Graph
100 Commits
Author SHA1 Message Date
Joachim Bauch 76ad24ca62 Include room session id in "joined" events.
This helps with matching signaling sessions with sessions in Talk.
2021-12-17 16:02:22 +01:00
Joachim Bauch 468470d128 Merge pull request #177 from strukturag/continentmap-source
Change source of country -> continent map.
2021-12-06 09:37:46 +01:00
Joachim Bauch 38c836011b Update tests for new continent map. 2021-12-06 09:31:06 +01:00
Joachim Bauch 99bb30af20 Update continentmap from 137e1f84ad 2021-12-06 09:21:46 +01:00
Joachim Bauch 137e1f84ad Change source of country -> continent map.
The previous source at https://datahub.io/JohnSnowLabs/ no longer exists.
2021-12-06 09:20:28 +01:00
Joachim Bauch 0df708a74e Merge pull request #171 from strukturag/dependabot/github_actions/actions/cache-2.1.7
Bump actions/cache from 2.1.6 to 2.1.7
2021-11-24 09:00:06 +01:00
Joachim Bauch f60ea3fcbb Fix formatting. 2021-11-10 15:22:56 +01:00
Joachim Bauch e856c41377 Finalize date for 0.4.0 2021-11-10 15:18:42 +01:00
Joachim Bauch e8f634a008 Update changelog for 0.4.0 2021-11-10 15:15:35 +01:00
Joachim Bauch 13314d646a Merge pull request #169 from strukturag/audio-video-permission-changes
Check individual audio/video permissions on change.
2021-11-10 15:13:24 +01:00
Joachim Bauch 4630c5f38c Add testcase with PERMISSION_MAY_PUBLISH_MEDIA. 2021-11-08 12:16:26 +01:00
Joachim Bauch 707b125730 Check individual audio/video permissions on change.
If a client publishes audio/video and no longer has the video permission,
the whole publisher will be closed. Previously this was only checking
the generic "media" permission.
2021-11-08 12:08:14 +01:00
Joachim Bauch 572176b4f5 Add first tests for split audio/video permissions. 2021-11-08 12:08:13 +01:00
Joachim Bauch 06e4f0aac8 Remove debug output. 2021-11-08 10:12:50 +01:00
Joachim Bauch 7628a15e61 Merge pull request #157 from strukturag/split-audio-video-permissions
Support separate permissions for publishing audio / video.
2021-11-03 15:39:50 +01:00
Joachim Bauch 61f039bb88 Introduce feature flag for split audio/video permissions.
The flag name "audio-video-permissions" will be used for this.
2021-11-03 15:24:28 +01:00
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