All notable changes to this project will be documented in this file.
- stats: Support configuring subnets for allowed IPs. #448
- Add common code to handle allowed IPs. #450
- Add allowall to docker image #488
- Follow the Go release policy by supporting only the last two versions. This drops support for Golang 1.18. #499
- build(deps): Bump google.golang.org/protobuf from 1.29.0 to 1.29.1 #446
- build(deps): Bump actions/setup-go from 3 to 4 #447
- build(deps): Bump google.golang.org/protobuf from 1.29.1 to 1.30.0 #449
- build(deps): Bump coverallsapp/github-action from 1.2.4 to 2.0.0 #451
- build(deps): Bump readthedocs-sphinx-search from 0.2.0 to 0.3.1 in /docs #456
- build(deps): Bump coverallsapp/github-action from 2.0.0 to 2.1.0 #460
- build(deps): Bump peter-evans/create-or-update-comment from 2 to 3 #459
- build(deps): Bump sphinx from 6.1.3 to 6.2.1 in /docs #468
- build(deps): Bump mkdocs from 1.4.2 to 1.4.3 in /docs #471
- build(deps): Bump sphinx-rtd-theme from 1.2.0 to 1.2.1 in /docs #479
- build(deps): Bump coverallsapp/github-action from 2.1.0 to 2.1.2 #466
- build(deps): Bump golangci/golangci-lint-action from 3.4.0 to 3.5.0 #481
- Simplify vendoring. #482
- build(deps): Bump sphinx-rtd-theme from 1.2.1 to 1.2.2 in /docs #485
- build(deps): Bump coverallsapp/github-action from 2.1.2 to 2.2.0 #484
- build(deps): Bump google.golang.org/grpc from 1.53.0 to 1.55.0 #472
- build(deps): Bump go.etcd.io/etcd/client/v3 from 3.5.7 to 3.5.9 #473
- build(deps): Bump github.com/nats-io/nats.go from 1.24.0 to 1.26.0 #478
- build(deps): Bump golangci/golangci-lint-action from 3.5.0 to 3.6.0 #492
- build(deps): Bump github.com/nats-io/nats-server/v2 from 2.9.15 to 2.9.17 #495
- build(deps): Bump github.com/nats-io/nats-server/v2 from 2.9.17 to 2.9.18 #496
- build(deps): Bump github.com/prometheus/client_golang from 1.14.0 to 1.15.1 #493
- docker: Don't build concurrently. #498
- Use "struct{}" channel if only used as signaling mechanism. #491
- build(deps): Bump google.golang.org/grpc from 1.55.0 to 1.56.0 #502
- build(deps): Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 #501
- build(deps): Bump github.com/oschwald/maxminddb-golang from 1.10.0 to 1.11.0 #503
- build(deps): Bump github.com/nats-io/nats-server/v2 from 2.9.18 to 2.9.19 #504
- build(deps): Bump google.golang.org/grpc from 1.56.0 to 1.56.1 #505
- build(deps): Bump github.com/nats-io/nats.go from 1.27.0 to 1.27.1 #506
- build(deps): Bump google.golang.org/protobuf from 1.30.0 to 1.31.0 #507
- CI: Make sure proxy Docker image is never tagged as "latest". #445
- Write backends comma-separated to config #487
- Fix duplicate join events #490
- Add missing lock for "roomSessionId" to avoid potential races. #497
- Allow SKIP_VERIFY in docker image. #430
- Keep Docker images alpine based. #427
- build(deps): Bump coverallsapp/github-action from 1.1.3 to 1.2.0 #433
- build(deps): Bump coverallsapp/github-action from 1.2.0 to 1.2.2 #435
- build(deps): Bump coverallsapp/github-action from 1.2.2 to 1.2.3 #436
- build(deps): Bump coverallsapp/github-action from 1.2.3 to 1.2.4 #437
- build(deps): Bump github.com/nats-io/nats.go from 1.23.0 to 1.24.0 #434
- Run "go mod tidy -compat=1.18". #440
- CI: Run golangci-lint with Go 1.20
- Update protoc-gen-go-grpc to v1.3.0 #442
- CI: Stop using deprecated "set-output". #441
- docker: Don't rely on default values when updating TURN settings. #439
- build(deps): Bump google.golang.org/protobuf from 1.28.1 to 1.29.0 #443
- Fix Docker images. #425
- Official docker images. #314
- Use proxy from environment for backend client requests. #326
- Add aarch64/arm64 docker build #384
- CI: Setup permissions for workflows. #393
- Implement "switchto" support #409
- Allow internal clients to set / change the "inCall" flags. #421
- Add support for Golang 1.20 #413
- Switch to apt-get on CLI. #312
- vendor: Automatically vendor protobuf modules. #313
- Bump github.com/prometheus/client_golang from 1.12.2 to 1.13.0 #316
- Bump github.com/oschwald/maxminddb-golang from 1.9.0 to 1.10.0 #317
- Bump github.com/pion/sdp/v3 from 3.0.5 to 3.0.6 #320
- Bump google.golang.org/grpc from 1.48.0 to 1.49.0 #324
- Bump github.com/nats-io/nats-server/v2 from 2.8.4 to 2.9.0 #330
- Bump sphinx from 5.1.1 to 5.2.2 in /docs #339
- Bump mkdocs from 1.3.1 to 1.4.0 in /docs #340
- Bump sphinx from 5.2.2 to 5.2.3 in /docs #345
- Bump github.com/nats-io/nats-server/v2 from 2.9.0 to 2.9.2 #344
- Bump go.etcd.io/etcd/api/v3 from 3.5.4 to 3.5.5 #333
- Bump go.etcd.io/etcd/server/v3 from 3.5.4 to 3.5.5 #334
- Bump google.golang.org/grpc from 1.49.0 to 1.50.0 #346
- Bump github.com/nats-io/nats-server/v2 from 2.9.2 to 2.9.3 #348
- Bump github.com/nats-io/nats.go from 1.17.0 to 1.18.0 #349
- Bump sphinx from 5.2.3 to 5.3.0 in /docs #351
- Bump mkdocs from 1.4.0 to 1.4.1 in /docs #352
- Bump google.golang.org/grpc from 1.50.0 to 1.50.1 #350
- Bump golangci/golangci-lint-action from 3.2.0 to 3.3.0 #353
- Bump mkdocs from 1.4.1 to 1.4.2 in /docs #358
- Bump sphinx-rtd-theme from 1.0.0 to 1.1.0 in /docs #357
- Bump github.com/nats-io/nats.go from 1.18.0 to 1.19.0 #354
- Bump github.com/prometheus/client_golang from 1.13.0 to 1.13.1 #360
- Bump github.com/nats-io/nats-server/v2 from 2.9.3 to 2.9.5 #359
- build(deps): Bump golangci/golangci-lint-action from 3.3.0 to 3.3.1 #365
- build(deps): Bump sphinx-rtd-theme from 1.1.0 to 1.1.1 in /docs #363
- build(deps): Bump github.com/nats-io/nats-server/v2 from 2.9.5 to 2.9.6 #361
- build(deps): Bump github.com/nats-io/nats.go from 1.19.0 to 1.20.0 #366
- build(deps): Bump google.golang.org/grpc from 1.50.1 to 1.51.0 #368
- build(deps): Bump github.com/prometheus/client_golang from 1.13.1 to 1.14.0 #364
- build(deps): Bump github.com/nats-io/nats-server/v2 from 2.9.6 to 2.9.7 #367
- build(deps): Bump go.etcd.io/etcd/server/v3 from 3.5.5 to 3.5.6 #372
- build(deps): Bump github.com/nats-io/nats-server/v2 from 2.9.7 to 2.9.8 #371
- build(deps): Bump github.com/nats-io/nats.go from 1.20.0 to 1.21.0 #375
- build(deps): Bump github.com/golang-jwt/jwt/v4 from 4.4.2 to 4.4.3 #374
- build(deps): Bump cirrus-actions/rebase from 1.7 to 1.8 #379
- build(deps): Bump github.com/nats-io/nats-server/v2 from 2.9.8 to 2.9.9 #377
- build(deps): Bump github.com/nats-io/nats-server/v2 from 2.9.9 to 2.9.10 #382
- build(deps): Bump github.com/nats-io/nats.go from 1.21.0 to 1.22.1 #383
- build(deps): Bump google.golang.org/grpc from 1.51.0 to 1.52.0 #391
- build(deps): Bump github.com/nats-io/nats-server/v2 from 2.9.10 to 2.9.11 #387
- Stop using WaitGroup to detect finished message processing. #394
- Improve handling of throttled responses from Nextcloud. #395
- Test: add timeout while waiting for etcd event. #397
- build(deps): Bump github.com/nats-io/nats.go from 1.22.1 to 1.23.0 #399
- build(deps): Bump go.etcd.io/etcd/api/v3 from 3.5.6 to 3.5.7 #402
- build(deps): Bump go.etcd.io/etcd/client/v3 from 3.5.6 to 3.5.7 #403
- build(deps): Bump go.etcd.io/etcd/server/v3 from 3.5.6 to 3.5.7 #404
- build(deps): Bump golangci/golangci-lint-action from 3.3.1 to 3.4.0 #405
- build(deps): Bump readthedocs-sphinx-search from 0.1.2 to 0.2.0 in /docs #407
- build(deps): Bump google.golang.org/grpc from 1.52.0 to 1.52.1 #406
- build(deps): Bump docker/build-push-action from 3 to 4 #412
- build(deps): Bump google.golang.org/grpc from 1.52.1 to 1.52.3 #410
- Explicitly use type "sysConn". #416
- build(deps): Bump github.com/nats-io/nats-server/v2 from 2.9.11 to 2.9.14 #415
- build(deps): Bump sphinx-rtd-theme from 1.1.1 to 1.2.0 in /docs #418
- build(deps): Bump google.golang.org/grpc from 1.52.3 to 1.53.0 #417
- build(deps): Bump golang.org/x/net from 0.5.0 to 0.7.0 #422
- build(deps): Bump github.com/golang-jwt/jwt/v4 from 4.4.3 to 4.5.0 #423
- build(deps): Bump sphinx from 5.3.0 to 6.1.3 in /docs #390
- Various refactorings to simplify code #400
- Remove @resources from SystemCallFilter #322
- Fix deadlock for proxy connection issues #327
- Fix goroutines leak check. #396
- Clustering support. #281
- Send initial "welcome" message when clients connect. #288
- Support hello auth version "2.0" with JWT. #251
- dist: add systemd sysusers file. #275
- Add more tests. #292
- Add tests for virtual sessions. #295
- Implement per-backend session limit for clusters. #296
- Don't run "go mod tidy" when building. #269
- Bump sphinx from 5.0.0 to 5.0.1 in /docs #270
- Bump sphinx from 5.0.1 to 5.0.2 in /docs #277
- Move common etcd code to own class. #282
- Support arbitrary capabilities values. #287
- dist: harden systemd service unit. #276
- Update to Go module version of github.com/golang-jwt/jwt #289
- Disconnect sessions with the same room session id synchronously. #294
- Bump google.golang.org/grpc from 1.47.0 to 1.48.0 #297
- Update to github.com/pion/sdp v3.0.5 #301
- Bump sphinx from 5.0.2 to 5.1.1 in /docs #303
- make: Include vendored dependencies in tarball. #300
- docs: update and pin dependencies. #305
- Bump actions/upload-artifact from 2 to 3 #307
- Bump actions/download-artifact from 2 to 3 #308
- Bump google.golang.org/protobuf from 1.28.0 to 1.28.1 #306
- CI: Also test with Golang 1.19 #310
- Fix check for async room messages received while not joined to a room. #274
- Fix testing etcd server not starting up if etcd is running on host. #283
- Fix CI issues on slow CPUs. #290
- Fix handling of "unshareScreen" messages and add test. #293
- Fix Read The Ddocs builds. #302
- Add API documentation (previously in https://github.com/nextcloud/spreed) #194
- CI: Enable gofmt linter. #196
- CI: Enable revive linter. #197
- Add API for transient room data. #193
- Send updated offers to subscribers after publisher renegotiations. #195
- Add documentation on the available metrics. #210
- Add special events to update "incall" flags of all sessions. #208
- CI: Also test with Golang 1.18. #209
- Support DNS discovery for proxy server URLs. #214
- CI: Build docker image. #238
- Add specific id for connections and replace "update" parameter with it. #229
- Add "permission" for sessions that may not receive display names. #227
- Add support for request offers to update subscriber connections. #191
- Support toggling audio/video in subscribed streams. #239
- CI: Test building coturn/janus Docker images. #258
- Add command bot for "/rebase". #260
- Add Go Report card. #262
- Combine ping requests of different rooms on the same backend. #250
- Bump github.com/gorilla/websocket from 1.4.2 to 1.5.0 #198
- Bump golangci/golangci-lint-action from 2.5.2 to 3.1.0 #202
- Bump actions/checkout from 2.4.0 to 3 #205
- Bump actions/cache from 2.1.7 to 3 #211
- Return dedicated error if proxy receives token that is not valid yet. #212
- CI: Only run workflows if relevant files have changed. #218
- Bump sphinx from 4.2.0 to 4.5.0 in /docs #216
- Bump github.com/oschwald/maxminddb-golang from 1.8.0 to 1.9.0 #213
- Only support last two versions of Golang (1.17 / 1.18). #219
- Bump github.com/golang-jwt/jwt from 3.2.1+incompatible to 3.2.2+incompatible #161
- Bump github.com/nats-io/nats-server/v2 from 2.2.6 to 2.7.4 #207
- Update etcd to v3.5.1 #179
- Bump github.com/prometheus/client_golang from 1.11.0 to 1.12.1 #190
- Bump go.etcd.io/etcd/client/v3 from 3.5.1 to 3.5.2 #222
- Use features from newer Golang versions. #220
- Bump actions/setup-go from 2 to 3 #226
- Send directly to local session with disconnected client. #228
- Bump github.com/nats-io/nats-server/v2 from 2.7.4 to 2.8.1 #234
- Bump go.etcd.io/etcd/client/pkg/v3 from 3.5.2 to 3.5.4 #235
- Bump github/codeql-action from 1 to 2 #237
- Bump go.etcd.io/etcd/client/v3 from 3.5.2 to 3.5.4 #236
- Bump github.com/nats-io/nats-server/v2 from 2.8.1 to 2.8.2 #242
- Bump docker/setup-buildx-action from 1 to 2 #245
- Bump docker/build-push-action from 2 to 3 #244
- Bump github.com/nats-io/nats.go from 1.14.0 to 1.15.0 #243
- Bump readthedocs-sphinx-search from 0.1.1 to 0.1.2 in /docs #248
- CI: Run when workflow yaml file has changed. #249
- Bump golangci/golangci-lint-action from 3.1.0 to 3.2.0 #247
- Move capabilities handling to own file and refactor http client pool. #252
- Increase allowed body size for backend requests. #255
- Improve test coverage. #253
- Switch to official Coturn docker image. #259
- Bump github.com/prometheus/client_golang from 1.12.1 to 1.12.2 #256
- Update Dockerfile versions. #257
- Update Alpine to 3.15 version, fix CVE-2022-28391 #261
- Bump cirrus-actions/rebase from 1.6 to 1.7 #263
- Bump github.com/nats-io/nats.go from 1.15.0 to 1.16.0 #267
- Bump jandelgado/gcov2lcov-action from 1.0.8 to 1.0.9 #264
- Bump github.com/nats-io/nats-server/v2 from 2.8.2 to 2.8.4 #266
- Bump sphinx from 4.5.0 to 5.0.0 in /docs #268
- CI: Fix linter errors. #206
- CI: Pin dependencies to fix readthedocs build. #215
- Fix mediaType not updated after publisher renegotiations. #221
- Fix "signaling_server_messages_total" stat not being incremented. #190
- The room session id is included in "joined" events. #178
- Clients can provide the maximum publishing bandwidth in offer requests. #183
- Support continent mapping overrides. #143
- Add prometheus metrics #99
- Support separate permissions for publishing audio / video. #157
- Check individual audio/video permissions on change. #169
- CI: Also test with Go 1.17 #153
- Force HTTPS for backend connections in old-style configurations. #132
- Only include body in 307/308 redirects if going to same host #134
- Stop publishers if session is no longer allowed to publish. #140
- Only allow subscribing if both users are in the same room and call. #133
- Internal clients always may subscribe all streams. #159
- Reduce RTT logging #167
- deps: Migrate to "github.com/golang-jwt/jwt". #160
- Bump coverallsapp/github-action from 1.1.2 to 1.1.3 #131
- Bump github.com/google/uuid from 1.2.0 to 1.3.0 #138
- Bump github.com/prometheus/client_golang from 1.10.0 to 1.11.0 #144
- Bump github.com/nats-io/nats.go from 1.11.0 to 1.12.1 #150
- Bump github.com/nats-io/nats.go from 1.12.1 to 1.12.3 #154
- Bump github.com/nats-io/nats.go from 1.12.3 to 1.13.0 #158
- Bump actions/checkout from 2.3.4 to 2.3.5 #163
- Bump actions/checkout from 2.3.5 to 2.4.0 #166
- Adjusted easyjson for multiarch builds #129
- Certificate validation can be disabled for proxy connections
- Number of sessions per backend can be limited #67
- Use Go modules for dependency tracking, drop support for Golang < 1.13 #88
- Support defining maximum bandwidths at diferent levels #76
- Show coverage report in PRs #34
- CI: Also test with Golang 1.16
- CI: Run golint #32
- CI: Add CodeQL analysis #112
- Add tests for regular NATS client #105
- Fetch capabilities to check if "v3" signaling API of Talk should be used. #119
- Add API to select a simulcast substream / temporal layer #104
- Improved detection of broken connections between server and proxy #65
- Stop using legacy ptype
listener
#83 - Update gorilla/mux to 1.8.0 #89
- Remove unnecessary dependency golang.org/x/net #90
- Update nats.go to 1.10.0 #92
- Update maxminddb-golang to 1.8.0 #91
- Add dependabot integration #93
- Bump github.com/google/uuid from 1.1.2 to 1.2.0 #94
- Bump github.com/gorilla/websocket from 1.2.0 to 1.4.2 #95
- Remove deprecated github.com/gorilla/context
- Update to go.etcd.io/etcd 3.4.15
- make: Cache easyjson results. #96
- Various updates to Docker components #78
- Bump coverallsapp/github-action from v1.1.1 to v1.1.2 #102
- Bump jandelgado/gcov2lcov-action from v1.0.2 to v1.0.8 #103
- Bump actions/cache from 2 to 2.1.5 #106
- Bump golangci/golangci-lint-action from 2 to 2.5.2 #107
- Bump actions/checkout from 2 to 2.3.4 #108
- Bump actions/cache from 2.1.5 to 2.1.6 #110
- Don't log TURN credentials #113
- Remove NATS notifications for Janus publishers #114
- Make client processing asynchronous #111
- Bump github.com/nats-io/nats-server/v2 from 2.2.1 to 2.2.6 #116
- Notify new clients about flags of virtual sessions #121
- Adjusted godeps for multiarch builds #69
- Add missing lock when accessing internal sessions map
- Fixed parallel building #73
- Make the response from the client auth backend OCS compliant #74
- Fixed alignment of 64bit members that are accessed atomically #72
- Only build "godep" binary once #75
- Update config example for Apache proxy config #82
- Remove remaining virtual sessions if client session is closed
- Fix Caddy v2 example config #97
- Fix various issues found by golangci-lint #100
- Support multiple waiters for the same key #120
- Various test improvements / fixes #115
- Default to proxy url type "static" if none is configured
- Don't perform request to proxy if context is already done
- Mark session as used when proxy connection is interrupted to prevent from timing out too early
- Use dedicated (shorter) timeout for proxy requests to avoid using the whole available timeout for the first proxy request
- Update logging when creating / deleting publishers / subscribers
- Include load in stats response
- Send MCU messages through the session #55
- Add '--full-trickle' to janus command #57
- README: Add missing information for creating group #60
- Canonicalize all URLs before comparisons / lookups #62
- Handle case where etcd cluster is not available during startup
- Remove duplicate argument in Dockerfile #50
- Handle old-style MCU configuration with type but no url
- Fix proxy client cleanup code #56
- Add Docker support #7
- Added basic stats API #16
- Add "reason" field to disinvite messages #26
- Added support for multiple Nextcloud backends #28
- Support connecting to multiple Janus servers #36
- Added support for loading proxy tokens from etcd cluser #44
- Proxy URLs are reloaded on SIGHUP #46
- Added support for loading proxy URls from etcd cluster #47
- Add option to override GeoIP lookups (e.g. for local addresses) #48
- The continent map is no longer downloaded on each build #29
- NATS messages are processed directly #35
- Support changed "slowlink" message from Janus > 0.7.3 #39
- The GeoIP database can be loaded from a local file #40
- Drop support for Golang < 1.10.
- Fixes for building on FreeBSD #2
- Fixes for typos in comments and error messages #10
- Remove credentials from log #13
- Add systemd to docs #3
- Add caddy server to reverse proxy examples #5
- Update link to API documentation #6
- Update build requirements #12
- Initial OpenSource version.