Copyright (C) 2008-2012 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('extension_add') || permission_exists('extension_edit')) { //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']]; } //set the action as an add or an update if (isset($_REQUEST["id"])) { $action = "update"; $extension_uuid = check_str($_REQUEST["id"]); } else { $action = "add"; } //get the http values and set them as php variables if (count($_POST) > 0) { //get the values from the HTTP POST and save them as PHP variables $extension_uuid = check_str($_POST["extension_uuid"]); $unique_id = check_str($_POST["unique_id"]); $vm_password = check_str($_POST["vm_password"]); $dial_string = check_str($_POST["dial_string"]); } if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { //check for all required data if (strlen($extension_uuid) == 0) { $msg .= $text['message-required'].$text['label-extension']."
\n"; } if (strlen($unique_id) == 0) { $msg .= $text['message-required'].$text['label-unique_id']."
\n"; } //get the number of rows in v_extensions $sql = "select count(*) as num_rows from v_extensions "; $sql .= "where unique_id = '".$unique_id."' and "; $sql .= "extension_uuid <> '".$extension_uuid."'"; $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) { $msg .= $text['message-unique']."
\n"; } } unset($prep_statement, $result); 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; } //set the default user context if (if_group("superadmin")) { //allow a user assigned to super admin to change the user_context } else { //if the user_context was not set then set the default value if (strlen($user_context) == 0) { if (count($_SESSION["domains"]) > 1) { $user_context = $_SESSION['domain_name']; } else { $user_context = "default"; } } } //add or update the database if ($_POST["persistformvar"] != "true") { //get the extension $sql = "select * from v_extensions "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and extension_uuid = '$extension_uuid' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $extension = $row["extension"]; $number_alias = $row["number_alias"]; } unset ($prep_statement); //update the extension and voicemail if (($action == "add" && permission_exists('extension_add')) || ($action == "update" && permission_exists('extension_edit'))) { //update the extension $sql = "update v_extensions set "; $sql .= "unique_id = '$unique_id' "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and extension_uuid = '$extension_uuid'"; $db->exec(check_sql($sql)); unset($sql); //update the voicemail if (strlen($vm_password) > 0) { $sql = "update v_voicemails set "; $sql .= "voicemail_password = '$vm_password' "; $sql .= "where domain_uuid = '$domain_uuid' "; if (is_numeric($extension)) { $sql .= "and voicemail_id = '$extension'"; } else { $sql .= "and voicemail_id = '$number_alias'"; } $db->exec(check_sql($sql)); unset($sql); } } //delete extension from memcache $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); if ($fp) { $switch_cmd = "memcache delete directory:".$extension."@".$_SESSION['domain_name']; $switch_result = event_socket_request($fp, 'api '.$switch_cmd); } //set message and redirect user if ($action == "add") { $_SESSION["message"] = $text['message-add']; } if ($action == "update") { $_SESSION["message"] = $text['message-update']; } header("Location: index.php"); return; } //if ($_POST["persistformvar"] != "true") } //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) //pre-populate the form if ($_POST["persistformvar"] != "true") { //get the extension data $sql = "select * from v_extensions "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and extension_uuid = '$extension_uuid' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $extension = $row["extension"]; $dial_string = $row["dial_string"]; $unique_id = $row["unique_id"]; } unset ($prep_statement); //get the voicemail data $sql = "select * from v_voicemails "; $sql .= "where domain_uuid = '$domain_uuid' "; if (is_numeric($extension)) { $sql .= "and voicemail_id = '$extension' "; } else { $sql .= "and voicemail_id = '$number_alias' "; } //$sql .= "and voicemail_enabled = 'true' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $vm_password = $row["voicemail_password"]; } unset ($prep_statement); } //set the defaults if (strlen($limit_max) == 0) { $limit_max = '5'; } //begin the page content require_once "resources/header.php"; echo ""; echo "
"; echo "\n"; echo "\n"; echo " "; echo " "; echo "
\n"; echo "
"; 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 ($action == "update") { echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "
\n"; echo " ".$text['header-hot_desking']."\n"; echo " \n"; echo " \n"; echo " \n"; echo "
\n"; echo " ".$text['label-extension'].":\n"; echo "\n"; if ($action == "add") { echo "
\n"; echo $text['description-extension-add']."\n"; } if ($action == "update") { echo " $extension
\n"; echo $text['description-extension-edit']."\n"; } echo "
\n"; echo "
\n"; echo " ".$text['label-unique_id'].":\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-unique_id']."\n"; echo "
\n"; echo " ".$text['label-voicemail_password'].":\n"; echo "\n"; echo " \n"; echo "
\n"; echo " ".$text['description-voicemail_password']."\n"; echo "
\n"; echo " ".$text['label-dial_string'].":\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-dial_string']."\n"; echo "
"; echo ""; echo "
"; echo "
"; require_once "resources/footer.php"; ?>