mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2024-11-22 21:39:21 +00:00
Add "enabled" fields
This commit is contained in:
parent
43c76fa120
commit
b7a0208e71
@ -41,6 +41,8 @@ verbose-mode: true
|
|||||||
|
|
||||||
# Independent push notification service information
|
# Independent push notification service information
|
||||||
independent-push-service:
|
independent-push-service:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
# Server access (to create clients and push notifications)
|
# Server access (to create clients and push notifications)
|
||||||
control-url: http://localhost:4500/
|
control-url: http://localhost:4500/
|
||||||
control-token: BADTOKENTOCHANGE
|
control-token: BADTOKENTOCHANGE
|
||||||
@ -62,6 +64,7 @@ database:
|
|||||||
|
|
||||||
# Video calls configuration
|
# Video calls configuration
|
||||||
rtc-relay:
|
rtc-relay:
|
||||||
|
enabled: true
|
||||||
ip: 127.0.0.1
|
ip: 127.0.0.1
|
||||||
token: SecretToken
|
token: SecretToken
|
||||||
ice-servers:
|
ice-servers:
|
||||||
|
@ -94,10 +94,12 @@ pub fn get_config(r: &mut UserWsRequestHandler) -> RequestResult {
|
|||||||
r.forbidden("You do not belong to any call yet!".to_string())?;
|
r.forbidden("You do not belong to any call yet!".to_string())?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if conf().is_rtc_relay_enabled() {
|
||||||
if let Some(conf) = conf().rtc_relay.as_ref()
|
if let Some(conf) = conf().rtc_relay.as_ref()
|
||||||
{
|
{
|
||||||
return r.set_response(UserCallsConfig::new(conf));
|
return r.set_response(UserCallsConfig::new(conf));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
r.internal_error(ExecError::boxed_new("Missing calls configuration!"))
|
r.internal_error(ExecError::boxed_new("Missing calls configuration!"))
|
||||||
}
|
}
|
||||||
|
@ -237,7 +237,7 @@ pub async fn open_ws(req: actix_web::HttpRequest,
|
|||||||
let ip = req.peer_addr().unwrap();
|
let ip = req.peer_addr().unwrap();
|
||||||
|
|
||||||
// Check if video calls are enabled
|
// Check if video calls are enabled
|
||||||
if conf().rtc_relay.is_none() {
|
if !conf().is_rtc_relay_enabled() {
|
||||||
eprintln!("A relay from {} tried to connect to the server but the relay is disabled!", ip);
|
eprintln!("A relay from {} tried to connect to the server but the relay is disabled!", ip);
|
||||||
return Ok(actix_web::HttpResponse::BadRequest().body("RTC Relay not configured!"));
|
return Ok(actix_web::HttpResponse::BadRequest().body("RTC Relay not configured!"));
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ pub struct DatabaseConfig {
|
|||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct RtcRelayConfig {
|
pub struct RtcRelayConfig {
|
||||||
|
pub enabled: bool,
|
||||||
pub ip: String,
|
pub ip: String,
|
||||||
pub token: String,
|
pub token: String,
|
||||||
pub ice_servers: Vec<String>,
|
pub ice_servers: Vec<String>,
|
||||||
@ -28,6 +29,7 @@ pub struct RtcRelayConfig {
|
|||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct IndependentPushService {
|
pub struct IndependentPushService {
|
||||||
|
pub enabled: bool,
|
||||||
pub control_url: String,
|
pub control_url: String,
|
||||||
pub control_token: String,
|
pub control_token: String,
|
||||||
pub public_url: String,
|
pub public_url: String,
|
||||||
@ -115,6 +117,7 @@ impl Config {
|
|||||||
let rtc_config = match parsed_rtc.is_badvalue() {
|
let rtc_config = match parsed_rtc.is_badvalue() {
|
||||||
true => None,
|
true => None,
|
||||||
false => Some(RtcRelayConfig {
|
false => Some(RtcRelayConfig {
|
||||||
|
enabled: Config::yaml_bool(parsed_rtc, "enabled"),
|
||||||
ip: Config::yaml_str(parsed_rtc, "ip"),
|
ip: Config::yaml_str(parsed_rtc, "ip"),
|
||||||
token: Config::yaml_str(parsed_rtc, "token"),
|
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(),
|
ice_servers: parsed_rtc["ice-servers"].as_vec().unwrap().iter().map(|f| f.as_str().unwrap().to_string()).collect(),
|
||||||
@ -130,6 +133,7 @@ impl Config {
|
|||||||
let independent_push_service = match parsed_independent_push_service.is_badvalue() {
|
let independent_push_service = match parsed_independent_push_service.is_badvalue() {
|
||||||
true => None,
|
true => None,
|
||||||
false => Some(IndependentPushService {
|
false => Some(IndependentPushService {
|
||||||
|
enabled: Config::yaml_bool(parsed_independent_push_service, "enabled"),
|
||||||
control_url: Config::yaml_str(parsed_independent_push_service, "control-url"),
|
control_url: Config::yaml_str(parsed_independent_push_service, "control-url"),
|
||||||
control_token: Config::yaml_str(parsed_independent_push_service, "control-token"),
|
control_token: Config::yaml_str(parsed_independent_push_service, "control-token"),
|
||||||
public_url: Config::yaml_str(parsed_independent_push_service, "public-url"),
|
public_url: Config::yaml_str(parsed_independent_push_service, "public-url"),
|
||||||
@ -190,9 +194,16 @@ impl Config {
|
|||||||
format!("{}:{}", self.listen_address, self.port)
|
format!("{}:{}", self.listen_address, self.port)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Check if rtc relay is enabled
|
||||||
|
pub fn is_rtc_relay_enabled(&self) -> bool {
|
||||||
|
self.rtc_relay.is_some()
|
||||||
|
&& self.rtc_relay.as_ref().unwrap().enabled
|
||||||
|
}
|
||||||
|
|
||||||
/// Check if independent push notifications service is enabled
|
/// Check if independent push notifications service is enabled
|
||||||
pub fn is_independent_push_notifications_service_enabled(&self) -> bool {
|
pub fn is_independent_push_notifications_service_enabled(&self) -> bool {
|
||||||
self.independent_push_service.is_some()
|
self.independent_push_service.is_some()
|
||||||
|
&& self.independent_push_service.as_ref().unwrap().enabled
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,6 +8,10 @@ use crate::data::conversation::Conversation;
|
|||||||
|
|
||||||
/// Check out whether a conversation can make a call or not
|
/// Check out whether a conversation can make a call or not
|
||||||
pub fn can_have_call(conv: &Conversation) -> bool {
|
pub fn can_have_call(conv: &Conversation) -> bool {
|
||||||
|
if !conf().is_rtc_relay_enabled() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if let Some(conf) = &conf().rtc_relay {
|
if let Some(conf) = &conf().rtc_relay {
|
||||||
return conv.members.len() > 1
|
return conv.members.len() > 1
|
||||||
&& conf.max_users_per_calls >= conv.members.len() as u64
|
&& conf.max_users_per_calls >= conv.members.len() as u64
|
||||||
|
Loading…
Reference in New Issue
Block a user