diff --git a/app/conferences_active/conference_interactive_inc.php b/app/conferences_active/conference_interactive_inc.php index 0b9fbcf0ad..30f217b325 100644 --- a/app/conferences_active/conference_interactive_inc.php +++ b/app/conferences_active/conference_interactive_inc.php @@ -66,31 +66,38 @@ else { else { //show the content $xml_str = trim(event_socket_request($fp, 'api '.$switch_cmd)); - try { - $xml = new SimpleXMLElement($xml_str); + if (substr($xml_str, -9) == "not found") { + $valid_xml = false; } - catch(Exception $e) { - //echo $e->getMessage(); + else { + $valid_xml = true; } - //$name = $xml->conference['name']; - $session_uuid = $xml->conference['uuid']; - $member_count = $xml->conference['member-count']; - $locked = $xml->conference['locked']; - $recording = $xml->conference['recording']; - if (strlen($member_count) == 0) { - $member_count = 0; - } - - //get mute_all - $mute_all = "true"; - foreach ($xml->conference->members->member as $row) { - if ($row->flags->is_moderator == "false") { - if ($row->flags->can_speak == "true") { - $mute_all = "false"; + if ($valid_xml) { + try { + $xml = new SimpleXMLElement($xml_str); + } + catch(Exception $e) { + //echo $e->getMessage(); + } + //$name = $xml->conference['name']; + $session_uuid = $xml->conference['uuid']; + $member_count = $xml->conference['member-count']; + $locked = $xml->conference['locked']; + $recording = $xml->conference['recording']; + if (strlen($member_count) == 0) { + $member_count = 0; + } + + //get mute_all + $mute_all = "true"; + foreach ($xml->conference->members->member as $row) { + if ($row->flags->is_moderator == "false") { + if ($row->flags->can_speak == "true") { + $mute_all = "false"; + } } } } - $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; @@ -142,80 +149,81 @@ else { echo " \n"; echo "\n"; - foreach ($xml->conference->members->member as $row) { - - $id = $row->id; - $record_path = $row->record_path; - $flag_can_hear = $row->flags->can_hear; - $flag_can_speak = $row->flags->can_speak; - $flag_talking = $row->flags->talking; - $last_talking = $row->last_talking; - $join_time = $row->join_time; - $flag_has_video = $row->flags->has_video; - $flag_has_floor = $row->flags->has_floor; - $is_moderator = $row->flags->is_moderator; - $uuid = $row->uuid; - $caller_id_name = $row->caller_id_name; - $caller_id_name = urldecode($caller_id_name); - $caller_id_number = $row->caller_id_number; - - //format seconds - $join_time_formatted = sprintf('%02d:%02d:%02d', ($join_time/3600), ($join_time/60%60), $join_time%60); - $last_talking_formatted = sprintf('%02d:%02d:%02d', ($last_talking/3600), ($last_talking/60%60), $last_talking%60); - - if (strlen($record_path) == 0) { - if (permission_exists('conference_interactive_mute')) { - $action_mute = ($flag_can_speak == "true") ? 'mute' : 'unmute'; - $td_onclick = "onclick=\"send_cmd('conference_exec.php?cmd=conference&name=".$conference_name."&data=".$action_mute."&id=".$id."');\""; - $td_title = "title=\"".$text['message-click_to_'.$action_mute]."\""; - } - echo "\n"; - echo "\n"; - $talking_icon = ($flag_talking == "true") ? "" : null; - echo "".$caller_id_name.$talking_icon."\n"; - echo "".$caller_id_number."\n"; - echo ""; - echo ($flag_can_hear == "true") ? "" : null; - echo ($flag_can_speak == "true") ? "" : null; - if (permission_exists('conference_interactive_video')) { - echo ($flag_has_video == "true") ? "" : null; - } - echo "\n"; - echo "".$join_time_formatted."\n"; - echo "".$last_talking_formatted."\n"; - echo "".$text['label-'.(($flag_has_floor == "true") ? 'yes' : 'no')]."\n"; - echo "\n"; - //energy - if (permission_exists('conference_interactive_energy')) { - echo " \n"; - echo " \n"; - } - //volume - if (permission_exists('conference_interactive_volume')) { - echo " \n"; - echo " \n"; - } - if (permission_exists('conference_interactive_gain')) { - echo " \n"; - echo " \n"; - } - //mute and unmute + if ($valid_xml) { + if (isset($xml->conference->members->member)) foreach ($xml->conference->members->member as $row) { + $id = $row->id; + $record_path = $row->record_path; + $flag_can_hear = $row->flags->can_hear; + $flag_can_speak = $row->flags->can_speak; + $flag_talking = $row->flags->talking; + $last_talking = $row->last_talking; + $join_time = $row->join_time; + $flag_has_video = $row->flags->has_video; + $flag_has_floor = $row->flags->has_floor; + $is_moderator = $row->flags->is_moderator; + $uuid = $row->uuid; + $caller_id_name = $row->caller_id_name; + $caller_id_name = urldecode($caller_id_name); + $caller_id_number = $row->caller_id_number; + + //format seconds + $join_time_formatted = sprintf('%02d:%02d:%02d', ($join_time/3600), ($join_time/60%60), $join_time%60); + $last_talking_formatted = sprintf('%02d:%02d:%02d', ($last_talking/3600), ($last_talking/60%60), $last_talking%60); + + if (strlen($record_path) == 0) { if (permission_exists('conference_interactive_mute')) { - echo " \n"; + $action_mute = ($flag_can_speak == "true") ? 'mute' : 'unmute'; + $td_onclick = "onclick=\"send_cmd('conference_exec.php?cmd=conference&name=".$conference_name."&data=".$action_mute."&id=".$id."');\""; + $td_title = "title=\"".$text['message-click_to_'.$action_mute]."\""; } - //deaf and undeaf - if (permission_exists('conference_interactive_deaf')) { - $action_deaf = ($flag_can_hear == "true") ? 'deaf' : 'undeaf'; - echo " \n"; + echo "\n"; + echo "\n"; + $talking_icon = ($flag_talking == "true") ? "" : null; + echo "".$caller_id_name.$talking_icon."\n"; + echo "".$caller_id_number."\n"; + echo ""; + echo ($flag_can_hear == "true") ? "" : null; + echo ($flag_can_speak == "true") ? "" : null; + if (permission_exists('conference_interactive_video')) { + echo ($flag_has_video == "true") ? "" : null; } - //kick someone from the conference - if (permission_exists('conference_interactive_kick')) { - echo " \n"; - } - echo "\n"; - echo "\n"; + echo "\n"; + echo "".$join_time_formatted."\n"; + echo "".$last_talking_formatted."\n"; + echo "".$text['label-'.(($flag_has_floor == "true") ? 'yes' : 'no')]."\n"; + echo "\n"; + //energy + if (permission_exists('conference_interactive_energy')) { + echo " \n"; + echo " \n"; + } + //volume + if (permission_exists('conference_interactive_volume')) { + echo " \n"; + echo " \n"; + } + if (permission_exists('conference_interactive_gain')) { + echo " \n"; + echo " \n"; + } + //mute and unmute + if (permission_exists('conference_interactive_mute')) { + echo " \n"; + } + //deaf and undeaf + if (permission_exists('conference_interactive_deaf')) { + $action_deaf = ($flag_can_hear == "true") ? 'deaf' : 'undeaf'; + echo " \n"; + } + //kick someone from the conference + if (permission_exists('conference_interactive_kick')) { + echo " \n"; + } + echo "\n"; + echo "\n"; + } + $c = ($c == 0) ? 1 : 0; } - $c = ($c == 0) ? 1 : 0; } echo "\n"; echo "

";