2016-01-07 05:26:29 +01:00
|
|
|
# Copyright 2014-2016 OpenMarket Ltd
|
2014-09-23 18:16:13 +02:00
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
|
|
|
|
from ._base import Config
|
|
|
|
|
|
|
|
|
|
|
|
class VoipConfig(Config):
|
2019-06-24 12:34:45 +02:00
|
|
|
def read_config(self, config, **kwargs):
|
2015-04-30 05:24:44 +02:00
|
|
|
self.turn_uris = config.get("turn_uris", [])
|
2017-01-19 14:08:20 +01:00
|
|
|
self.turn_shared_secret = config.get("turn_shared_secret")
|
|
|
|
self.turn_username = config.get("turn_username")
|
|
|
|
self.turn_password = config.get("turn_password")
|
2019-03-19 11:06:40 +01:00
|
|
|
self.turn_user_lifetime = self.parse_duration(
|
2019-06-20 11:32:02 +02:00
|
|
|
config.get("turn_user_lifetime", "1h")
|
2019-03-19 11:06:40 +01:00
|
|
|
)
|
2017-03-15 13:40:13 +01:00
|
|
|
self.turn_allow_guests = config.get("turn_allow_guests", True)
|
2015-04-30 05:24:44 +02:00
|
|
|
|
2015-09-22 13:57:40 +02:00
|
|
|
def default_config(self, **kwargs):
|
2015-04-30 05:24:44 +02:00
|
|
|
return """\
|
2019-02-19 14:54:29 +01:00
|
|
|
## TURN ##
|
2015-04-30 05:24:44 +02:00
|
|
|
|
|
|
|
# The public URIs of the TURN server to give to clients
|
2019-02-19 14:54:29 +01:00
|
|
|
#
|
2018-07-11 16:45:44 +02:00
|
|
|
#turn_uris: []
|
2015-04-30 05:24:44 +02:00
|
|
|
|
|
|
|
# The shared secret used to compute passwords for the TURN server
|
2019-02-19 14:54:29 +01:00
|
|
|
#
|
2018-07-11 16:45:44 +02:00
|
|
|
#turn_shared_secret: "YOUR_SHARED_SECRET"
|
2015-04-30 05:24:44 +02:00
|
|
|
|
2017-01-19 14:35:55 +01:00
|
|
|
# The Username and password if the TURN server needs them and
|
|
|
|
# does not use a token
|
2019-02-19 14:54:29 +01:00
|
|
|
#
|
2017-01-19 14:35:55 +01:00
|
|
|
#turn_username: "TURNSERVER_USERNAME"
|
|
|
|
#turn_password: "TURNSERVER_PASSWORD"
|
|
|
|
|
2015-04-30 05:24:44 +02:00
|
|
|
# How long generated TURN credentials last
|
2019-02-19 14:54:29 +01:00
|
|
|
#
|
2019-03-19 11:06:40 +01:00
|
|
|
#turn_user_lifetime: 1h
|
2017-03-15 13:22:18 +01:00
|
|
|
|
|
|
|
# Whether guests should be allowed to use the TURN server.
|
2017-03-15 13:40:42 +01:00
|
|
|
# This defaults to True, otherwise VoIP will be unreliable for guests.
|
2017-03-15 13:22:18 +01:00
|
|
|
# However, it does introduce a slight security risk as it allows users to
|
|
|
|
# connect to arbitrary endpoints without having first signed up for a
|
|
|
|
# valid account (e.g. by passing a CAPTCHA).
|
2019-02-19 14:54:29 +01:00
|
|
|
#
|
2019-03-19 11:06:40 +01:00
|
|
|
#turn_allow_guests: True
|
2015-04-30 05:24:44 +02:00
|
|
|
"""
|