Event socket bug fix and more docs (#6823)

* Add documentation to methods. Use is_resource for added type detection

* Allow connect to specify timeout in microseconds with default 30,000

* Update calling mechanism for event sockets

* Update project for new singleton event sockets

* remove unused variable

* catch errors on closing the socket
This commit is contained in:
frytimo
2023-12-02 20:16:18 -04:00
committed by GitHub
parent 44567f7a05
commit 3a4c2f72e2
74 changed files with 1620 additions and 1533 deletions

View File

@@ -147,9 +147,9 @@
}
//define an alternative kick all
function conference_end($fp, $name) {
function conference_end($name) {
$switch_cmd = "conference '".$name."' xml_list";
$xml_str = trim(event_socket_request($fp, 'api '.$switch_cmd));
$xml_str = trim(event_socket::api($switch_cmd));
try {
$xml = new SimpleXMLElement($xml_str);
}
@@ -161,7 +161,7 @@
foreach ($xml->conference->members->member as $row) {
$uuid = (string)$row->uuid;
if (is_uuid($uuid)) {
$switch_result = event_socket_request($fp, 'api uuid_kill '.$uuid);
$switch_result = event_socket::api("uuid_kill $uuid");
}
if ($x < 1) {
usleep(500000); //500000 = 0.5 seconds
@@ -188,66 +188,66 @@
}
//connect to event socket
$fp = event_socket_create();
if ($fp) {
$esl = event_socket::create();
if ($esl->is_connected()) {
if ($data == "energy") {
//conference 3001-example-domain.org energy 103
$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
$switch_result = event_socket::api($switch_cmd);
$result_array = explode("=",$switch_result);
$tmp_value = $result_array[1];
if ($direction == "up") { $tmp_value = $tmp_value + 100; }
if ($direction == "down") { $tmp_value = $tmp_value - 100; }
//echo "energy $tmp_value<br />\n";
$switch_result = event_socket_request($fp, 'api '.$switch_cmd.' '.$tmp_value);
$switch_result = event_socket::api("$switch_cmd $tmp_value");
}
elseif ($data == "volume_in") {
$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
$switch_result = event_socket::api($switch_cmd);
$result_array = explode("=",$switch_result);
$tmp_value = $result_array[1];
if ($direction == "up") { $tmp_value = $tmp_value + 1; }
if ($direction == "down") { $tmp_value = $tmp_value - 1; }
//echo "volume $tmp_value<br />\n";
$switch_result = event_socket_request($fp, 'api '.$switch_cmd.' '.$tmp_value);
$switch_result = event_socket::api($switch_cmd.' '.$tmp_value);
}
elseif ($data == "volume_out") {
$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
$switch_result = event_socket::api($switch_cmd);
$result_array = explode("=",$switch_result);
$tmp_value = $result_array[1];
if ($direction == "up") { $tmp_value = $tmp_value + 1; }
if ($direction == "down") { $tmp_value = $tmp_value - 1; }
//echo "volume $tmp_value<br />\n";
$switch_result = event_socket_request($fp, 'api '.$switch_cmd.' '.$tmp_value);
$switch_result = event_socket::api($switch_cmd.' '.$tmp_value);
}
elseif ($data == "record") {
$recording_dir = $_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/archive/'.date("Y").'/'.date("M").'/'.date("d");
$switch_cmd .= $recording_dir."/".$uuid.".wav";
if (!file_exists($recording_dir."/".$uuid.".wav")) {
$switch_result = event_socket_request($fp, "api ".$switch_cmd);
$switch_cmd .= $recording_dir."/{$uuid}.wav";
if (!file_exists($switch_cmd)) {
$switch_result = event_socket::api($switch_cmd);
}
}
elseif ($data == "norecord") {
//stop recording and rename the file
$recording_dir = $_SESSION['switch']['recordings']['dir'].'/'.$_SESSION['domain_name'].'/archive/'.date("Y").'/'.date("M").'/'.date("d");
$switch_cmd .= $recording_dir."/".$uuid.".wav";
$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
$switch_result = event_socket::api($switch_cmd);
}
elseif ($data == "kick") {
$switch_result = event_socket_request($fp, 'api uuid_kill '.$uuid);
$switch_result = event_socket::api("uuid_kill $uuid");
}
elseif ($data == "kick all") {
//$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
conference_end($fp, $name);
//$switch_result = event_socket::api($switch_cmd);
conference_end($name);
}
elseif ($data == "mute" || $data == "unmute" || $data == "mute non_moderator" || $data == "unmute non_moderator") {
$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
$switch_result = event_socket::api($switch_cmd);
$switch_cmd = "uuid_setvar ".$uuid. " hand_raised false";
event_socket_request($fp, 'api '.$switch_cmd);
event_socket::api($switch_cmd);
}
elseif ($data == "deaf" || $data == "undeaf" ) {
$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
$switch_result = event_socket::api($switch_cmd);
}
elseif ($data == "lock" || $data == "unlock" ) {
$switch_result = event_socket_request($fp, 'api '.$switch_cmd);
$switch_result = event_socket::api($switch_cmd);
}
//echo "command: ".$switch_cmd." result: ".$switch_result."<br\n>";
}

View File

@@ -61,8 +61,8 @@
$switch_cmd = "conference '".$conference_name."' xml_list";
//connect to event socket, send the command and process the results
$fp = event_socket_create();
if (!$fp) {
$esl = event_socket::create();
if (!$esl->is_connected()) {
$msg = "<div align='center'>".$text['message-connection']."<br /></div>";
echo "<div align='center'>\n";
echo "<table width='40%'>\n";
@@ -77,7 +77,7 @@
}
else {
//show the content
$xml_str = trim(event_socket_request($fp, 'api '.$switch_cmd));
$xml_str = trim(event_socket::api($switch_cmd));
if (substr($xml_str, -9) == "not found") {
$valid_xml = false;
}
@@ -188,7 +188,7 @@
$caller_id_name = urldecode($caller_id_name);
$caller_id_number = $row->caller_id_number;
$switch_cmd = "uuid_getvar ".$uuid. " hand_raised";
$hand_raised = (trim(event_socket_request($fp, 'api '.$switch_cmd)) == "true") ? "true" : "false";
$hand_raised = (trim(event_socket::api($switch_cmd)) == "true") ? "true" : "false";
//format secondsfloor(floor($fifo_duration / 60) % 60)
$join_time_formatted = sprintf('%02d:%02d:%02d', floor($join_time / 3600), floor(floor($join_time / 60) % 60), $join_time % 60);
$last_talking_formatted = sprintf('%02d:%02d:%02d', floor($last_talking / 3600), floor(floor($last_talking / 60) % 60), $last_talking % 60);

View File

@@ -43,8 +43,8 @@
$text = $language->get();
//show content
$fp = event_socket_create();
if (!$fp) {
$fp = event_socket::create();
if (!$fp->is_connected()) {
$msg = "<div align='center'>".$text['message-connection']."<br /></div>";
echo "<div align='center'>\n";
echo "<table width='40%'>\n";
@@ -58,7 +58,7 @@
echo "</div>\n";
}
else {
$xml_string = trim(event_socket_request($fp, 'api conference xml_list'));
$xml_string = trim(event_socket::api('conference xml_list'));
try {
$xml = new SimpleXMLElement($xml_string);
}