Commit Graph
100 Commits
Author SHA1 Message Date
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
Joachim Bauch c6892dcb2a Update config parameter name to match other options. 2020-08-28 17:09:57 +02:00
Joachim Bauch 66d860bd79 Add support for fetching proxy tokens from etcd cluster. 2020-08-28 17:09:57 +02:00
Joachim Bauch ebfd774d40 Add go.etcd.io/etcd v3.4.13 2020-08-28 17:09:56 +02:00
Joachim Bauch 7a50e2da93 Drop support for Golang < 1.10 2020-08-28 17:09:56 +02:00
Joachim Bauch eeb3d356af Merge pull request #45 from strukturag/ci-golang-1.15
CI: Also test with Go 1.15
2020-08-28 17:09:22 +02:00
Joachim Bauch a0e2de367a CI: Also test with Go 1.15 2020-08-28 17:06:18 +02:00
Joachim Bauch 85d6726d59 proxy: Prepare for different token storages. 2020-08-28 10:31:11 +02:00
Joachim Bauch 2d73b97882 Move member definition to get consistent formatting across Go versions. 2020-08-28 09:50:52 +02:00
Joachim Bauch 0dcb9f6b2d Unregister / remove subscriber if reconnection didn't work.
Partial fix from #15.
2020-08-13 14:51:07 +02:00
Joachim Bauch beb84b9cad Merge pull request #41 from strukturag/revert-15-keep-mcu-deferred-processing
Revert "Move processing of deferred method to dedicated DeferredExecutor."
2020-08-13 14:43:27 +02:00
Joachim Bauch 238b355e79 Merge pull request #40 from strukturag/geoip-from-file
Support loading a GeoIP database from a local file.
2020-08-13 14:12:53 +02:00
Joachim Bauch 5e3164b5a4 Support loading a GeoIP database from a local file. 2020-08-13 14:07:26 +02:00
Joachim Bauch 2734197e8d CI: Set "MAXMIND_GEOLITE2_LICENSE" variable to enable GeoIP tests. 2020-08-13 14:03:16 +02:00
Joachim Bauch 968913e32d Merge pull request #15 from strukturag/keep-mcu-deferred-processing
Move processing of deferred method to dedicated DeferredExecutor.
2020-08-13 13:22:42 +02:00
Joachim Bauch 015fa3565d Merge pull request #36 from strukturag/multiple-mcu-support
Support connecting to multiple Janus servers
2020-08-13 13:20:28 +02:00
Joachim Bauch ea74a54d11 Select proxy based on country of publisher (if known).
The connections that have been sorted by load are also sorted by country
of publisher and continent of publisher, e.g. for worldwide proxies, the
ones closest to the publisher will be preferred.
2020-08-13 13:17:09 +02:00
Joachim Bauch d9d11b58e1 Shutdown a proxy gracefully on SIGUSR1.
No new publishers will be created by the proxy, existing publishers can
still be subscribed. After all clients have disconnected, the process
will terminate.
2020-08-13 13:17:09 +02:00
Joachim Bauch 2626b1ac6c Add note on using multiple Janus servers. 2020-08-13 13:17:08 +02:00
Joachim Bauch b7c258b459 Add proxy service implementation. 2020-08-13 13:17:08 +02:00
Joachim Bauch 4446b07951 Add MCU type "proxy" that delegates to one or multiple MCU proxies. 2020-08-13 13:17:06 +02:00
Joachim Bauch 0052c45f69 Merge pull request #39 from strukturag/nacks-lost-reporting
Update "janus-go" dependency to handle changed slowlink message.
2020-08-13 13:05:56 +02:00
Joachim Bauch 178006faba Update "janus-go" dependency to handle changed slowlink message.
Janus no longer reports `nacks` since 0.7.3 but changed the field to `lost`.
2020-08-12 16:44:44 +02:00
Joachim Bauch acbb47a100 Add callback on received RTT. 2020-08-07 11:40:35 +02:00
Joachim Bauch f4d4d5fb4d Add callbacks for when MCU connection is established/list. 2020-08-07 10:23:47 +02:00
Joachim Bauch 5a553fcc2d Move some signaling-specific functions of client to hub to allow reuse. 2020-08-07 10:22:27 +02:00
Joachim Bauch e14ba2f39f Merge pull request #35 from strukturag/process-nats
Process NATS messages directly without passing to separate channel in client.
2020-08-03 14:35:31 +02:00
Joachim Bauch d23a392a1b Process NATS messages directly without passing to channel in client.
Already in per-client/-session goroutines, so won't block others.
2020-08-03 14:30:43 +02:00
Joachim Bauch 2278a5ffba Merge pull request #33 from strukturag/lint-cleanup
Various cleanups found by golangci-lint
2020-07-31 15:38:03 +02:00
Joachim Bauch 68477474f8 Don't use "select" with a single case that reads from a channel but read channel directly. 2020-07-31 15:32:42 +02:00
Joachim Bauch 7d874ac1a7 Don't cast bytes to string but use "String()" method. 2020-07-31 15:26:18 +02:00
Joachim Bauch 6ffed30ddc Remove unused error result (was always "nil"). 2020-07-31 15:23:41 +02:00
Joachim Bauch 5964a98218 Remove unnecessary assignment to "err". 2020-07-31 15:22:18 +02:00
Joachim Bauch efc232fb9c Don't call "Fatal" from inside a goroutine. 2020-07-31 15:19:11 +02:00
Joachim Bauch 67c5bebdcb Remove unused members. 2020-07-31 15:00:39 +02:00
Joachim Bauch 3f4693dca4 Remove unnecessary sub-loop. 2020-07-31 14:58:23 +02:00
Joachim Bauch b8c9e816b3 Remove unnecessary assignments to the blank identifier. 2020-07-31 14:57:04 +02:00
Joachim Bauch 023f2715f5 Merge pull request #28 from strukturag/multiple-backends
Add support for multiple Nextcloud backends
2020-07-31 14:43:01 +02:00
Joachim Bauch 1ef50ea18c Update wording. 2020-07-31 14:07:07 +02:00
Joachim Bauch 30877d01a1 Fix behaviour if "allowall" is configured. 2020-07-31 14:07:06 +02:00
Joachim Bauch 0198599a64 Fix test message. 2020-07-31 14:07:06 +02:00
Joachim Bauch eb6deff32b Add support for multiple Nextcloud backends. 2020-07-31 14:07:06 +02:00
Joachim Bauch 2d21c98928 Merge pull request #31 from strukturag/ci-flaky-fixes
Fix flaky CI test runs
2020-07-31 14:03:10 +02:00
Joachim Bauch 8772ea83fd Add sleep between joining multiple clients to the same room. 2020-07-31 14:00:29 +02:00
Joachim Bauch b165c44080 Reuse existing "WaitForUsersJoined" for test. 2020-07-31 13:50:15 +02:00
Joachim Bauch a3718a4664 Allow passing number of tests runs through "COUNT" parameter. 2020-07-31 13:49:52 +02:00
Joachim Bauch 75abe6d653 Allow one millisecond less delay to account for time variance on CI runners. 2020-07-31 13:44:43 +02:00
Joachim Bauch 5e55ce8ea9 Merge pull request #30 from strukturag/ci-github-actions
CI: Switch to GitHub Actions.
2020-07-31 13:02:42 +02:00
Joachim Bauch 13def3d2dc CI: Switch to GitHub Actions. 2020-07-31 13:00:09 +02:00
Joachim Bauch 3d2bcce9bf Merge pull request #29 from strukturag/keep-continentmap
Keep the continent map in the repository to avoid download on each build
2020-07-31 12:24:39 +02:00
Joachim Bauch 7f92d105e5 Keep the continent map in the repository to avoid download on build.
Regularly check through CI cron job that it is the latest version.
2020-07-31 11:52:59 +02:00