* SPDX-License-Identifier: AGPL-3.0-only ************************************/ global $mod_strings,$enterprise_project; //crmv@22252 global $table_prefix; $server=$_REQUEST['server']; $port=$_REQUEST['port']; $server_username=$_REQUEST['server_username']; $server_password=$_REQUEST['server_password']; $server_type = $_REQUEST['server_type']; $server_path = vtlib_purify($_REQUEST['server_path']); $db_update = true; if($_REQUEST['smtp_auth'] == 'on' || $_REQUEST['smtp_auth'] == 1) $smtp_auth = 'true'; else $smtp_auth = 'false'; //crmv@157490 $serverConfigUtils = ServerConfigUtils::getInstance(); $serverConfig = $serverConfigUtils->getConfiguration($server_type,array('id')); $id = $serverConfig['id']; //crmv@157490e if($server_type == 'proxy') { $action = 'ProxyServerConfig&proxy_server_mode=edit'; if (!$sock =@fsockopen($server, $port, $errno, $errstr, 30)) { $error_str = 'error='.sprintf(getTranslatedString('LBL_UNABLE_TO_CONNECT','Settings'),$server.':'.$port); $db_update = false; }else { $url = "http://www.google.co.in"; $proxy_cont = ''; $sock = fsockopen($server, $port); if (!$sock) {return false;} fputs($sock, "GET $url HTTP/1.0\r\nHost: $server\r\n"); fputs($sock, "Proxy-Authorization: Basic " . base64_encode ("$server_username:$server_password") . "\r\n\r\n"); while(!feof($sock)) {$proxy_cont .= fread($sock,4096);} fclose($sock); $proxy_cont = substr($proxy_cont, strpos($proxy_cont,"\r\n\r\n")+4); if(substr_count($proxy_cont, "Cache Access Denied") > 0) { $error_str = 'error=LBL_PROXY_AUTHENTICATION_REQUIRED'; $db_update = false; } else { $action = 'ProxyServerConfig'; } } } if($server_type == 'ftp_backup') { $action = 'BackupServerConfig&bkp_server_mode=edit&server='.$server.'&server_user='.$server_username.'&password='.$server_password; if(!function_exists('ftp_connect')){ $error_str = 'error=FTP support is not enabled.'; $db_update = false; }else { $conn_id = @ftp_connect($server); if(!$conn_id) { $error_str = 'error='.sprintf(getTranslatedString('LBL_UNABLE_TO_CONNECT','Settings'),$server); $db_update = false; }else { if(!@ftp_login($conn_id, $server_username, $server_password)) { $error_str = 'error=Couldn\'t connect to "'.$server.'" as user "'.$server_username.'"'; $db_update = false; } else { $action = 'BackupServerConfig'; } ftp_close($conn_id); } } } if($server_type == 'local_backup') { $action = 'BackupServerConfig&local_server_mode=edit&server_path="'.$server_path.'"'; if(!is_dir($server_path)){ $error_str = 'error1=Folder doesnt Exist or Specified a path which is not a folder'; $db_update = false; }else { if(!is_writable($server_path)) { $error_str = 'error1=Access Denied to write to "'.$server_path.'"'; $db_update = false; }else { $action = 'BackupServerConfig'; } } } if($server_type == 'asterisk') { $inc_call = $_REQUEST['inc_call']; if (!isset($_REQUEST['disable'])){ $action = 'AsteriskConfig&asterisk_server_mode=edit'; global $mod_strings, $extension, $ASTERISK_OUTGOING_CONTEXT; include_once ("asterisk/phpagi/phpagi-asmanager.php"); $channel = $extension; $context = $ASTERISK_OUTGOING_CONTEXT ; $priority = '1'; $timeout = ''; $callerid = ''; $variable = ''; $account = ''; $application = ''; $data = ''; $as = new AGI_AsteriskManager('',Array('server'=>$server,'port'=>$port,'username'=>$server_username,'secret'=>$server_password)); $res = $as->connect(); if (!$res){ $error_str = 'error='.$mod_strings['LBL_ASTERISK_SERVER_CANT_CONNECT'].' "'.$server.'"'; $db_update = false; } else { $db_update = true; $action = 'AsteriskConfig'; } } else { $db_update = true; $action = 'AsteriskConfig'; } } if($server_type == 'proxy' || $server_type == 'ftp_backup' || $server_type == 'local_backup') { if($db_update) { //crmv@157490 if (!empty($id) && $server_password == '') $server_password = $serverConfigUtils->getConfiguration($id, array('server_password'), 'id', true); //crmv@43764 $serverConfigUtils->saveConfiguration($id, array('server'=>$server,'server_port'=>$port,'server_username'=>$server_username,'server_password'=>$server_password,'server_type'=>$server_type,'smtp_auth'=>$smtp_auth,'server_path'=>$server_path)); //crmv@157490e } } if($server_type == 'asterisk') { if($db_update) { //crmv@157490 $serverConfigUtils->saveConfiguration($id, array('server'=>$server,'server_port'=>$port,'server_username'=>$server_username,'server_password'=>$server_password,'server_type'=>$server_type,'smtp_auth'=>$smtp_auth,'inc_call'=>$inc_call)); //crmv@157490e } } //crmv@7216 if($server_type =='fax') { require_once("modules/Fax/fax_.php"); global $current_user; $service_type = $_REQUEST['service_type']; $domain = $_REQUEST['adv_domain']; $account = $_REQUEST['adv_account']; $prefix = $_REQUEST['adv_prefix']; $name = $_REQUEST['adv_name']; if ($service_type == 'hylafax'){ //todo test fax } elseif ($service_type == 'fax_mail'){ $to_fax = getUserFaxId('id',$current_user->id); $from_fax = $to_fax; $subject = 'Test fax about the fax server configuration.'; $description = 'Dear '.$current_user->user_name.',

