<?php
/**
* Copyright (C) 2021 Double Bastion LLC
*
* This file is part of Roundpin, which is licensed under the
* GNU Affero General Public License Version 3.0. The license terms
* are detailed in the "LICENSE.txt" file located in the root directory.
*/
session_start();
// // header('Set-Cookie: PHPSESSID= ' . session_id() . '; SameSite=strict; Secure=true; HttpOnly=true;');
if (isset($_POST['s_ajax_call']) && ($_POST['s_ajax_call'] == $_SESSION['validate_s_access'])) {
define('ACCESSCONST', TRUE);
require('db-connect.php');
$username = $_POST['username'];
// Get the configuration data for the current user from the 'app_users' table
$querysel = $mysqli->prepare("SELECT id, userrole, username, wss_server, web_socket_port, server_path, profile_name, sip_username, sip_password, stun_server, audio_output_id,
video_src_id, video_height, frame_rate, aspect_ratio, video_orientation, ringtone, audio_src_id, auto_gain_control, echo_cancellation,
noise_suppression, ring_output_id, video_conf_window_width, profile_picture, language, notifications, show_vconf_usernames, display_vconf_user,
use_email, load_groups, date_added, date_modified, enabled FROM app_users WHERE BINARY username = ?");
$querysel->bind_param("s", $username);
$querysel->execute();
$confdatafromdb = $querysel->get_result()->fetch_assoc();
$cruserid = $confdatafromdb['id'];
// Get the fax settings for the current user from the 'fax_settings' table
$queryselfax = $mysqli->prepare("SELECT userid, tel_secret_key, tel_fax_app_id, tel_recwh_url, phax_api_key, phax_api_secret, phax_webhook_token, phax_receive_url, get_notification,
notification_email FROM fax_settings WHERE userid = ?");
$queryselfax->bind_param("i", $cruserid);
$queryselfax->execute();
$queryselfaxdata = $queryselfax->get_result()->fetch_assoc();
if ($queryselfaxdata) {
$confdatafromdb['tel_secret_key'] = $queryselfaxdata['tel_secret_key'];
$confdatafromdb['tel_fax_app_id'] = $queryselfaxdata['tel_fax_app_id'];
$confdatafromdb['tel_recwh_url'] = $queryselfaxdata['tel_recwh_url'];
$confdatafromdb['phax_api_key'] = $queryselfaxdata['phax_api_key'];
$confdatafromdb['phax_api_secret'] = $queryselfaxdata['phax_api_secret'];
$confdatafromdb['phax_webhook_token'] = $queryselfaxdata['phax_webhook_token'];
$confdatafromdb['phax_receive_url'] = $queryselfaxdata['phax_receive_url'];
$confdatafromdb['get_notification'] = $queryselfaxdata['get_notification'];
$confdatafromdb['notification_email'] = $queryselfaxdata['notification_email'];
} else {
$confdatafromdb['tel_secret_key'] = '';
$confdatafromdb['tel_fax_app_id'] = '';
$confdatafromdb['tel_recwh_url'] = '';
$confdatafromdb['phax_api_key'] = '';
$confdatafromdb['phax_api_secret'] = '';
$confdatafromdb['phax_webhook_token'] = '';
$confdatafromdb['phax_receive_url'] = '';
$confdatafromdb['get_notification'] = '';
$confdatafromdb['notification_email'] = '';
}
// Get the phone numbers for the current user from the 'phone_numbers' table
$queryselphnb = $mysqli->prepare("SELECT userid, voice_numbers, default_voice_number, sms_numbers, default_sms_number, fax_numbers, default_fax_number FROM phone_numbers
WHERE userid = ?");
$queryselphnb->bind_param("i", $cruserid);
$queryselphnb->execute();
$queryselphnbdata = $queryselphnb->get_result()->fetch_assoc();
if ($queryselphnbdata) {
$confdatafromdb['voice_numbers'] = $queryselphnbdata['voice_numbers'];
$confdatafromdb['default_voice_number'] = $queryselphnbdata['default_voice_number'];
$confdatafromdb['sms_numbers'] = $queryselphnbdata['sms_numbers'];
$confdatafromdb['default_sms_number'] = $queryselphnbdata['default_sms_number'];
$confdatafromdb['fax_numbers'] = $queryselphnbdata['fax_numbers'];
$confdatafromdb['default_fax_number'] = $queryselphnbdata['default_fax_number'];
} else {
$confdatafromdb['voice_numbers'] = '';
$confdatafromdb['default_voice_number'] = '';
$confdatafromdb['sms_numbers'] = '';
$confdatafromdb['default_sms_number'] = '';
$confdatafromdb['fax_numbers'] = '';
$confdatafromdb['default_fax_number'] = '';
}
// Get the email configuration data for the current user from the 'email_conf' table
$queryselrcnf = $mysqli->prepare("SELECT userid, rcdomain, rcuser, rcpassword, rcbasicauthuser, rcbasicauthpass FROM email_conf WHERE userid = ?");
$queryselrcnf->bind_param("i", $cruserid);
$queryselrcnf->execute();
$queryselrcnfdata = $queryselrcnf->get_result()->fetch_assoc();
if ($queryselrcnfdata) {
$confdatafromdb['rcdomain'] = $queryselrcnfdata['rcdomain'];
$confdatafromdb['rcuser'] = $queryselrcnfdata['rcuser'];
$confdatafromdb['rcpassword'] = $queryselrcnfdata['rcpassword'];
$confdatafromdb['rcbasicauthuser'] = $queryselrcnfdata['rcbasicauthuser'];
$confdatafromdb['rcbasicauthpass'] = $queryselrcnfdata['rcbasicauthpass'];
} else {
$confdatafromdb['rcdomain'] = '';
$confdatafromdb['rcuser'] = '';
$confdatafromdb['rcpassword'] = '';
$confdatafromdb['rcbasicauthuser'] = '';
$confdatafromdb['rcbasicauthpass'] = '';
}
// Replace the SIP password, fax keys (if any), Roundcube password (if any) and Roundcube basic auth password (if any) with placeholders
if ($confdatafromdb['sip_password']) {
$confdatafromdb['sip_password'] = "%20%20%20%20%20%20%20";
} else { $confdatafromdb['sip_password'] = ''; }
if ($confdatafromdb['tel_secret_key']) {
$confdatafromdb['tel_secret_key'] = "%20%20%20%20%20%20%20";
} else { $confdatafromdb['tel_secret_key'] = ''; }
if ($confdatafromdb['tel_fax_app_id']) {
$confdatafromdb['tel_fax_app_id'] = "%20%20%20%20%20%20%20";
} else { $confdatafromdb['tel_fax_app_id'] = ''; }
/*
if ($confdatafromdb['tel_recwh_url']) {
$confdatafromdb['tel_recwh_url'] = "%20%20%20%20%20%20%20";
} else { $confdatafromdb['tel_recwh_url'] = ''; }
*/
if ($confdatafromdb['phax_api_key']) {
$confdatafromdb['phax_api_key'] = "%20%20%20%20%20%20%20";
} else { $confdatafromdb['phax_api_key'] = ''; }
if ($confdatafromdb['phax_api_secret']) {
$confdatafromdb['phax_api_secret'] = "%20%20%20%20%20%20%20";
} else { $confdatafromdb['phax_api_secret'] = ''; }
if ($confdatafromdb['phax_webhook_token']) {
$confdatafromdb['phax_webhook_token'] = "%20%20%20%20%20%20%20";
} else { $confdatafromdb['phax_webhook_token'] = ''; }
/*
if ($confdatafromdb['phax_receive_url']) {
$confdatafromdb['phax_receive_url'] = "%20%20%20%20%20%20%20";
} else { $confdatafromdb['phax_receive_url'] = ''; }
*/
if ($confdatafromdb['rcpassword']) {
$confdatafromdb['rcpassword'] = "%20%20%20%20%20%20%20";
} else { $confdatafromdb['rcpassword'] = ''; }
if ($confdatafromdb['rcbasicauthpass']) {
$confdatafromdb['rcbasicauthpass'] = "%20%20%20%20%20%20%20";
} else { $confdatafromdb['rcbasicauthpass'] = ''; }
// Get the text conference data from the 'conferences_text' table
$querygettxt = $mysqli->prepare("SELECT id, text_conf_extension, text_conf_label, limit_to_groups FROM conferences_text");
$querygettxt->execute();
$textconfdatadb = $querygettxt->get_result();
$textconfarr = [];
while ($textconfinfo = $textconfdatadb->fetch_assoc()) {
$textconfarr[] = ['text_conf_extension' => $textconfinfo['text_conf_extension'], 'text_conf_label' => $textconfinfo['text_conf_label'],
'limit_to_groups' => $textconfinfo['limit_to_groups']];
}
// Get the audio conference data from the 'conferences_audio' table
$querygetaudio = $mysqli->prepare("SELECT id, audio_conf_extension, audio_conf_label, limit_to_groups FROM conferences_audio");
$querygetaudio->execute();
$audioconfdatadb = $querygetaudio->get_result();
$audioconfarr = [];
while ($audioconfinfo = $audioconfdatadb->fetch_assoc()) {
$audioconfarr[] = ['audio_conf_extension' => $audioconfinfo['audio_conf_extension'], 'audio_conf_label' => $audioconfinfo['audio_conf_label'],
'limit_to_groups' => $audioconfinfo['limit_to_groups']];
}
// Get the video conference data from the 'conferences_video' table
$querygetvideo = $mysqli->prepare("SELECT id, video_conf_extension, video_conf_label, limit_to_groups FROM conferences_video");
$querygetvideo->execute();
$videoconfdatadb = $querygetvideo->get_result();
$videoconfarr = [];
while ($videoconfinfo = $videoconfdatadb->fetch_assoc()) {
$videoconfarr[] = ['video_conf_extension' => $videoconfinfo['video_conf_extension'], 'video_conf_label' => $videoconfinfo['video_conf_label'],
'limit_to_groups' => $videoconfinfo['limit_to_groups']];
}
$response = ['datafromdb' => $confdatafromdb, 'textconferences' => $textconfarr, 'audioconferences' => $audioconfarr, 'videoconferences' => $videoconfarr];
echo json_encode($response);
} else {
header("Location: ../login.php");
}
?>