Created
December 13, 2014 09:47
-
-
Save epipenau/238bfacfb5d988bd97a5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| prepare($sql); $prep_statement->execute(); $extensions = $prep_statement->fetchAll(PDO::FETCH_NAMED); unset ($prep_statement, $sql); //send the command $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); if ($fp) { $switch_cmd = 'show channels as json'; $switch_result = event_socket_request($fp, 'api '.$switch_cmd); $json_array = json_decode($switch_result, true); } //build the response $x = 0; foreach($extensions as &$row) { //add the extension details $array[$x] = $row; //set the call detail defaults $array[$x]["uuid"] = null; $array[$x]["direction"] = null; $array[$x]["created"] = null; $array[$x]["created_epoch"] = null; $array[$x]["name"] = null; $array[$x]["state"] = null; $array[$x]["cid_name"] = null; $array[$x]["cid_num"] = null; $array[$x]["ip_addr"] = null; $array[$x]["dest"] = null; $array[$x]["application"] = null; $array[$x]["application_data"] = null; $array[$x]["dialplan"] = null; $array[$x]["context"] = null; $array[$x]["read_codec"] = null; $array[$x]["read_rate"] = null; $array[$x]["read_bit_rate"] = null; $array[$x]["write_codec"] = null; $array[$x]["write_rate"] = null; $array[$x]["write_bit_rate"] = null; $array[$x]["secure"] = null; $array[$x]["hostname"] = null; $array[$x]["presence_id"] = null; $array[$x]["presence_data"] = null; $array[$x]["callstate"] = null; $array[$x]["callee_name"] = null; $array[$x]["callee_num"] = null; $array[$x]["callee_direction"] = null; $array[$x]["call_uuid"] = null; $array[$x]["sent_callee_name"] = null; $array[$x]["sent_callee_num"] = null; //add the active call details $found = false; foreach($json_array['rows'] as &$field) { $presence_id = $field['presence_id']; $presence = explode("@", $presence_id); $presence_id = $presence[0]; $presence_domain = $presence[1]; if ($row['extension'] == $presence_id) { if ($presence_domain == $_SESSION['domain_name']) { $found = true; break; } } } //normalize the array if ($found) { $array[$x]["uuid"] = $field['uuid']; $array[$x]["direction"] = $field['direction']; $array[$x]["created"] = $field['created']; $array[$x]["created_epoch"] = $field['created_epoch']; $array[$x]["name"] = $field['name']; $array[$x]["state"] = $field['state']; $array[$x]["cid_name"] = $field['cid_name']; $array[$x]["cid_num"] = $field['cid_num']; $array[$x]["ip_addr"] = $field['ip_addr']; $array[$x]["dest"] = $field['dest']; $array[$x]["application"] = $field['application']; $array[$x]["application_data"] = $field['application_data']; $array[$x]["dialplan"] = $field['dialplan']; $array[$x]["context"] = $field['context']; $array[$x]["read_codec"] = $field['read_codec']; $array[$x]["read_rate"] = $field['read_rate']; $array[$x]["read_bit_rate"] = $field['read_bit_rate']; $array[$x]["write_codec"] = $field['write_codec']; $array[$x]["write_rate"] = $field['write_rate']; $array[$x]["write_bit_rate"] = $field['write_bit_rate']; $array[$x]["secure"] = $field['secure']; $array[$x]["hostname"] = $field['hostname']; $array[$x]["presence_id"] = $field['presence_id']; $array[$x]["presence_data"] = $field['presence_data']; $array[$x]["callstate"] = $field['callstate']; $array[$x]["callee_name"] = $field['callee_name']; $array[$x]["callee_num"] = $field['callee_num']; $array[$x]["callee_direction"] = $field['callee_direction']; $array[$x]["call_uuid"] = $field['call_uuid']; $array[$x]["sent_callee_name"] = $field['sent_callee_name']; $array[$x]["sent_callee_num"] = $field['sent_callee_num']; //calculate and set the call length $call_length_seconds = time() - $array[$x]["created_epoch"]; $call_length_hour = floor($call_length_seconds/3600); $call_length_min = floor($call_length_seconds/60 - ($call_length_hour * 60)); $call_length_sec = $call_length_seconds - (($call_length_hour * 3600) + ($call_length_min * 60)); $call_length_min = sprintf("%02d", $call_length_min); $call_length_sec = sprintf("%02d", $call_length_sec); $call_length = $call_length_hour.':'.$call_length_min.':'.$call_length_sec; $array[$x]['call_length'] = $call_length; //send the command if ($field['state'] != '') { if ($fp) { $switch_cmd = 'uuid_dump '.$field['uuid'].' json'; $dump_result = event_socket_request($fp, 'api '.$switch_cmd); $dump_array = json_decode($dump_result, true); foreach ($dump_array as $dump_var_name => $dump_var_value) { $array[$x][$dump_var_name] = trim($dump_var_value); } } } } //increment the row $x++; } //reindex array using extension instead of auto-incremented value foreach ($array as $index => $subarray) { foreach ($subarray as $field => $value) { $array[$subarray['extension']][$field] = $array[$index][$field]; unset($array[$index][$field]); } unset($array[$subarray['extension']]['extension']); unset($array[$index]); } //return array return $array; } | |
| Fatal error: Call to undefined function get_call_activity() in /var/www/fusionpbx/app/operator_panel/index_inc.php on line |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment