Portions created by the Initial Developer are Copyright (C) 2008-2013 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ include "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; if (permission_exists('voicemail_greeting_view')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support require_once "app_languages.php"; foreach($text as $key => $value) { $text[$key] = $value[$_SESSION['domain']['language']['code']]; } //additional includes require_once "resources/paging.php"; //set the max php execution time ini_set(max_execution_time,7200); //get the http get values and set them as php variables $voicemail_id = check_str($_REQUEST["id"]); $order_by = check_str($_GET["order_by"]); $order = check_str($_GET["order"]); //used to search the array to determin if an extension is assigned to the user function is_extension_assigned($number) { $result = false; foreach ($_SESSION['user']['extension'] as $row) { if ($row['user'] == $number) { $result = true; } } return $result; } //allow admins, superadmins and users that are assigned to the extension to view the page if (if_group("superadmin") || if_group("admin")) { //access granted } else { //deny access if the user extension is not assigned if (!is_extension_assigned($voicemail_id)) { echo "access denied"; return; } } //set the greeting directory $v_greeting_dir = $_SESSION['switch']['storage']['dir'].'/voicemail/default/'.$_SESSION['domains'][$domain_uuid]['domain_name'].'/'.$voicemail_id; //upload the recording if (($_POST['submit'] == "Save") && is_uploaded_file($_FILES['file']['tmp_name']) && permission_exists('recording_upload')) { if ($_POST['type'] == 'rec') { for($i = 1; $i < 10; $i++){ $tmp_greeting = 'greeting_'.$i.'.wav'; if (!file_exists($v_greeting_dir.'/'.$tmp_greeting)) { $_REQUEST['greeting'] = $tmp_greeting; break; } } unset($tmp_greeting); if ($_REQUEST['greeting']) { mkdir($v_greeting_dir, 0777, true); move_uploaded_file($_FILES['file']['tmp_name'], $v_greeting_dir.'/'.$_REQUEST['greeting']); $save_msg = "Uploaded ".$_REQUEST['greeting']; } } } //save the selected greeting if ($_REQUEST['submit'] == "Save") { //save the greeting_id to a variable $greeting_id = check_str($_REQUEST['greeting_id']); //set the greeting_id $sql = "update v_voicemails "; $sql .= "set greeting_id = '$greeting_id' "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and voicemail_id = '$voicemail_id' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); unset($prep_statement); } //download the voicemail greeting if ($_GET['a'] == "download") { // && permission_exists('voicemail_greeting_download')) { session_cache_limiter('public'); if ($_GET['type'] = "rec") { if (file_exists($v_greeting_dir.'/'.base64_decode($_GET['filename']))) { $fd = fopen($v_greeting_dir.'/'.base64_decode($_GET['filename']), "rb"); if ($_GET['t'] == "bin") { header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header('Content-Disposition: attachment; filename="'.base64_decode($_GET['filename']).'"'); } else { $file_ext = substr(base64_decode($_GET['filename']), -3); if ($file_ext == "wav") { header("Content-Type: audio/x-wav"); } if ($file_ext == "mp3") { header("Content-Type: audio/mp3"); } } header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past header("Content-Length: " . filesize($v_greeting_dir.'/'.base64_decode($_GET['filename']))); fpassthru($fd); } } exit; } //build a list of voicemail greetings $config_voicemail_greeting_list = '|'; $i = 0; $sql = "select * from v_voicemail_greetings "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and voicemail_id = '$voicemail_id' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $config_greeting_list = "|"; foreach ($result as &$row) { $config_greeting_list .= $row['greeting_name']."|"; } unset ($prep_statement); //add recordings to the database if (is_dir($v_greeting_dir.'/')) { if ($dh = opendir($v_greeting_dir.'/')) { while (($file = readdir($dh)) !== false) { if (filetype($v_greeting_dir."/".$file) == "file") { if (strpos($config_greeting_list, "|".$file) === false) { if (substr($file, 0, 8) == "greeting") { //file not found add it to the database $a_file = explode("\.", $file); $voicemail_greeting_uuid = uuid(); $sql = "insert into v_voicemail_greetings "; $sql .= "("; $sql .= "domain_uuid, "; $sql .= "voicemail_greeting_uuid, "; $sql .= "voicemail_id, "; $sql .= "greeting_name, "; $sql .= "greeting_description "; $sql .= ")"; $sql .= "values "; $sql .= "("; $sql .= "'$domain_uuid', "; $sql .= "'$voicemail_greeting_uuid', "; $sql .= "'$voicemail_id', "; $sql .= "'".$a_file[0]."', "; $sql .= "'' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); } } else { //echo "The $file was found.
"; } } } closedir($dh); } } //get the number of rows in v_extensions $sql = "select greeting_id from v_voicemails "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and voicemail_id = '$voicemail_id' "; $prep_statement = $db->prepare(check_sql($sql)); if ($prep_statement) { $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_ASSOC); $greeting_id = $row['greeting_id']; } unset($prep_statement, $result); //include the header require_once "resources/header.php"; //show the message if (strlen($save_msg) > 0) { echo "Message: ".$save_msg; } //begin the content echo ""; echo "
\n"; echo "
"; echo "\n"; echo "\n"; echo " \n"; echo "\n"; echo "
\n"; echo "
"; echo "\n"; echo " \n"; echo " "; echo " \n"; echo " "; echo " "; echo " \n"; echo " \n"; echo "
\n"; echo " ".$text['title'].":
\n"; echo "
\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "    \n"; echo " \n"; echo "
\n"; echo " ".$text['description']." $voicemail_id.
\n"; echo "
\n"; echo "
\n"; //get the number of rows in v_voicemail_greetings $sql = "select count(*) as num_rows from v_voicemail_greetings "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and voicemail_id = '$voicemail_id' "; $prep_statement = $db->prepare(check_sql($sql)); if ($prep_statement) { $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_ASSOC); if ($row['num_rows'] > 0) { $num_rows = $row['num_rows']; } else { $num_rows = '0'; } } unset($prep_statement, $result); //prepare to page the results $rows_per_page = 100; $param = ""; $page = $_GET['page']; if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; } list($paging_controls, $rows_per_page, $var_3) = paging($num_rows, $param, $rows_per_page); $offset = $rows_per_page * $page; //get the greetings list $sql = "select * from v_voicemail_greetings "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and voicemail_id = '$voicemail_id' "; if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; } $sql .= " limit $rows_per_page offset $offset "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); $result_count = count($result); unset ($prep_statement, $sql); $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; echo "\n"; echo "\n"; echo "\n"; echo th_order_by('greeting_name', $text['table-name'], $order_by, $order); echo "\n"; echo "\n"; echo th_order_by('greeting_description', $text['table-description'], $order_by, $order); echo "\n"; echo "\n"; if ($result_count > 0) { foreach($result as $row) { $tmp_filesize = filesize($v_greeting_dir.'/'.$row['greeting_name']); $tmp_filesize = byte_convert($tmp_filesize); echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "\n"; if ($c==0) { $c=1; } else { $c=0; } } //end foreach unset($sql, $result, $row_count); } //end if results echo "
".$text['table-choose']."".$text['table-download']."".$text['table-size']."\n"; //if (permission_exists('voicemail_greeting_add')) { // echo " $v_link_label_add\n"; //} echo "
\n"; if (preg_replace('{\D}', '', $row['greeting_name']) == $greeting_id) { echo " \n"; } else { echo " \n"; } echo " "; echo $row['greeting_name']; echo ""; echo " \n"; echo " download"; echo " "; //echo "  \n"; //echo " \n"; //echo " play"; //echo " "; echo "\n"; echo " ".$tmp_filesize; echo " ".$row['greeting_description']." \n"; //if (permission_exists('voicemail_greeting_edit')) { // echo " $v_link_label_edit\n"; //} if (permission_exists('voicemail_greeting_delete')) { echo " $v_link_label_delete\n"; } echo "
\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
 $paging_controls 
\n"; echo "
"; echo "
"; echo " \n"; echo "
"; echo "
\n"; echo "
\n"; echo "
\n"; echo "
\n"; //include the footer require_once "resources/footer.php"; ?>