Portions created by the Initial Developer are Copyright (C) 2008-2019 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes require_once "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; //check permissions if (permission_exists('voicemail_add') || permission_exists('voicemail_edit')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //action add or update if (is_uuid($_REQUEST["id"])) { $action = "update"; $voicemail_uuid = $_REQUEST["id"]; } else { $action = "add"; } //get http variables and set them to php variables $referer_path = $_REQUEST["referer_path"]; $referer_query = $_REQUEST["referer_query"]; if (count($_POST)>0) { //set the variables from the HTTP values $voicemail_id = $_POST["voicemail_id"]; $voicemail_password = $_POST["voicemail_password"]; $greeting_id = $_POST["greeting_id"]; $voicemail_options = $_POST["voicemail_options"]; $voicemail_alternate_greet_id = $_POST["voicemail_alternate_greet_id"]; $voicemail_mail_to = $_POST["voicemail_mail_to"]; $voicemail_sms_to = $_POST["voicemail_sms_to"]; $voicemail_transcription_enabled = $_POST["voicemail_transcription_enabled"]; $voicemail_file = $_POST["voicemail_file"]; $voicemail_local_after_email = $_POST["voicemail_local_after_email"]; $voicemail_enabled = $_POST["voicemail_enabled"]; $voicemail_description = $_POST["voicemail_description"]; $voicemail_tutorial = $_POST["voicemail_tutorial"]; //remove the space $voicemail_mail_to = str_replace(" ", "", $voicemail_mail_to); } //unassign the voicemail id copy from the voicemail id if ($_GET["a"] == "delete" && is_uuid($voicemail_uuid) && is_uuid($_REQUEST["voicemail_destination_uuid"])) { //set the variables $voicemail_destination_uuid = $_REQUEST["voicemail_destination_uuid"]; //build delete array $array['voicemail_destinations'][0]['voicemail_destination_uuid'] = $voicemail_destination_uuid; $array['voicemail_destinations'][0]['voicemail_uuid'] = $voicemail_uuid; //grant temporary permissions $p = new permissions; $p->add('voicemail_destination_delete', 'temp'); //execute delete $database = new database; $database->app_name = 'voicemails'; $database->app_uuid = 'b523c2d2-64cd-46f1-9520-ca4b4098e044'; $database->delete($array); unset($array); //revoke temporary permissions $p->delete('voicemail_destination_delete', 'temp'); //set message message::add($text['message-delete']); //redirect the browser header("Location: voicemail_edit.php?id=".$voicemail_uuid); exit; } //assign the voicemail id copy to the voicemail id if (permission_exists('voicemail_forward') && is_uuid($voicemail_uuid) && is_uuid($_REQUEST["voicemail_uuid_copy"])) { //set the variables $voicemail_uuid_copy = $_REQUEST["voicemail_uuid_copy"]; //build insert array $array['voicemail_destinations'][0]['domain_uuid'] = $domain_uuid; $array['voicemail_destinations'][0]['voicemail_destination_uuid'] = uuid(); $array['voicemail_destinations'][0]['voicemail_uuid'] = $voicemail_uuid; $array['voicemail_destinations'][0]['voicemail_uuid_copy'] = $voicemail_uuid_copy; //grant temporary permissions $p = new permissions; $p->add('voicemail_destination_add', 'temp'); //execute insert $database = new database; $database->app_name = 'voicemails'; $database->app_uuid = 'b523c2d2-64cd-46f1-9520-ca4b4098e044'; $database->save($array); unset($array); //revoke temporary permissions $p->delete('voicemail_destination_add', 'temp'); //set message message::add($text['message-add']); } //process the data if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { $msg = ''; if ($action == "update") { $voicemail_uuid = $_POST["voicemail_uuid"]; } //validate the token $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); header('Location: voicemails.php'); exit; } //check for all required data if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { require_once "resources/header.php"; require_once "resources/persist_form_var.php"; echo "
\n"; echo "
\n"; echo $msg."
"; echo "
\n"; persistformvar($_POST); echo "
\n"; require_once "resources/footer.php"; return; } //add or update the database if ($_POST["persistformvar"] != "true") { //get a new voicemail_uuid if ($action == "add" && permission_exists('voicemail_add')) { $voicemail_uuid = uuid(); } //add common array fields $array['voicemails'][0]['domain_uuid'] = $domain_uuid; $array['voicemails'][0]['voicemail_uuid'] = $voicemail_uuid; $array['voicemails'][0]['voicemail_id'] = $voicemail_id; $array['voicemails'][0]['voicemail_password'] = $voicemail_password; $array['voicemails'][0]['greeting_id'] = $greeting_id != '' ? $greeting_id : null; $array['voicemails'][0]['voicemail_alternate_greet_id'] = $voicemail_alternate_greet_id != '' ? $voicemail_alternate_greet_id : null; $array['voicemails'][0]['voicemail_mail_to'] = $voicemail_mail_to; $array['voicemails'][0]['voicemail_sms_to'] = $voicemail_sms_to; $array['voicemails'][0]['voicemail_transcription_enabled'] = $voicemail_transcription_enabled; $array['voicemails'][0]['voicemail_tutorial'] = $voicemail_tutorial; $array['voicemails'][0]['voicemail_file'] = $voicemail_file; if (permission_exists('voicemail_local_after_email')) { $array['voicemails'][0]['voicemail_local_after_email'] = $voicemail_local_after_email; } $array['voicemails'][0]['voicemail_enabled'] = $voicemail_enabled; $array['voicemails'][0]['voicemail_description'] = $voicemail_description; $database = new database; $database->app_name = 'voicemails'; $database->app_uuid = 'b523c2d2-64cd-46f1-9520-ca4b4098e044'; $database->save($array); unset($array); //add voicemail options if (permission_exists('voicemail_option_add') && sizeof($voicemail_options) > 0) { foreach ($voicemail_options as $index => $voicemail_option) { if ($voicemail_option['voicemail_option_digits'] == '' || $voicemail_option['voicemail_option_param'] == '') { unset($voicemail_options[$index]); } } foreach ($voicemail_options as $index => $voicemail_option) { if (is_numeric($voicemail_option["voicemail_option_param"])) { //if numeric then add tranfer $1 XML domain_name $voicemail_option['voicemail_option_action'] = "menu-exec-app"; $voicemail_option['voicemail_option_param'] = "transfer ".$voicemail_option["voicemail_option_param"]." XML ".$_SESSION['domain_name']; } else { //seperate the action and the param $option_array = explode(":", $voicemail_option["voicemail_option_param"]); $voicemail_option['voicemail_option_action'] = array_shift($option_array); $voicemail_option['voicemail_option_param'] = join(':', $option_array); } //build insert array $voicemail_option_uuid = uuid(); $array['voicemail_options'][$index]['voicemail_option_uuid'] = $voicemail_option_uuid; $array['voicemail_options'][$index]['voicemail_uuid'] = $voicemail_uuid; $array['voicemail_options'][$index]['domain_uuid'] = $domain_uuid; $array['voicemail_options'][$index]['voicemail_option_digits'] = $voicemail_option['voicemail_option_digits']; $array['voicemail_options'][$index]['voicemail_option_action'] = $voicemail_option['voicemail_option_action']; $array['voicemail_options'][$index]['voicemail_option_param'] = $voicemail_option['voicemail_option_param']; $array['voicemail_options'][$index]['voicemail_option_order'] = $voicemail_option['voicemail_option_order']; $array['voicemail_options'][$index]['voicemail_option_description'] = $voicemail_option['voicemail_option_description']; } if (is_array($array) && @sizeof($array) != 0) { //grant temporary permissions $p = new permissions; $p->add('voicemail_option_add', 'temp'); //execute inserts $database = new database; $database->app_name = 'voicemails'; $database->app_uuid = 'b523c2d2-64cd-46f1-9520-ca4b4098e044'; $database->save($array); unset($array); //revoke temporary permissions $p->delete('voicemail_option_add', 'temp'); } } //set message if ($action == "add" && permission_exists('voicemail_add')) { message::add($text['message-add']); } if ($action == "update" && permission_exists('voicemail_edit')) { message::add($text['message-update']); } //redirect user if ($action == 'add') { header("Location: voicemails.php"); } else if ($action == "update") { header("Location: voicemail_edit.php?id=".$voicemail_uuid); } exit; } } //initialize the destinations object $destination = new destinations; //pre-populate the form if (count($_GET)>0 && is_uuid($_GET["id"]) && $_POST["persistformvar"] != "true") { $voicemail_uuid = $_GET["id"]; $sql = "select * from v_voicemails "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and voicemail_uuid = :voicemail_uuid "; $parameters['domain_uuid'] = $domain_uuid; $parameters['voicemail_uuid'] = $voicemail_uuid; $database = new database; $row = $database->select($sql, $parameters, 'row'); if (is_array($row) && @sizeof($row) != 0) { $voicemail_id = $row["voicemail_id"]; $voicemail_password = $row["voicemail_password"]; $greeting_id = $row["greeting_id"]; $voicemail_alternate_greet_id = $row["voicemail_alternate_greet_id"]; $voicemail_mail_to = $row["voicemail_mail_to"]; $voicemail_sms_to = $row["voicemail_sms_to"]; $voicemail_transcription_enabled = $row["voicemail_transcription_enabled"]; $voicemail_tutorial = $row["voicemail_tutorial"]; $voicemail_file = $row["voicemail_file"]; $voicemail_local_after_email = $row["voicemail_local_after_email"]; $voicemail_enabled = $row["voicemail_enabled"]; $voicemail_description = $row["voicemail_description"]; } unset($sql, $parameters, $row); } else { $voicemail_file = $_SESSION['voicemail']['voicemail_file']['text']; $voicemail_local_after_email = $_SESSION['voicemail']['keep_local']['boolean']; } //remove the spaces $voicemail_mail_to = str_replace(" ", "", $voicemail_mail_to); //set defaults if (strlen($voicemail_local_after_email) == 0) { $voicemail_local_after_email = "true"; } if (strlen($voicemail_enabled) == 0) { $voicemail_enabled = "true"; } if (strlen($voicemail_transcription_enabled) == 0) { $voicemail_transcription_enabled = "false"; } if (strlen($voicemail_tutorial) == 0) { $voicemail_tutorial = "false"; } //get the greetings list $sql = "select * from v_voicemail_greetings "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and voicemail_id = :voicemail_id "; $sql .= "order by greeting_name asc "; $parameters['domain_uuid'] = $domain_uuid; $parameters['voicemail_id'] = $voicemail_id; $database = new database; $greetings = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); //create token $object = new token; $token = $object->create($_SERVER['PHP_SELF']); //show the header require_once "resources/header.php"; $document['title'] = $text['title-voicemail']; //password complexity $password_complexity = $_SESSION['voicemail']['password_complexity']['boolean']; if ($password_complexity == "true") { echo "\n"; } //set the location for the back button if (permission_exists('voicemail_view')) { $back_button_location = "voicemails.php"; } else { $back_button_location = "voicemail_messages.php?voicemail_uuid=".urlencode($voicemail_uuid); } //show the content echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; if (permission_exists('voicemail_option_add') || permission_exists('voicemail_option_edit')) { echo " "; echo " "; echo " "; echo " "; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; if (permission_exists('voicemail_sms_edit')) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } if (permission_exists('voicemail_transcription_edit') && $_SESSION['voicemail']['transcribe_enabled']['boolean'] == "true") { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; if (permission_exists('voicemail_local_after_email')) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } if (permission_exists('voicemail_forward') && $action == "update") { echo " "; echo " "; echo " "; echo " "; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo " "; echo "
"; echo " ".$text['title-voicemail'].""; echo "

