Portions created by the Initial Developer are Copyright (C) 2008-2017 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane James Rose */ //includes include "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; //check permissions if (permission_exists("registration_domain") || permission_exists("registration_all") || if_group("superadmin")) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //get the http values and set them as variables $search = check_str($_GET["search"]); //show the header require_once "resources/header.php"; $document['title'] = $text['header-registrations']; //check permissions if (permission_exists("registration_domain") || permission_exists("registration_all") || if_group("superadmin")) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //get the HTTP values and set as variables $profile = trim($_REQUEST["profile"]); $search = trim($_REQUEST["search"]); $show = trim($_REQUEST["show"]); if ($show == "all") { $profile = 'all'; } //set the registrations variable $registrations = $_REQUEST["registrations"]; //get the action and remove items from the array that are not checked if (is_array($registrations)) { $x = 0; foreach ($registrations as &$row) { //get the action switch ($row['action']) { case "unregister": $row['checked'] = 'true'; $action = 'unregister'; break; case "provision": $row['checked'] = 'true'; $action = 'provision'; break; case "reboot": $row['checked'] = 'true'; $action = 'reboot'; break; } //unset rows that were not selected if (!isset($row['checked'])) { unset($registrations[$x]); } //increment the id $x++; } } //create the event socket connection $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); //user registrations if (isset($action)) { if (is_array($registrations)) { foreach ($registrations as $row) { if ($fp) { //get the vendor $vendor = device::get_vendor_by_agent($row['agent']); //prepare the command if ($action == "unregister") { $command = "sofia profile ".$row['profile']." flush_inbound_reg ".$row['user']." reboot"; } if ($action == "provision") { $command = "lua app.lua event_notify ".$row['profile']." check_sync ".$row['user']." ".$vendor; } if ($action == "reboot") { $command = "lua app.lua event_notify ".$row['profile']." reboot ".$row['user']." ".$vendor; } //send the command $response = event_socket_request($fp, "api ".$command); $response = event_socket_request($fp, "api log notice ".$command); } } } } //show the response if (isset($response)) { messages::add($text['label-event']." ".ucwords($cmd)."     ".$text['label-response'].htmlentities($response)); } //define variables $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; //show the error message or show the content if (strlen($msg) > 0) { echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
".$text['label-message']."
$msg
\n"; echo "
\n"; } else { //get the registrations $obj = new registrations; $registrations = $obj->get($profile); //count the registrations $registration_count = 0; if (is_array($registrations)) { foreach ($registrations as $row) { $matches = preg_grep ("/$search/i",$row); if ($matches != FALSE) { $registration_count++; } } } //define the checkbox_toggle function echo "\n"; //show the registrations echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo ""; echo "\n"; echo "\n"; echo "
\n"; echo " ".$text['header-registrations']." (".$registration_count.")\n"; echo ""; //echo " \n"; echo " "; echo " "; echo " "; echo " "; //echo " \n"; echo ""; if (permission_exists('registration_all')) { if ($show == "all") { echo " \n"; } else { 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"; //order the array require_once "resources/classes/array_order.php"; $order = new array_order(); $registrations = $order->sort($registrations, 'sip-auth-realm', 'user'); //display the array if (is_array($registrations)) { $x = 0; foreach ($registrations as $row) { //search $matches = preg_grep ("/$search/i",$row); if ($matches != FALSE) { //set the user agent $agent = $row['agent']; //set the user id $user_id = str_replace('@', '_', $row['user']); //show the registrations 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 ($c==0) { $c=1; } else { $c=0; } $x++; } } } echo "
\n"; echo " "; echo " ".$text['label-user']."".$text['label-agent']."".$text['label-contact']."".$text['label-lan_ip']."".$text['label-ip']."".$text['label-port']."".$text['label-hostname']."".$text['label-status']."".$text['label-ping']."".$text['label-sip_profile_name']."".$text['label-tools']." 
".$row['user']." ".htmlentities($row['agent'])." ".explode('"',$row['contact'])[1]."".$row['lan-ip']."".$row['network-ip']."".$row['network-port']."".$row['host']."".$row['status']."".$row['ping-time']."".$row['sip_profile_name']."\n"; echo " \n"; echo " \n"; echo " \n"; echo "
\n"; echo "\n"; echo "\n"; //close the connection and unset the variable fclose($fp); unset($xml); } //get the footer require_once "resources/footer.php"; ?>