This is a test fax sent to confirm if a fax is actually being sent through the smtp server that you have configured.
Feel free to delete this mail.

Thanks and Regards,
Team '.$enterprise_project.'

'; //crmv@22252 if($to_fax != '') { $fax_status = send_fax('Users',$to_fax,$current_user->user_name,$from_fax,$subject,$description); $fax_status_str = $to_fax."=".$fax_status."&&&"; } else { $fax_status_str = "'".$to_fax."'=0&&&"; } $error_str = getFaxErrorString($fax_status_str); $action = 'FaxConfig'; if($fax_status != 1){ $action = 'FaxConfig&faxconfig_mode=edit&server_name='.$_REQUEST['server'].'&server_user='.$_REQUEST['server_username'].'&auth_check='.$_REQUEST['smtp_auth'].'&domain='.$_REQUEST['domain'].'&account='.$_REQUEST['account'].'&prefix='.$_REQUEST['prefix'].'&name='.$_REQUEST['name']; } } if($db_update) { //crmv@157490 if (!empty($id) && $server_password == '') $server_password = $serverConfigUtils->getConfiguration($id, array('server_password'), 'id', true); //crmv@43764 $serverConfigUtils->saveConfiguration($id, array('server'=>$server,'server_port'=>$port,'server_username'=>$server_username,'server_password'=>$server_password,'server_type'=>$server_type,'smtp_auth'=>$smtp_auth,'service_type'=>$service_type,'domain'=>$domain,'account'=>$account,'prefix'=>$prefix,'name'=>$name)); //crmv@157490e } } //crmv@7216e //crmv@7217 if($server_type =='sms') { require_once("modules/Sms/sms_.php"); $service_type = $_REQUEST['service_type']; $domain = $_REQUEST['adv_domain']; $account = $_REQUEST['adv_account']; $prefix = $_REQUEST['adv_prefix']; $name = $_REQUEST['adv_name']; if ($service_type == 'sms_mail'){ $to_sms = getUserSmsId('id',$current_user->id); $from_sms = $to_sms; $subject = 'Test sms about the sms server configuration.'; $description = 'Dear '.$current_user->user_name.',

This is a test sms sent to confirm if a sms is actually being sent through the smtp server that you have configured.
Feel free to delete this mail.

Thanks and Regards,
Team '.$enterprise_project.'

