diff --git a/app/fax/app_config.php b/app/fax/app_config.php index 45514353aa..db9727586e 100644 --- a/app/fax/app_config.php +++ b/app/fax/app_config.php @@ -258,6 +258,11 @@ $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; $apps[$x]['permissions'][$y]['groups'][] = "admin"; $apps[$x]['permissions'][$y]['groups'][] = "fax"; + $y++; + $apps[$x]['permissions'][$y]['name'] = "fax_email_confirmation"; + $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; + $apps[$x]['permissions'][$y]['groups'][] = "admin"; + $apps[$x]['permissions'][$y]['groups'][] = "fax"; //default settings $y=0; @@ -542,6 +547,11 @@ $apps[$x]['db'][$y]['fields'][$z]['search'] = 'true'; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; $z++; + $apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "fax_email_confirmation"; + $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; + $apps[$x]['db'][$y]['fields'][$z]['search'] = 'true'; + $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Delivery addresses for fax confirmations"; + $z++; $apps[$x]['db'][$y]['fields'][$z]['name']['text'] = "fax_file"; $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; $apps[$x]['db'][$y]['fields'][$z]['search'] = 'true'; diff --git a/app/fax/app_languages.php b/app/fax/app_languages.php index 48dbdeb65f..9661de6af5 100644 --- a/app/fax/app_languages.php +++ b/app/fax/app_languages.php @@ -2592,6 +2592,60 @@ $text['label-email']['zh-cn'] = "电子邮件"; $text['label-email']['ja-jp'] = "メールアドレス"; $text['label-email']['ko-kr'] = "이메일"; +$text['label-email-confirmation']['en-us'] = "Confirmation Emails"; +$text['label-email-confirmation']['en-gb'] = "Confirmation Emails"; +$text['label-email-confirmation']['ar-eg'] = ""; +$text['label-email-confirmation']['de-at'] = ""; +$text['label-email-confirmation']['de-ch'] = ""; +$text['label-email-confirmation']['de-de'] = ""; +$text['label-email-confirmation']['el-gr'] = ""; +$text['label-email-confirmation']['es-cl'] = ""; +$text['label-email-confirmation']['es-mx'] = ""; +$text['label-email-confirmation']['fr-ca'] = ""; +$text['label-email-confirmation']['fr-fr'] = ""; +$text['label-email-confirmation']['he-il'] = ""; +$text['label-email-confirmation']['it-it'] = ""; +$text['label-email-confirmation']['ka-ge'] = ""; +$text['label-email-confirmation']['nl-nl'] = ""; +$text['label-email-confirmation']['pl-pl'] = ""; +$text['label-email-confirmation']['pt-br'] = ""; +$text['label-email-confirmation']['pt-pt'] = ""; +$text['label-email-confirmation']['ro-ro'] = ""; +$text['label-email-confirmation']['ru-ru'] = ""; +$text['label-email-confirmation']['sv-se'] = ""; +$text['label-email-confirmation']['uk-ua'] = ""; +$text['label-email-confirmation']['tr-tr'] = ""; +$text['label-email-confirmation']['zh-cn'] = ""; +$text['label-email-confirmation']['ja-jp'] = ""; +$text['label-email-confirmation']['ko-kr'] = ""; + +$text['description-email-confirmation']['en-us'] = "List all emails that should receive notifications of successful or failed faxes"; +$text['description-email-confirmation']['en-gb'] = "List all emails that should receive notifications of successful or failed faxes"; +$text['description-email-confirmation']['ar-eg'] = ""; +$text['description-email-confirmation']['de-at'] = ""; +$text['description-email-confirmation']['de-ch'] = ""; +$text['description-email-confirmation']['de-de'] = ""; +$text['description-email-confirmation']['el-gr'] = ""; +$text['description-email-confirmation']['es-cl'] = ""; +$text['description-email-confirmation']['es-mx'] = ""; +$text['description-email-confirmation']['fr-ca'] = ""; +$text['description-email-confirmation']['fr-fr'] = ""; +$text['description-email-confirmation']['he-il'] = ""; +$text['description-email-confirmation']['it-it'] = ""; +$text['description-email-confirmation']['ka-ge'] = ""; +$text['description-email-confirmation']['nl-nl'] = ""; +$text['description-email-confirmation']['pl-pl'] = ""; +$text['description-email-confirmation']['pt-br'] = ""; +$text['description-email-confirmation']['pt-pt'] = ""; +$text['description-email-confirmation']['ro-ro'] = ""; +$text['description-email-confirmation']['ru-ru'] = ""; +$text['description-email-confirmation']['sv-se'] = ""; +$text['description-email-confirmation']['uk-ua'] = ""; +$text['description-email-confirmation']['tr-tr'] = ""; +$text['description-email-confirmation']['zh-cn'] = ""; +$text['description-email-confirmation']['ja-jp'] = ""; +$text['description-email-confirmation']['ko-kr'] = ""; + $text['label-destination-number']['en-us'] = "Destination Number"; $text['label-destination-number']['en-gb'] = "Destination Number"; $text['label-destination-number']['ar-eg'] = "رقم الوجهة"; diff --git a/app/fax/fax_edit.php b/app/fax/fax_edit.php index 0345c96c16..c568217ad7 100644 --- a/app/fax/fax_edit.php +++ b/app/fax/fax_edit.php @@ -120,6 +120,7 @@ $fax_prefix = $_POST["fax_prefix"]; $fax_email = implode(',',array_filter($_POST["fax_email"] ?? [])); $fax_file = $_POST["fax_file"]; + $fax_email_confirmation = implode(',',array_filter($_POST["fax_email_confirmation"] ?? [])); $fax_email_connection_type = $_POST["fax_email_connection_type"]; $fax_email_connection_host = $_POST["fax_email_connection_host"]; $fax_email_connection_port = $_POST["fax_email_connection_port"]; @@ -264,6 +265,9 @@ //escape the commas with a backslash and remove the spaces $fax_email = str_replace(" ", "", $fax_email); + //escape the commas with a backslash and remove the spaces + $fax_email_confirmation = str_replace(" ", "", $fax_email_confirmation); + //set the $php_bin //if (file_exists(PHP_BINDIR."/php")) { $php_bin = 'php'; } if (substr(strtoupper(PHP_OS), 0, 3) == "WIN") { @@ -335,6 +339,9 @@ $array['fax'][0]['fax_email'] = $fax_email; $array['fax'][0]['fax_file'] = $fax_file; } + if (permission_exists('fax_email_confirmation')) { + $array['fax'][0]['fax_email_confirmation'] = $fax_email_confirmation; + } if (permission_exists('fax_caller_id_name')) { $array['fax'][0]['fax_caller_id_name'] = $fax_caller_id_name; } @@ -429,6 +436,7 @@ $fax_name = $row["fax_name"]; $fax_email = $row["fax_email"]; $fax_file = $row["fax_file"]; + $fax_email_confirmation = $row["fax_email_confirmation"]; $fax_caller_id_name = $row["fax_caller_id_name"]; $fax_caller_id_number = $row["fax_caller_id_number"]; $fax_toll_allow = $row["fax_toll_allow"]; @@ -478,6 +486,9 @@ //build the fax_emails array $fax_emails = explode(',', $fax_email ?? ''); +//build the fax_email_confirmations array + $fax_email_confirmations = explode(',', $fax_email_confirmation ?? ''); + //set the dialplan_uuid if (empty($dialplan_uuid) || !is_uuid($dialplan_uuid)) { $dialplan_uuid = uuid(); @@ -601,7 +612,7 @@ if (permission_exists('fax_email')) { echo "\n"; echo "\n"; - echo " ".$text['label-email']."\n"; + echo " ".$text['label-email_email-to-fax']."\n"; echo "\n"; echo "\n"; echo "\n"; @@ -609,13 +620,13 @@ foreach ($fax_emails as $email) { echo "\n"; echo "\n"; $x++; } echo "\n"; echo " \n"; echo "
\n"; - echo " \n"; + echo " \n"; echo "
\n"; - echo " \n"; + echo " \n"; echo "
\n"; echo "
\n"; @@ -638,6 +649,33 @@ echo "\n"; } + if (permission_exists('fax_email_confirmation')) { + echo "\n"; + echo "\n"; + echo " ".$text['label-email-confirmation']."\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $x = 0; + + foreach($fax_email_confirmations as $email) { + echo "\n"; + echo "\n"; + $x++; + } + echo "\n"; + echo " \n"; + echo "
\n"; + echo " \n"; + echo "
\n"; + echo " \n"; + echo "
\n"; + echo "
\n"; + echo " ".$text['description-email-confirmation']."\n"; + echo "\n"; + echo "\n"; + } + if (permission_exists('fax_caller_id_name')) { echo "\n"; echo "\n"; diff --git a/app/fax/fax_send.php b/app/fax/fax_send.php index 39d39702f4..ccb37864f5 100644 --- a/app/fax/fax_send.php +++ b/app/fax/fax_send.php @@ -673,9 +673,34 @@ if (!function_exists('fax_split_dtmf')) { $parameters['fax_uuid'] = $fax_uuid; $database = new database; $row = $database->select($sql, $parameters, 'row'); - $mail_to_address = $row["fax_email"]; + //$mail_to_address = $row["fax_email"]; $fax_prefix = $row["fax_prefix"]; - unset($sql, $parameters, $row); + unset($sql, $parameters); + + //Get the currently logged in user's email + if(isset($_SESSION["user_email"])) { + $mail_to_address = $_SESSION["user_email"]; + } else { + $sql = "select user_email from v_users where user_uuid = :user_uuid "; + $parameters['user_uuid'] = $user_uuid; + $database = new database; + $user_settings = $database->select($sql, $parameters, 'row'); + + $mail_to_address = $user_settings["user_email"]; + unset($sql, $parameters, $user_settings); + } + + //Get a list of emails to send confirmation emails to, including that of the fax sender + if(!empty($row["fax_email_confirmation"])) { + $tmp_emails = explode(',', $row["fax_email_confirmation"]); + foreach ($tmp_emails as $email) { + if(strpos($mail_to_address, $email) === false) { + $mail_to_address .= ','.$email; + } + } + } + + unset($row); //for email to fax send email notification back to the email sender if ($included) {