"; echo "
\n"; echo " \n"; if ($password_complexity == "true") { echo " "; } else { echo " \n"; } echo "
\n"; echo " ".$text['label-voicemail_id']."\n"; echo "\n"; echo " \n"; echo " \n"; //help defeat browser auto-fill echo "
\n"; echo $text['description-voicemail_id']."\n"; echo "
\n"; echo " ".$text['label-voicemail_password']."\n"; echo "\n"; echo " \n"; //help defeat browser auto-fill echo " \n"; echo "
\n"; echo $text['description-voicemail_password']."\n"; echo "
\n"; echo " ".$text['label-voicemail_tutorial']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-voicemail_tutorial']."\n"; echo "
\n"; echo " ".$text['label-greeting']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-greeting']."\n"; echo "
\n"; echo " ".$text['label-voicemail_alternate_greet_id']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo " ".$text['description-voicemail_alternate_greet_id']."\n"; echo "
".$text['label-options'].""; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; if (is_uuid($voicemail_uuid)) { $sql = "select * from v_voicemail_options "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and voicemail_uuid = :voicemail_uuid "; $sql .= "order by voicemail_option_digits, voicemail_option_order asc "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['voicemail_uuid'] = $voicemail_uuid; $database = new database; $result = $database->select($sql, $parameters, 'all'); if (is_array($result) && @sizeof($result) != 0) { foreach($result as $field) { $voicemail_option_param = $field['voicemail_option_param']; if (strlen(trim($voicemail_option_param)) == 0) { $voicemail_option_param = $field['voicemail_option_action']; } $voicemail_option_param = str_replace("menu-", "", $voicemail_option_param); $voicemail_option_param = str_replace("XML", "", $voicemail_option_param); $voicemail_option_param = str_replace("transfer", "", $voicemail_option_param); $voicemail_option_param = str_replace("bridge", "", $voicemail_option_param); $voicemail_option_param = str_replace($_SESSION['domain_name'], "", $voicemail_option_param); $voicemail_option_param = str_replace("\${domain_name}", "", $voicemail_option_param); $voicemail_option_param = str_replace("\${domain}", "", $voicemail_option_param); $voicemail_option_param = ucfirst(trim($voicemail_option_param)); echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; } } } unset($sql, $parameters, $result, $field); for ($c = 0; $c < 1; $c++) { echo " \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; } echo "
".$text['label-option']."".$text['label-destination']."".$text['label-order']."".$text['label-description']."
\n"; echo " ".escape($field['voicemail_option_digits']); echo " \n"; echo " ".escape($voicemail_option_param)." \n"; echo " \n"; echo " ".escape($field['voicemail_option_order'])." \n"; echo " \n"; echo " ".escape($field['voicemail_option_description'])." \n"; echo " "; echo "".$v_link_label_edit.""; if (permission_exists('voicemail_option_delete')) { echo "".$v_link_label_delete.""; } echo "
\n"; echo " \n"; echo "\n"; echo $destination->select('ivr', 'voicemail_options['.$c.'][voicemail_option_param]', ''); echo "\n"; echo " \n"; echo "\n"; echo " \n"; echo "\n"; echo " \n"; echo "
\n"; echo " ".$text['description-options']."\n"; echo "
\n"; echo "
\n"; echo " ".$text['label-voicemail_mail_to']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-voicemail_mail_to']."\n"; echo "
\n"; echo " ".$text['label-voicemail_sms_to']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-voicemail_sms_to']."\n"; echo "
\n"; echo " ".$text['label-voicemail_transcription_enabled']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-voicemail_transcription_enabled']."\n"; echo "
\n"; echo " ".$text['label-voicemail_file']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-voicemail_file']."\n"; echo "
\n"; echo " ".$text['label-voicemail_local_after_email']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-voicemail_local_after_email']."\n"; echo "
".$text['label-forward_destinations'].""; $sql = " select v.voicemail_id, d.voicemail_destination_uuid, d.voicemail_uuid_copy from v_voicemails as v, v_voicemail_destinations as d where d.voicemail_uuid_copy = v.voicemail_uuid and v.domain_uuid = :domain_uuid and v.voicemail_enabled = 'true' and d.voicemail_uuid = :voicemail_uuid order by v.voicemail_id asc"; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['voicemail_uuid'] = $voicemail_uuid; $database = new database; $result = $database->select($sql, $parameters, 'all'); if (is_array($result) && @sizeof($result) != 0) { echo " \n"; foreach($result as $field) { echo " \n"; echo " \n"; echo " \n"; echo " \n"; $voicemail_uuids_copied[] = $field['voicemail_uuid_copy']; } echo "
".escape($field['voicemail_id'])."\n"; echo " ".$v_link_label_delete."\n"; echo "
\n"; echo "
\n"; } unset($sql, $parameters, $result, $field); if (is_array($voicemail_uuids_copied) && @sizeof($voicemail_uuids_copied) != 0) { // modify sql to remove already copied voicemail uuids from the list foreach ($voicemail_uuids_copied as $x => $voicemail_uuid_copied) { if (is_uuid($voicemail_uuid_copied)) { $sql_where_and[] = 'v.voicemail_uuid <> :voicemail_uuid_'.$x; $parameters['voicemail_uuid_'.$x] = $voicemail_uuid_copied; } } if (is_array($sql_where_and) && @sizeof($sql_where_and) != 0) { $sql_where = ' and '.implode(' and ', $sql_where_and); } unset($voicemail_uuids_copied, $x, $voicemail_uuid_copied, $sql_where_and); } $sql = " select v.voicemail_id, v.voicemail_uuid from v_voicemails as v where v.domain_uuid = :domain_uuid and v.voicemail_enabled = 'true' and v.voicemail_uuid <> :voicemail_uuid ".$sql_where." order by v.voicemail_id asc"; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['voicemail_uuid'] = $voicemail_uuid; $database = new database; $result = $database->select($sql, $parameters, 'all'); echo " "; echo " \n"; echo "
\n"; echo " ".$text['description-forward_destinations']."\n"; echo "
\n"; echo "
\n"; echo " ".$text['label-voicemail_enabled']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-voicemail_enabled']."\n"; echo "
\n"; echo " ".$text['label-voicemail_description']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-voicemail_description']."\n"; echo "
\n"; if ($action == "update") { echo " \n"; } $http_referer = parse_url($_SERVER["HTTP_REFERER"]); echo " \n"; echo " \n"; echo " \n"; echo "
"; if ($password_complexity == "true") { echo " "; } else { echo " \n"; } echo "
"; echo "

"; echo "
"; echo "\n"; //include the footer require_once "resources/footer.php"; ?>