Portions created by the Initial Developer are Copyright (C) 2008-2023 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes files require_once dirname(__DIR__, 2) . "/resources/require.php"; require_once "resources/check_auth.php"; require_once "resources/paging.php"; //check permissions if (permission_exists('zoiper')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //get the https values and set as variables $order_by = check_str($_GET["order_by"]); $order = check_str($_GET["order"]); //get the SIP port if set. If not default will be 5060 in zoiper app if (isset($_SESSION['zoiper']['sip_port']['text'])) { $zoiper_sip_port = ":" . $_SESSION['zoiper']['sip_port']['text']; } //handle search term $search = check_str($_GET["search"]); if (strlen($search) > 0) { $sql_mod = "and ( "; $sql_mod .= "extension ILIKE '%".$search."%' "; $sql_mod .= "or description ILIKE '%".$search."%' "; $sql_mod .= ") "; } if (strlen($order_by) < 1) { $order_by = "extension"; $order = "ASC"; } //get total extension count from the database $sql = "select count(*) as num_rows from v_extensions where domain_uuid = '".$_SESSION['domain_uuid']."' ".$sql_mod." "; //$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; $prep_statement = $db->prepare($sql); if ($prep_statement) { $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_ASSOC); $total_extensions = $row['num_rows']; if (($db_type == "pgsql") or ($db_type == "mysql")) { $numeric_extensions = $row['num_rows']; } } unset($prep_statement, $row); //prepare to page the results $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; $param = "&search=".$search."&order_by=".$order_by."&order=".$order; if (!isset($_GET['page'])) { $_GET['page'] = 0; } $_GET['page'] = check_str($_GET['page']); list($paging_controls_mini, $rows_per_page, $var_3) = paging($total_extensions, $param, $rows_per_page, true); //top list($paging_controls, $rows_per_page, $var_3) = paging($total_extensions, $param, $rows_per_page); //bottom $offset = $rows_per_page * $_GET['page']; //get all the extensions from the database $sql = "select * from v_extensions "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= $sql_mod; //add search mod from above $sql .= "and enabled = 'true' "; if (!(if_group("admin") || if_group("superadmin"))) { if (count($_SESSION['user']['extension']) > 0) { $sql .= "and ("; $x = 0; foreach($_SESSION['user']['extension'] as $row) { if ($x > 0) { $sql .= "or "; } $sql .= "extension = '".$row['user']."' "; $x++; } $sql .= ")"; } else { //hide any results when a user has not been assigned an extension $sql .= "and extension = 'disabled' "; } } if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; } else { $sql .= "order by extension asc "; } $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"; //begin the content require_once "resources/header.php"; 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 " ".$text['title']."
\n"; echo "
"; if ((if_group("admin") || if_group("superadmin"))) { echo "
\n"; echo "
\n"; echo " "; echo " "; if ($paging_controls_mini != '') { echo "".$paging_controls_mini."\n"; } echo "
\n"; echo " ".$text['description-zoiper']."\n"; echo "
\n"; echo " ".$text['title-mobile']."
\n"; echo "
\n"; echo " ".$text['description-zoiper2']."\n"; echo "
\n"; echo "
"; echo "\n"; echo "\n"; echo th_order_by('extension', $text['table-extension'], $order_by,$order); echo "\n"; echo "\n"; // echo "\n"; echo th_order_by('description', $text['table-description'], $order_by, $order); echo "\n"; if ($result_count > 0) { foreach($result as $row) { $tr_url = "https://www.zoiper.com/en/page/" . $_SESSION['zoiper']['page_id']['text'] . "?u=" . escape($row['extension']) . "&h=" . escape($row['user_context']) . rawurlencode($zoiper_sip_port) . "&p=" . escape($row['password']) . "&o=" . $_SESSION['zoiper']['outbound_proxy']['text'] . "&t=&x=&a=" . escape($row['extension']) . "&tr="; $qr_img = "https://oem.zoiper.com/qr.php?provider_id=" . $_SESSION['zoiper']['provider_id']['text'] . "&u=" . escape($row['extension']) . "&h=" . escape($row['user_context']) . rawurlencode($zoiper_sip_port) . "&p=" . escape($row['password']) . "&o=" . $_SESSION['zoiper']['outbound_proxy']['text'] . "&t=&x=&a=" . escape($row['extension']) . "&tr="; $tr_link = (permission_exists('zoiper')) ? "href='".$tr_url."'" : null; 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-tools']."".$text['table-qr']."".$text['table-password']."
".escape($row['extension'])."\n"; if (permission_exists('zoiper')) { echo "" . $text['label-zoiper'] . "   "; } echo " \n"; echo " " . $text['label-qr'] . "   "; echo " "; // echo " ".escape($row['description'])." 
"; if (strlen($paging_controls) > 0) { echo "
"; echo $paging_controls."\n"; } echo "

"; if ($is_included != "true") { require_once "resources/footer.php"; } ?>