diff --git a/app/registrations/resources/classes/registrations.php b/app/registrations/resources/classes/registrations.php new file mode 100644 index 0000000000..cc9da4f128 --- /dev/null +++ b/app/registrations/resources/classes/registrations.php @@ -0,0 +1,149 @@ +db) { + require_once "resources/classes/database.php"; + $database = new database; + $database->connect(); + $this->db = $database->db; + } + } + + /** + * Called when there are no references to a particular object + * unset the variables used in the class + */ + public function __destruct() { + foreach ($this as $key => $value) { + unset($this->$key); + } + } + + /** + * get the registrations + */ + public function get($show) { + + //initialize the id used in the registrations array + $id = 0; + + //create the event socket connection + $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); + + //get the default settings + $sql = "select sip_profile_name from v_sip_profiles where sip_profile_enabled = 'true' "; + $prep_statement = $this->db->prepare($sql); + $prep_statement->execute(); + $sip_profiles = $prep_statement->fetchAll(PDO::FETCH_NAMED); + foreach ($sip_profiles as $row) { + + //get sofia status profile information including registrations + $cmd = "api sofia xmlstatus profile ".$row['sip_profile_name']." reg"; + $xml_response = trim(event_socket_request($fp, $cmd)); + + if ($xml_response == "Invalid Profile!") { $xml_response = "".$text['label-message'].""; } + $xml_response = str_replace("", "", $xml_response); + $xml_response = str_replace("", "", $xml_response); + if (strlen($xml_response) > 101) { + try { + $xml = new SimpleXMLElement($xml_response); + } + catch(Exception $e) { + echo $e->getMessage(); + exit; + } + $array = json_decode(json_encode($xml) , true); + } + + //normalize the array + if (is_array($array) && !is_array($array['registrations']['registration'][0])) { + $row = $array['registrations']['registration']; + unset($array['registrations']['registration']); + $array['registrations']['registration'][0] = $row; + } + + //set the registrations array + if (is_array($array)) { + foreach ($array['registrations']['registration'] as $row) { + + //build the registrations array + //$registrations[0] = $row; + $user_array = explode('@', $row['user']); + $registrations[$id]['user'] = $row['user'] ?: " "; + $registrations[$id]['call-id'] = $row['call-id'] ?: " "; + $registrations[$id]['contact'] = $row['contact'] ?: " "; + $registrations[$id]['sip-auth-user'] = $row['sip-auth-user'] ?: " "; + $registrations[$id]['agent'] = $row['agent'] ?: " "; + $registrations[$id]['host'] = $row['host'] ?: " "; + $registrations[$id]['network-port'] = $row['network-port'] ?: " "; + $registrations[$id]['sip-auth-realm'] = $row['sip-auth-realm'] ?: " "; + $registrations[$id]['mwi-account'] = $row['mwi-account'] ?: " "; + $registrations[$id]['status'] = $row['status'] ?: " "; + $registrations[$id]['ping-time'] = $row['ping-time'] ?: " "; + + //get network-ip to url or blank + if(isset($row['network-ip'])) { + $registrations[$id]['network-ip'] = "".$row['network-ip'].""; + } else { + $registrations[$id]['network-ip'] = " "; + } + + //get the LAN IP address if it exists replace the external ip + $call_id_array = explode('@', $row['call-id']); + if (isset($call_id_array[1])) { + $agent = $row['agent']; + $lan_ip = $call_id_array[1]; + if (false !== stripos($agent, 'grandstream')) { + $lan_ip = str_ireplace( + array('A','B','C','D','E','F','G','H','I','J'), + array('0','1','2','3','4','5','6','7','8','9'), + $lan_ip); + } + $registrations[$id]['lan-ip'] = "".$lan_ip.""; + } else { + $registrations[$id]['lan-ip'] = " "; + } + + //remove unrelated domains + if (count($_SESSION["domains"]) > 1) { + if (!(permission_exists('registration_all') && $show == "all")) { + if ($registrations[$id]['sip-auth-realm'] == $_SESSION['domain_name']) {} + elseif ($user_array[1] == $_SESSION['domain_name']){} + else { + unset($registrations[$id]); + } + } + } + + //increment the array id + $id++; + } + } + } + + //return the registrations array + return $registrations; + } + } +} +/* +$obj = new registrations; +$registrations = $obj->get(); +print($registrations); +*/ + +?> diff --git a/app/registrations/resources/classes/status_registrations.php b/app/registrations/resources/classes/status_registrations.php deleted file mode 100644 index a3a6ed7144..0000000000 --- a/app/registrations/resources/classes/status_registrations.php +++ /dev/null @@ -1,95 +0,0 @@ -".$text['label-message'].""; } - $xml_response = str_replace("", "", $xml_response); - $xml_response = str_replace("", "", $xml_response); - if (strlen($xml_response) > 101) { - try { - $xml = new SimpleXMLElement($xml_response); - } - catch(Exception $e) { - echo $e->getMessage(); - exit; - } - $array = json_decode(json_encode($xml) , true); - } - - //normalize the array - if (is_array($array) && !is_array($array['registrations']['registration'][0])) { - $row = $array['registrations']['registration']; - unset($array['registrations']['registration']); - $array['registrations']['registration'][0] = $row; - } - - //set the registrations array - if (is_array($array)) { - $x=0; - foreach ($array['registrations']['registration'] as $row) { - - //build the registrations array - //$registrations[0] = $row; - $user_array = explode('@', $row['user']); - $registrations[$x]['user'] = $row['user'] ?: " "; - $registrations[$x]['call-id'] = $row['call-id'] ?: " "; - $registrations[$x]['contact'] = $row['contact'] ?: " "; - $registrations[$x]['sip-auth-user'] = $row['sip-auth-user'] ?: " "; - $registrations[$x]['agent'] = $row['agent'] ?: " "; - $registrations[$x]['host'] = $row['host'] ?: " "; - $registrations[$x]['network-port'] = $row['network-port'] ?: " "; - $registrations[$x]['sip-auth-realm'] = $row['sip-auth-realm'] ?: " "; - $registrations[$x]['mwi-account'] = $row['mwi-account'] ?: " "; - $registrations[$x]['status'] = $row['status'] ?: " "; - $registrations[$x]['ping-time'] = $row['ping-time'] ?: " "; - - //get network-ip to url or blank - if(isset($row['network-ip'])) { - $registrations[$x]['network-ip'] = "".$row['network-ip'].""; - } else { - $registrations[$x]['network-ip'] = " "; - } - - //get the LAN IP address if it exists replace the external ip - $call_id_array = explode('@', $row['call-id']); - if (isset($call_id_array[1])) { - $agent = $row['agent']; - $lan_ip = $call_id_array[1]; - if (false !== stripos($agent, 'grandstream')) { - $lan_ip = str_ireplace( - array('A','B','C','D','E','F','G','H','I','J'), - array('0','1','2','3','4','5','6','7','8','9'), - $lan_ip); - } - $registrations[$x]['lan-ip'] = "".$lan_ip.""; - } else{ - $registrations[$x]['lan-ip'] = " "; - } - - //remove unrelated domains - if (count($_SESSION["domains"]) > 1) { - if (!(permission_exists('registration_all') && $show == "all")) { - if ($registrations[$x]['sip-auth-realm'] == $_SESSION['domain_name']) {} - elseif ($user_array[1] == $_SESSION['domain_name']){} - else { - unset($registrations[$x]); - } - } - } - - //increment the array id - $x++; - } - } - - //return the registrations array - return $registrations; -} - -?>