mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2024-11-26 15:29:21 +00:00
Add RTC config
This commit is contained in:
parent
bc8cda78ae
commit
63f56d3dae
13
config.yaml
13
config.yaml
@ -31,4 +31,15 @@ database:
|
|||||||
password: pierre
|
password: pierre
|
||||||
|
|
||||||
# If set to true, every requests made on the database will be shown on the terminal
|
# If set to true, every requests made on the database will be shown on the terminal
|
||||||
log_all_queries: true
|
log-all-queries: true
|
||||||
|
|
||||||
|
|
||||||
|
# Video calls configuration
|
||||||
|
rtc-relay:
|
||||||
|
ip: ::ffff:127.0.0.1
|
||||||
|
token: SecretToken
|
||||||
|
ice-servers:
|
||||||
|
- stun:stun.l.google.com:19302
|
||||||
|
max-users-per-calls: 10
|
||||||
|
allow-video: true
|
||||||
|
max-users-per-video-calls: 6
|
@ -14,16 +14,27 @@ pub struct DatabaseConfig {
|
|||||||
pub log_all_queries: bool,
|
pub log_all_queries: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct RtcRelayConfig {
|
||||||
|
pub ip: String,
|
||||||
|
pub token: String,
|
||||||
|
pub ice_servers: Vec<String>,
|
||||||
|
pub max_users_per_calls: u64,
|
||||||
|
pub allow_video: bool,
|
||||||
|
pub max_users_per_video_calls: u64,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
pub port: i32,
|
pub port: i32,
|
||||||
pub listen_address: String,
|
pub listen_address: String,
|
||||||
pub storage_url: String,
|
pub storage_url: String,
|
||||||
pub storage_path: String,
|
pub storage_path: String,
|
||||||
pub database: DatabaseConfig,
|
|
||||||
pub proxy: Option<String>,
|
pub proxy: Option<String>,
|
||||||
pub force_https: bool,
|
pub force_https: bool,
|
||||||
pub verbose_mode: bool,
|
pub verbose_mode: bool,
|
||||||
|
pub database: DatabaseConfig,
|
||||||
|
pub rtc_relay: Option<RtcRelayConfig>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Globally available configuration
|
/// Globally available configuration
|
||||||
@ -34,6 +45,10 @@ impl Config {
|
|||||||
parsed[name].as_i64().expect(format!("{} is missing (int)", name).as_str()) as i32
|
parsed[name].as_i64().expect(format!("{} is missing (int)", name).as_str()) as i32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn yaml_u64(parsed: &Yaml, name: &str) -> u64 {
|
||||||
|
parsed[name].as_i64().expect(format!("{} is missing (int)", name).as_str()) as u64
|
||||||
|
}
|
||||||
|
|
||||||
fn yaml_str(parsed: &Yaml, name: &str) -> String {
|
fn yaml_str(parsed: &Yaml, name: &str) -> String {
|
||||||
parsed[name].as_str().expect(format!("{} is missing (str)", name).as_str()).to_string()
|
parsed[name].as_str().expect(format!("{} is missing (str)", name).as_str()).to_string()
|
||||||
}
|
}
|
||||||
@ -61,7 +76,20 @@ impl Config {
|
|||||||
name: Config::yaml_str(parsed_db, "name"),
|
name: Config::yaml_str(parsed_db, "name"),
|
||||||
username: Config::yaml_str(parsed_db, "username"),
|
username: Config::yaml_str(parsed_db, "username"),
|
||||||
password: Config::yaml_str(parsed_db, "password"),
|
password: Config::yaml_str(parsed_db, "password"),
|
||||||
log_all_queries: Config::yaml_bool(parsed_db, "log_all_queries"),
|
log_all_queries: Config::yaml_bool(parsed_db, "log-all-queries"),
|
||||||
|
};
|
||||||
|
|
||||||
|
let parsed_rtc = &parsed["rtc-relay"];
|
||||||
|
let rtc_config = match parsed_rtc.is_badvalue() {
|
||||||
|
true => None,
|
||||||
|
false => Some(RtcRelayConfig {
|
||||||
|
ip: Config::yaml_str(parsed_rtc, "ip"),
|
||||||
|
token: Config::yaml_str(parsed_rtc, "token"),
|
||||||
|
ice_servers: parsed_rtc["ice-servers"].as_vec().unwrap().iter().map(|f| f.as_str().unwrap().to_string()).collect(),
|
||||||
|
max_users_per_calls: Config::yaml_u64(parsed_rtc, "max-users-per-calls"),
|
||||||
|
allow_video: Config::yaml_bool(parsed_rtc, "allow-video"),
|
||||||
|
max_users_per_video_calls: Config::yaml_u64(parsed_rtc, "max-users-per-video-calls"),
|
||||||
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
let proxy = Config::yaml_str(parsed, "proxy");
|
let proxy = Config::yaml_str(parsed, "proxy");
|
||||||
@ -73,8 +101,6 @@ impl Config {
|
|||||||
storage_url: Config::yaml_str(parsed, "storage-url"),
|
storage_url: Config::yaml_str(parsed, "storage-url"),
|
||||||
storage_path: Config::yaml_str(parsed, "storage-path"),
|
storage_path: Config::yaml_str(parsed, "storage-path"),
|
||||||
|
|
||||||
database: database_conf,
|
|
||||||
|
|
||||||
proxy: match proxy.as_ref() {
|
proxy: match proxy.as_ref() {
|
||||||
"none" => None,
|
"none" => None,
|
||||||
s => Some(s.to_string())
|
s => Some(s.to_string())
|
||||||
@ -83,6 +109,10 @@ impl Config {
|
|||||||
force_https: Config::yaml_bool(parsed, "force-https"),
|
force_https: Config::yaml_bool(parsed, "force-https"),
|
||||||
|
|
||||||
verbose_mode: Config::yaml_bool(parsed, "verbose-mode"),
|
verbose_mode: Config::yaml_bool(parsed, "verbose-mode"),
|
||||||
|
|
||||||
|
database: database_conf,
|
||||||
|
|
||||||
|
rtc_relay: rtc_config,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Save new configuration in memory
|
// Save new configuration in memory
|
||||||
|
Loading…
Reference in New Issue
Block a user