'; //crmv@22252 if($to_sms != '') { $sms_status = send_sms('Users',$to_sms,$current_user->user_name,$from_sms,$subject,$description); $sms_status_str = $to_sms."=".$sms_status."&&&"; } else { $sms_status_str = "'".$to_sms."'=0&&&"; } $error_str = getSmsErrorString($sms_status_str); $action = 'SmsConfig'; if($sms_status != 1){ $action = 'SmsConfig&smsconfig_mode=edit&server_name='.$_REQUEST['server'].'&server_user='.$_REQUEST['server_username'].'&auth_check='.$_REQUEST['smtp_auth'].'&domain='.$_REQUEST['domain'].'&account='.$_REQUEST['account'].'&prefix='.$_REQUEST['prefix'].'&name='.$_REQUEST['name']; } } if($db_update) { //crmv@157490 if (!empty($id) && $server_password == '') $server_password = $serverConfigUtils->getConfiguration($id, array('server_password'), 'id', true); //crmv@43764 $serverConfigUtils->saveConfiguration($id, array('server'=>$server,'server_port'=>$port,'server_username'=>$server_username,'server_password'=>$server_password,'server_type'=>$server_type,'smtp_auth'=>$smtp_auth,'service_type'=>$service_type,'domain'=>$domain,'account'=>$account,'prefix'=>$prefix,'name'=>$name)); //crmv@157490e } } //crmv@7217e //Added code to send a test mail to the currently logged in user if($server_type =='email') { //crmv@16265 //crmv@32079 //crmv@94084 $action = 'EmailConfig'; require_once('include/utils/VTEProperties.php'); $VTEProperties = VTEProperties::getInstance(); if ($VTEProperties->getProperty('smtp_editable') == '1') { $account_smtp = $_REQUEST['account_smtp']; //crmv@157490 if ($account_smtp == '') { if ($db_update) $serverConfigUtils->removeConfiguration($server_type); } else { require_once("modules/Emails/mail.php"); global $current_user; $to_email = getUserEmailId('id',$current_user->id); $from_email = $to_email; $subject = 'Test mail about the mail server configuration.'; $description = 'Dear '.$current_user->user_name.',

This is a test mail sent to confirm if a mail is actually being sent through the smtp server that you have configured.
Feel free to delete this mail.

Thanks and Regards,
Team '.$enterprise_project.'

'; //crmv@22252 if($to_email != '') { $mail_status = send_mail('Users',$to_email,$current_user->user_name,$from_email,$subject,$description); $mail_status_str = $to_email."=".$mail_status."&&&"; } else { $mail_status_str = "'".$to_email."'=0&&&"; } $error_str = getMailErrorString($mail_status_str); if($mail_status != 1) { $action = 'EmailConfig&emailconfig_mode=edit&server_name='.$_REQUEST['server'].'&server_user='.$_REQUEST['server_username'].'&auth_check='.$_REQUEST['smtp_auth'].'&port='.$_REQUEST['port'].'&account_type=smtp&account_smtp='.$_REQUEST['account_smtp']; } else { if($db_update) { if (!empty($id) && $server_password == '') $server_password = $serverConfigUtils->getConfiguration($id, array('server_password'), 'id', true); //crmv@43764 $serverConfigUtils->saveConfiguration($id, array('server'=>$server,'server_port'=>$port,'server_username'=>$server_username,'server_password'=>$server_password,'smtp_auth'=>$smtp_auth,'server_type'=>$server_type,'account'=>$account_smtp)); } } } //crmv@157490e } //crmv@94084e $server_type = 'email_imap'; //crmv@2963m crmv@157490 $focusMessages = CRMEntity::getInstance('Messages'); $old_servers = $focusMessages->getConfiguredAccounts(); $saved_ids = array(); $deleted = 0; for($i=0;!empty($_REQUEST['account_imap_'.$i]);$i++) { if ($_REQUEST['account_imap_deleted_'.$i] == '1') { $deleted++; continue; } (array_key_exists($i,$old_servers)) ? $id = $old_servers[$i]['account'] : $id = ''; $saved_ids[] = $serverConfigUtils->saveConfiguration($id, array('server'=>$_REQUEST['server_imap_'.$i],'server_port'=>$_REQUEST['port_imap_'.$i],'account'=>$_REQUEST['account_imap_'.$i],'ssl_tls'=>$_REQUEST['ssl_tls_imap_'.$i],'domain'=>$_REQUEST['domain_'.$i],'server_type'=>$server_type)); } if (!empty($saved_ids)) { $serverConfigUtils->removeConfiguration($server_type, $saved_ids); } elseif (empty($saved_ids) && $i > 0 && $i == $deleted) { $serverConfigUtils->removeConfiguration($server_type); } //crmv@2963me crmv@157490e //crmv@16265e //crmv@32079e } //While configuring Proxy settings, the submitted values will be retained when exception is thrown - dina if($server_type == 'proxy' && $error_str != '') { header("Location: index.php?module=Settings&parenttab=Settings&action=$action&server=$server&port=$port&server_username=$server_username&$error_str"); } else { header("Location: index.php?module=Settings&parenttab=Settings&action=$action&$error_str"); } ?>