Commit Graph
100 Commits
Author SHA1 Message Date
Joachim Bauch 1ceb806c20 Support defining maximum bandwidths at diferent levels.
- Individually for each backend.
- For the proxy client (i.e. signaling server using cluster of proxies).
- For the proxy server / MCU.

The smallest bandwidth configured will be used, e.g. if a backend has a
larger limit than the MCU assigned for the stream, the limit of the MCU
server will be used.
2021-04-23 09:18:05 +02:00
Joachim Bauch e8012d99d0 Remove log entries about changed flags. 2021-04-22 14:23:06 +02:00
Joachim Bauch 3a2adffab6 Get userid from room session data if present. 2021-04-22 14:18:35 +02:00
Joachim Bauch 047e6655a1 Remove unnecessary assignments. 2021-04-21 14:12:11 +02:00
Joachim Bauch 0dd2e8a086 Remove remaining virtual sessions if client session is closed.
Previously any virtual sessions that have not been explicitly closed were
not removed from the backend if the client session was closed / expired.
2021-04-21 14:05:45 +02:00
Joachim Bauch d772e10fec Fix typo in JSON option. 2021-04-21 13:48:34 +02:00
Joachim Bauch 048b3b2f7d Merge pull request #96 from strukturag/cache-easyjson
make: Cache easyjson results.
2021-04-14 15:17:35 +02:00
Joachim Bauch b95a538e87 make: Cache easyjson results. 2021-04-14 15:11:39 +02:00
Joachim Bauch b6f20b20f2 Update to go.etcd.io/etcd 3.4.15 2021-04-14 15:00:39 +02:00
Joachim Bauch bccf2d5afd Remove deprecated github.com/gorilla/context 2021-04-14 14:23:53 +02:00
Joachim Bauch b32ef67692 Merge pull request #95 from strukturag/dependabot/go_modules/github.com/gorilla/websocket-1.4.2
Bump github.com/gorilla/websocket from 1.2.0 to 1.4.2
2021-04-14 14:21:36 +02:00
Joachim Bauch 2b4997ebfc Merge pull request #94 from strukturag/dependabot/go_modules/github.com/google/uuid-1.2.0
Bump github.com/google/uuid from 1.1.2 to 1.2.0
2021-04-14 11:08:55 +02:00
Joachim Bauch 8ad0396a93 Run "go mod tidy". 2021-04-14 11:00:31 +02:00
Joachim Bauch 09411714d0 Merge pull request #93 from strukturag/dependabot
Add dependabot integration.
2021-04-13 17:20:39 +02:00
Joachim Bauch 0cc37d88e6 Add dependabot integration. 2021-04-13 17:13:21 +02:00
Joachim Bauch fe4c02130c Merge pull request #91 from strukturag/update-maxminddb-golang
Update maxminddb-golang to 1.8.0
2021-04-13 17:05:15 +02:00
Joachim Bauch b29b98f320 Update maxminddb-golang to 1.8.0 2021-04-13 16:51:55 +02:00
Joachim Bauch e306ee6baf Merge pull request #92 from strukturag/update-nats.go
Update nats.go to 1.10.0
2021-04-13 16:51:25 +02:00
Joachim Bauch 9b0c4fab00 Update nats.go to 1.10.0 2021-04-13 16:47:28 +02:00
Joachim Bauch 2c126354a6 Merge pull request #90 from strukturag/remove-golang-x-net-context
Remove unnecessary dependency golang.org/x/net
2021-04-13 16:39:30 +02:00
Joachim Bauch 57deed0ce2 Remove unnecessary dependency golang.org/x/net 2021-04-13 16:35:32 +02:00
Joachim Bauch 7ee108c863 Merge pull request #89 from strukturag/update-gorilla-mux
Update gorilla/mux to 1.8.0
2021-04-13 16:34:33 +02:00
Joachim Bauch 87568ca891 Update gorilla/mux to 1.8.0 2021-04-13 16:22:30 +02:00
Joachim Bauch 2436d93aa2 Merge pull request #88 from strukturag/go-mod
Switch dependency tracking to Go modules.
2021-04-09 16:42:30 +02:00
Joachim Bauch 067af00d45 CI: Also test with golang 1.16 2021-04-09 16:35:10 +02:00
Joachim Bauch 8ba2e0ad64 Switch dependency tracking to Go modules.
With that bump minimum required version to Go 1.13.
2021-04-09 16:15:00 +02:00
Joachim Bauch eecb7d61dd Revert "CI: Also test with golang 1.16"
Needs changes to build steps first.

