Merge pull request #47 from strukturag/proxy-list-etcd

Add support for fetching proxy URLs from etcd cluster.
This commit is contained in:
Joachim Bauch
2020-09-01 12:48:46 +02:00
committed by GitHub
4 changed files with 302 additions and 25 deletions
+36 -3
View File
@@ -99,12 +99,12 @@ connectionsperhost = 8
[mcu]
# The type of the MCU to use. Currently only "janus" and "proxy" are supported.
type = janus
# Leave empty to disable MCU functionality.
#type =
# For type "janus": the URL to the websocket endpoint of the MCU server.
# For type "proxy": a space-separated list of proxy URLs to connect to.
# Leave empty to disable MCU functionality.
url =
#url =
# For type "janus": the maximum bitrate per publishing stream (in bits per
# second).
@@ -116,6 +116,14 @@ url =
# Default is 2 mbit/sec.
#maxscreenbitrate = 2097152
# For type "proxy": type of URL configuration for proxy servers.
# Defaults to "static".
#
# Possible values:
# - static: A space-separated list of proxy URLs is given in the "url" option.
# - etcd: Proxy URLs are retrieved from an etcd cluster (see below).
#urltype = "static"
# For type "proxy": the id of the token to use when connecting to proxy servers.
#token_id = server1
@@ -123,6 +131,31 @@ url =
# connecting to proxy servers.
#token_key = privkey.pem
# For url type "etcd": Comma-separated list of static etcd endpoints to
# connect to.
#endpoints = 127.0.0.1:2379,127.0.0.1:22379,127.0.0.1:32379
# For url type "etcd": Options to perform endpoint discovery through DNS SRV.
# Only used if no endpoints are configured manually.
#discoverysrv = example.com
#discoveryservice = foo
# For url type "etcd": Path to private key, client certificate and CA
# certificate if TLS authentication should be used.
#clientkey = /path/to/etcd-client.key
#clientcert = /path/to/etcd-client.crt
#cacert = /path/to/etcd-ca.crt
# For url type "etcd": Key prefix of MCU proxy entries. All keys below will be
# watched and assumed to contain a JSON document. The entry "address" from this
# document will be used as proxy URL, other contents in the document will be
# ignored.
#
# Example:
# "/signaling/proxy/server/one" -> {"address": "https://proxy1.domain.invalid"}
# "/signaling/proxy/server/two" -> {"address": "https://proxy2.domain.invalid"}
#keyprefix = /signaling/proxy/server
[turn]
# API key that the MCU will need to send when requesting TURN credentials.
#apikey = the-api-key-for-the-rest-service