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