This reverts commit d8da0f43e3.
2021-04-08 15:36:38 +02:00
Joachim Bauch d8da0f43e3 CI: Also test with golang 1.16 2021-04-08 15:33:08 +02:00
Joachim Bauch 43f0b1d598 Merge pull request #83 from strukturag/legacy-ptype
Stop using legacy ptype "listener".
2021-02-24 10:06:02 +01:00
Joachim Bauch 45b543d594 Stop using legacy ptype "listener". 2021-02-24 08:49:10 +01:00
Joachim Bauch 61000f5f69 Merge pull request #75 from strukturag/multiple-godeps
make: Only build "godeps" binary once.
2021-01-21 14:27:30 +01:00
Joachim Bauch 865798f920 make: Only build "godeps" binary once. 2021-01-21 14:23:09 +01:00
Joachim Bauch 043691d703 Merge pull request #72 from strukturag/align-for-atomic
Align 64-bit members that are accessed atomically.
2021-01-21 13:38:16 +01:00
Joachim Bauch b89e017ae4 Merge pull request #67 from strukturag/limit-sessions
Support limiting number of sessions per backend.
2021-01-07 09:39:35 +01:00
Joachim Bauch f801fc8537 Include "meta" field in client OCS response (follow-up to #74). 2021-01-07 09:32:57 +01:00
Joachim Bauch fd96d4e506 Merge pull request #74 from loelkes/master
Make the response from the client auth backend OCS compliant
2021-01-07 09:26:46 +01:00
Joachim Bauch fa9446efc4 Don't generate easyjson files concurrently. 2021-01-07 09:20:16 +01:00
Joachim Bauch 464a683e53 Merge pull request #73 from strukturag/parallel-make
Update make targets to support parallel building.
2021-01-05 09:14:55 +01:00
Joachim Bauch 245e538fae CI: Enable parallel builds. 2021-01-05 09:11:20 +01:00
Joachim Bauch d2af40d229 Update make targets to support parallel building. 2021-01-05 09:11:19 +01:00
Joachim Bauch af04cc956d Add missing lock when accessing internal sessions map. 2021-01-05 09:10:24 +01:00
Joachim Bauch 82c20ba930 Align 64-bit members that are accessed atomically. 2021-01-05 08:37:09 +01:00
Joachim Bauch 97a6049154 Merge pull request #69 from morph027/crosscompile
Adjust godeps for multiarch builds
2020-12-22 00:35:22 +01:00
Joachim Bauch a3e34143c5 Support limiting number of sessions per backend. 2020-12-17 14:56:45 +01:00
Joachim Bauch b62beb2d31 Don't wrap Error object twice. 2020-12-17 14:32:27 +01:00
Joachim Bauch 64cccab641 Log all non-websocket close errors. 2020-12-16 15:29:22 +01:00
Joachim Bauch 559f1e28ae Optionally disable certificate validation for proxy connections. 2020-12-16 15:17:44 +01:00
Joachim Bauch 4427953a69 Merge pull request #65 from strukturag/proxy-ping
Send ping to proxy regularly to detect broken connection.
2020-12-11 16:11:35 +01:00
Joachim Bauch 9ad4a0c021 Update read deadline before reading. 2020-12-11 16:01:49 +01:00
Joachim Bauch d2b7fafde5 Send ping to proxy regularly to detect broken connection. 2020-12-11 15:58:35 +01:00
Joachim Bauch 823be4ed43 Update changelog for 0.2.0 2020-12-08 14:00:05 +01:00
Joachim Bauch b949aed820 Merge pull request #62 from strukturag/ignore-default-ports
Canonicalize all URLs before comparisons / lookups.
2020-11-30 11:48:47 +01:00
Joachim Bauch d9210b8b1f Canonicalize all URLs before comparisons / lookups.
Otherwise urls like "https://server:443/foo/" will fail to find entries for
"https://server/foo/" and vice versa.
2020-11-30 11:43:43 +01:00
Joachim Bauch 34b0b9045b Merge pull request #61 from strukturag/virtual-sessions
Add support for virtual sessions
2020-11-30 11:27:49 +01:00
Joachim Bauch 5188c159c5 Update virtual sessions for SIP support in Talk. 2020-11-30 11:21:52 +01:00
Joachim Bauch b6ce723a8b Make sure the backend URL always points to the signaling controller. 2020-11-30 11:21:52 +01:00
Joachim Bauch 669ec5c1af Support "internal" messages to create/update/remove virtual sessions. 2020-11-30 11:21:51 +01:00
Joachim Bauch dc0e927c09 Merge pull request #60 from stweil/master
README: Add missing information for creating group
2020-11-26 12:34:43 +01:00
Joachim Bauch 9206a56113 Merge pull request #56 from strukturag/proxy-client-cleanup
Fix proxy client cleanup
2020-10-30 08:41:32 +01:00
Joachim Bauch 4cd33707c4 Merge pull request #57 from SystemKeeper/patch-1
Add '--full-trickle' to janus command
2020-10-29 08:22:23 +01:00
Joachim Bauch 2119993606 Use publisher/subscriber ids that stay the same across reconnections.
Otherwise it could happen that objects were kept in maps (e.g. on the
proxy server) if they reconnected to the WebRTC gateway during their
lifetime. This resulted in incorrect load calculations.
2020-10-26 09:51:33 +01:00
Joachim Bauch 7681e26fbb Use publisher/subscriber objects as map keys. 2020-10-26 09:34:11 +01:00
Joachim Bauch 18c1874333 Merge pull request #55 from strukturag/mcu-messages-session
Send MCU messages through the session.
2020-10-21 14:38:03 +02:00
Joachim Bauch e6f6f0a846 Check combining while building pending messages instead of while sending out. 2020-10-21 14:34:53 +02:00
Joachim Bauch dd327a841e Send MCU messages through the session.
This helps with clients disconnecting / resuming while MCU responses
are being sent to them. With the change, the messages are stored in
the session and sent out when clients resume their session.
2020-10-21 14:19:57 +02:00
Joachim Bauch 644d9a1737 Include load in stats response. 2020-10-15 13:27:08 +02:00
Joachim Bauch 7d690d049f Merge pull request #53 from strukturag/reload-improvements
Minor reload improvements
2020-10-14 16:18:44 +02:00
Joachim Bauch 52e5978b19 Handle old-style MCU configuration with type but no url.
In the past this disabled the MCU but now was triggering an error due to an
invalid (empty) URL. Keep old behaviour and disable MCU again.
2020-10-07 15:00:35 +02:00
Joachim Bauch 5797111033 Log what backends are added/changed/removed on reload. 2020-10-06 16:37:35 +02:00
Joachim Bauch cd4d930835 Update reload tests
- Add test that reloads without changes.
- Add test that removes backend from shared host.
2020-10-06 16:37:33 +02:00
Joachim Bauch aa0191ef7e Don't allow reload with old-style backend configurations. 2020-10-06 16:36:53 +02:00
Joachim Bauch f7ed6addb7 Always load backends in the order they are configured. 2020-10-06 16:36:49 +02:00
Joachim Bauch bef54339e3 Merge pull request #52 from hosting-de-labs/feature/reload-backendconfigs
Feature: Reload Backends on SIGHUP
2020-10-06 15:37:59 +02:00
Joachim Bauch 67e66c0e5a Log something when proxy publisher/subscriber is deleted. 2020-09-24 12:43:27 +02:00
Joachim Bauch 76f327b919 Log session id when creating publish/subscriber. 2020-09-16 16:51:11 +02:00
Joachim Bauch 7e3a7af9a3 Use dedicated (shorter) timeout for proxy requests.
This will prevent the overall MCU timeout to expire on the first proxy
request if that takes too long. With the shorter proxy timeout, the other
proxy servers will be retried if the first request timed out.
2020-09-16 10:13:09 +02:00
Joachim Bauch 612b1d7217 Mark session as used on resume. 2020-09-16 10:11:52 +02:00
Joachim Bauch d437dbbc0e Mark session as used when connection is closed to prevent from timing out too early. 2020-09-16 10:08:46 +02:00
Joachim Bauch 80194c4e1d Don't perform request to proxy if context is already done. 2020-09-16 09:23:36 +02:00
Joachim Bauch 7bd9ee07b8 Merge pull request #50 from SuperSandro2000/patch-1
Remove duplicated argument
2020-09-09 16:31:42 +02:00
Joachim Bauch 767d283600 Handle case where etcd cluster is not available during startup. 2020-09-09 14:42:18 +02:00
Joachim Bauch adce45162e Default to proxy url type "static" if none is configured. 2020-09-07 17:07:48 +02:00
Joachim Bauch 198117a8d0 Fix commented default value of "urltype". 2020-09-07 17:06:40 +02:00
Joachim Bauch dbcbad8b99 Add changelog. 2020-09-07 09:46:45 +02:00
Joachim Bauch a9b6b44b14 Update syntax to match other commented values. 2020-09-07 09:44:39 +02:00
Joachim Bauch 5206490fef Change log message if session was resumed. 2020-09-07 09:12:32 +02:00
Joachim Bauch 1e11eac284 proxy: Check complete session id when resuming. 2020-09-07 09:10:33 +02:00
Joachim Bauch bde0301637 proxy: Generate random session hash keys.
This is to ensure that session ids are only valid until the proxy is restarted.
2020-09-07 09:01:34 +02:00
Joachim Bauch 73903315a9 Handle "bye" proxy messages. 2020-09-07 08:56:17 +02:00
Joachim Bauch b6a0597fb7 "curl" and "python3" are no longer required to build the server.
Since #29 the continent map is included in the repository and doesn't get
downloaded on each build.
2020-09-01 13:47:56 +02:00
Joachim Bauch 34de2b9b58 Merge pull request #47 from strukturag/proxy-list-etcd
Add support for fetching proxy URLs from etcd cluster.
2020-09-01 12:48:46 +02:00
Joachim Bauch c4d2bbe21f Merge pull request #48 from strukturag/geoip-overrides
Add option to override GeoIP lookups (e.g. for local addresses).
2020-09-01 12:46:18 +02:00
Joachim Bauch 64991a0a0e Add option to override GeoIP lookups (e.g. for local addresses). 2020-09-01 12:41:00 +02:00
Joachim Bauch dcf533b8f1 Add support for fetching proxy URLs from etcd cluster. 2020-08-31 17:24:04 +02:00
Joachim Bauch 744b514e9f Support multiple token key formats in proxy configurations. 2020-08-31 17:23:47 +02:00
Joachim Bauch 18bfb0daa1 Update logging flags.
Timestamp already enabled by etcd logger, so only add filename.
2020-08-31 15:51:53 +02:00
Joachim Bauch 804e558e96 Switch to builtin "context" package now that we can assume Go 1.7 2020-08-31 13:58:28 +02:00
Joachim Bauch b7d5f2a639 Merge pull request #44 from strukturag/proxy-tokens-etcd
Add support for fetching proxy tokens from etcd cluster.
2020-08-31 13:47:36 +02:00
Joachim Bauch 28241f5f87 Merge pull request #46 from strukturag/reload-proxy-list
Reload list of proxy URLs on SIGHUP.
2020-08-31 13:44:46 +02:00
Joachim Bauch 116188c3e3 Reload list of proxy URLs on SIGHUP. 2020-08-31 13:07:03 +02:00