From a9698425df479e2e7b18db0d064b0bd3ac5a8248 Mon Sep 17 00:00:00 2001 From: Mark Crane Date: Wed, 27 Feb 2013 10:10:24 +0000 Subject: [PATCH] Add conference recording play and download. Change the dialplan from lua conference_center.lua to lua 'app.lua conference_center'. Add a few more conference center permissions. --- app/conference_centers/app_config.php | 10 ++++ .../conference_center_edit.php | 10 +--- .../conference_room_edit.php | 55 ++++++++++-------- app/conference_centers/conference_rooms.php | 23 +++++--- .../conference_session_details.php | 57 ++++++++++++++++++- .../conference_sessions.php | 29 ++++++---- .../resources/classes/conference_center.php | 6 +- 7 files changed, 134 insertions(+), 56 deletions(-) diff --git a/app/conference_centers/app_config.php b/app/conference_centers/app_config.php index 491178fc11..9297b7016c 100644 --- a/app/conference_centers/app_config.php +++ b/app/conference_centers/app_config.php @@ -80,6 +80,11 @@ $apps[$x]['permissions'][$y]['groups'][] = 'admin'; $apps[$x]['permissions'][$y]['groups'][] = 'user'; $y++; + $apps[$x]['permissions'][$y]['name'] = 'conference_session_play'; + $apps[$x]['permissions'][$y]['groups'][] = 'superadmin'; + $apps[$x]['permissions'][$y]['groups'][] = 'admin'; + $apps[$x]['permissions'][$y]['groups'][] = 'user'; + $y++; $apps[$x]['permissions'][$y]['name'] = 'conference_room_profile'; $apps[$x]['permissions'][$y]['groups'][] = 'superadmin'; $apps[$x]['permissions'][$y]['groups'][] = 'admin'; @@ -110,6 +115,11 @@ $apps[$x]['permissions'][$y]['groups'][] = 'admin'; $apps[$x]['permissions'][$y]['groups'][] = 'user'; $y++; + $apps[$x]['permissions'][$y]['name'] = 'conference_room_sounds'; + $apps[$x]['permissions'][$y]['groups'][] = 'superadmin'; + $apps[$x]['permissions'][$y]['groups'][] = 'admin'; + $apps[$x]['permissions'][$y]['groups'][] = 'user'; + $y++; $apps[$x]['permissions'][$y]['name'] = 'conference_room_enabled'; $apps[$x]['permissions'][$y]['groups'][] = 'superadmin'; $apps[$x]['permissions'][$y]['groups'][] = 'admin'; diff --git a/app/conference_centers/conference_center_edit.php b/app/conference_centers/conference_center_edit.php index 302760065a..441d3b4506 100644 --- a/app/conference_centers/conference_center_edit.php +++ b/app/conference_centers/conference_center_edit.php @@ -193,7 +193,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { // $dialplan_detail_tag = 'action'; //condition, action, antiaction $dialplan_detail_type = 'lua'; - $dialplan_detail_data = 'conference_center.lua'; + $dialplan_detail_data = 'app.lua conference_center'; $dialplan_detail_order = '020'; $dialplan_detail_group = '2'; dialplan_detail_add($_SESSION['domain_uuid'], $dialplan_uuid, $dialplan_detail_tag, $dialplan_detail_order, $dialplan_detail_group, $dialplan_detail_type, $dialplan_detail_data); @@ -201,9 +201,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { //save the xml save_dialplan_xml(); - //apply settings reminder - $_SESSION["reload_xml"] = true; - //redirect the browser require_once "includes/header.php"; echo "\n"; @@ -254,7 +251,7 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { //update dialplan detail action $dialplan_detail_type = 'lua'; - $dialplan_detail_data = 'conference_center.lua'; + $dialplan_detail_data = 'app.lua conference_center'; $sql = "update v_dialplan_details set "; $sql .= "dialplan_detail_type = '".$dialplan_detail_type."', "; $sql .= "dialplan_detail_data = '".$dialplan_detail_data."' "; @@ -274,9 +271,6 @@ if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { //save the xml save_dialplan_xml(); - //apply settings reminder - $_SESSION["reload_xml"] = true; - //redirect the browser require_once "includes/header.php"; echo "\n"; diff --git a/app/conference_centers/conference_room_edit.php b/app/conference_centers/conference_room_edit.php index 1d379ea3f2..d80f2faeae 100644 --- a/app/conference_centers/conference_room_edit.php +++ b/app/conference_centers/conference_room_edit.php @@ -652,7 +652,12 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { echo " \n"; echo " ".$field['username']."\n"; echo " \n"; - echo " $v_link_label_delete\n"; + if ($result_count > 1) { + echo " $v_link_label_delete\n"; + } + else { + echo "  "; + } echo " \n"; echo " \n"; } @@ -892,30 +897,32 @@ if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { echo "\n"; } - echo "\n"; - echo "\n"; - echo " ".$text['label-sounds'].":\n"; - echo "\n"; - echo "\n"; - echo " \n"; + echo " \n"; + if ($sounds == "true") { + echo " \n"; + } + else { + echo " \n"; + } + if ($sounds == "false") { + echo " \n"; + } + else { + echo " \n"; + } + echo " \n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; } - else { - echo " \n"; - } - if ($sounds == "false") { - echo " \n"; - } - else { - echo " \n"; - } - echo " \n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; echo "\n"; echo "\n"; diff --git a/app/conference_centers/conference_rooms.php b/app/conference_centers/conference_rooms.php index 0c79e77b56..c067e2c4b0 100644 --- a/app/conference_centers/conference_rooms.php +++ b/app/conference_centers/conference_rooms.php @@ -184,7 +184,9 @@ else { echo th_order_by('sounds', $text['label-sounds'], $order_by, $order); echo "".$text['label-members']."\n"; echo "".$text['label-tools']."\n"; - echo th_order_by('enabled', $text['label-enabled'], $order_by, $order); + if (permission_exists('conference_room_enabled')) { + echo th_order_by('enabled', $text['label-enabled'], $order_by, $order); + } echo th_order_by('description', $text['label-description'], $order_by, $order); echo "\n"; if (permission_exists('conference_room_add')) { @@ -275,15 +277,17 @@ else { echo " ".$text['label-sessions']."\n"; echo " \n"; - echo " "; - if ($row['enabled'] == "true") { - echo " ".$text['label-true'].""; + if (permission_exists('conference_room_enabled')) { + echo " "; + if ($row['enabled'] == "true") { + echo " ".$text['label-true'].""; + } + else { + echo " ".$text['label-false'].""; + } + echo "  \n"; + echo " \n"; } - else { - echo " ".$text['label-false'].""; - } - echo "  \n"; - echo " \n"; echo " "; echo " ".$row['description']."\n"; @@ -291,6 +295,7 @@ else { echo " \n"; echo " \n"; + echo "  \n"; if (permission_exists('conference_room_edit')) { echo " $v_link_label_edit\n"; } diff --git a/app/conference_centers/conference_session_details.php b/app/conference_centers/conference_session_details.php index 65e52dc87a..af6322046a 100644 --- a/app/conference_centers/conference_session_details.php +++ b/app/conference_centers/conference_session_details.php @@ -48,6 +48,32 @@ else { $order = check_str($_GET["order"]); $conference_session_uuid = check_str($_GET["uuid"]); +//add meeting_uuid to a session variable + if (strlen($conference_session_uuid) > 0) { + $_SESSION['meeting']['session_uuid'] = $conference_session_uuid; + } + +//get the list + $sql = "select * from v_conference_sessions "; + $sql .= "where domain_uuid = '$domain_uuid' "; + $sql .= "and conference_session_uuid = '".$_SESSION['meeting']['session_uuid']."' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $result = $prep_statement->fetchAll(); + foreach ($result as &$row) { + $meeting_uuid = $row["meeting_uuid"]; + $recording = $row["recording"]; + $start_epoch = $row["start_epoch"]; + $end_epoch = $row["end_epoch"]; + $profile = $row["profile"]; + } + unset ($prep_statement); + +//set the year, month and day based on the session start epoch + $tmp_year = date("Y", $start_epoch); + $tmp_month = date("M", $start_epoch); + $tmp_day = date("d", $start_epoch); + //show the content echo "
"; echo "\n"; @@ -58,7 +84,32 @@ else { echo "
\n"; echo " \n"; echo " \n"; - echo " \n"; + echo " \n"; echo " \n"; echo " \n"; echo "
".$text['title-conference-session-details']."\n"; + $tmp_dir = $_SESSION['switch']['recordings']['dir'].'/archive/'.$tmp_year.'/'.$tmp_month.'/'.$tmp_day; + $tmp_name = ''; + if (file_exists($tmp_dir.'/'.$row['conference_session_uuid'].'.mp3')) { + $tmp_name = $row['conference_session_uuid'].".mp3"; + } + elseif (file_exists($tmp_dir.'/'.$row['conference_session_uuid'].'.wav')) { + $tmp_name = $row['conference_session_uuid'].".wav"; + } + if (strlen($tmp_name) > 0 && file_exists($tmp_dir.'/'.$tmp_name)) { + if (permission_exists('conference_session_play')) { + echo " \n"; + //echo " ".$text['label-play']."\n"; + echo " \n"; + //echo " \n"; + echo "  \n"; + } + echo " \n"; + //echo " ".$text['label-download']."\n"; + echo " \n"; + //echo " \n"; + //echo " \n"; + echo "  \n"; + } + echo " \n"; + echo "
\n"; @@ -70,7 +121,7 @@ else { //prepare to page the results $sql = "select count(*) as num_rows from v_conference_session_details "; $sql .= "where domain_uuid = '$domain_uuid' "; - $sql .= "and conference_session_uuid = '$conference_session_uuid' "; + $sql .= "and conference_session_uuid = '".$_SESSION['meeting']['session_uuid']."' "; $prep_statement = $db->prepare($sql); if ($prep_statement) { $prep_statement->execute(); @@ -94,7 +145,7 @@ else { //get the list $sql = "select * from v_conference_session_details "; $sql .= "where domain_uuid = '$domain_uuid' "; - $sql .= "and conference_session_uuid = '$conference_session_uuid' "; + $sql .= "and conference_session_uuid = '".$_SESSION['meeting']['session_uuid']."' "; if (strlen($order_by) == 0) { $sql .= "order by start_epoch asc "; } diff --git a/app/conference_centers/conference_sessions.php b/app/conference_centers/conference_sessions.php index bdd2b8e366..0776eb497f 100644 --- a/app/conference_centers/conference_sessions.php +++ b/app/conference_centers/conference_sessions.php @@ -48,6 +48,11 @@ else { $order_by = check_str($_GET["order_by"]); $order = check_str($_GET["order"]); +//add meeting_uuid to a session variable + if (strlen($meeting_uuid) > 0) { + $_SESSION['meeting']['uuid'] = $meeting_uuid; + } + //show the content echo "
"; echo "\n"; @@ -70,7 +75,7 @@ else { //prepare to page the results $sql = "select count(*) as num_rows from v_conference_sessions "; $sql .= "where domain_uuid = '$domain_uuid' "; - $sql .= "and meeting_uuid = '$meeting_uuid' "; + $sql .= "and meeting_uuid = '".$_SESSION['meeting']['uuid']."' "; $prep_statement = $db->prepare($sql); if ($prep_statement) { $prep_statement->execute(); @@ -94,7 +99,7 @@ else { //get the list $sql = "select * from v_conference_sessions "; $sql .= "where domain_uuid = '$domain_uuid' "; - $sql .= "and meeting_uuid = '$meeting_uuid' "; + $sql .= "and meeting_uuid = '".$_SESSION['meeting']['uuid']."' "; if (strlen($order_by) == 0) { $sql .= "order by start_epoch desc "; } @@ -149,20 +154,22 @@ else { echo " \n"; $tmp_dir = $_SESSION['switch']['recordings']['dir'].'/archive/'.$tmp_year.'/'.$tmp_month.'/'.$tmp_day; $tmp_name = ''; - if (file_exists($tmp_dir.'/'.$row['conference_session_uuid'].'.wav')) { - $tmp_name = $row['conference_session_uuid'].".wav"; - } - elseif (file_exists($tmp_dir.'/'.$row['conference_session_uuid'].'.mp3')) { + if (file_exists($tmp_dir.'/'.$row['conference_session_uuid'].'.mp3')) { $tmp_name = $row['conference_session_uuid'].".mp3"; } + elseif (file_exists($tmp_dir.'/'.$row['conference_session_uuid'].'.wav')) { + $tmp_name = $row['conference_session_uuid'].".wav"; + } echo "
".$row['profile']." \n"; echo " ".$text['label-details']." \n"; if (strlen($tmp_name) > 0 && file_exists($tmp_dir.'/'.$tmp_name)) { - echo " \n"; - echo " ".$text['label-play']."\n"; - echo " \n"; - echo "  \n"; - echo " \n"; + if (permission_exists('conference_session_play')) { + echo " \n"; + echo " ".$text['label-play']."\n"; + echo " \n"; + echo "  \n"; + } + echo " \n"; echo " ".$text['label-download']."\n"; echo " \n"; echo "  \n"; diff --git a/app/conference_centers/resources/classes/conference_center.php b/app/conference_centers/resources/classes/conference_center.php index a88132f900..f6fd421512 100644 --- a/app/conference_centers/resources/classes/conference_center.php +++ b/app/conference_centers/resources/classes/conference_center.php @@ -68,7 +68,11 @@ if (!if_group("admin") && !if_group("superadmin")) { $sql .= "and u.user_uuid = '".$_SESSION["user_uuid"]."' "; } - if (strlen($this->order_by)> 0) { $sql .= "order by $this->order_by $this->order "; } + if (strlen($this->order_by) == 0) { + $sql .= "order by description, meeting_uuid asc "; + } else { + $sql .= "order by $this->order_by $this->order "; + } $sql .= "limit $this->rows_per_page offset $this->offset "; $prep_statement = $this->db->prepare(check_sql($sql)); $prep_statement->execute();