|
|
|
|
@ -357,7 +357,7 @@ class bbb |
|
|
|
|
$meetingName = isset($params['meeting_name']) ? $params['meeting_name'] : $this->getCurrentVideoConferenceName(); |
|
|
|
|
$welcomeMessage = isset($params['welcome_msg']) ? $params['welcome_msg'] : null; |
|
|
|
|
$record = isset($params['record']) && $params['record'] ? 'true' : 'false'; |
|
|
|
|
$duration = isset($params['duration']) ? intval($params['duration']) : 0; |
|
|
|
|
//$duration = isset($params['duration']) ? intval($params['duration']) : 0; |
|
|
|
|
// This setting currently limits the maximum conference duration, |
|
|
|
|
// to avoid lingering sessions on the video-conference server #6261 |
|
|
|
|
$duration = 300; |
|
|
|
|
@ -377,31 +377,23 @@ class bbb |
|
|
|
|
//'meta_category' => '', // Use to pass additional info to BBB server. See API docs. |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if ($this->debug) { |
|
|
|
|
error_log("create_meeting params: ".print_r($bbbParams, 1)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$status = false; |
|
|
|
|
$meeting = null; |
|
|
|
|
|
|
|
|
|
while ($status === false) { |
|
|
|
|
$result = $this->api->createMeetingWithXmlResponseArray( |
|
|
|
|
$bbbParams |
|
|
|
|
); |
|
|
|
|
$result = $this->api->createMeetingWithXmlResponseArray($bbbParams); |
|
|
|
|
if (isset($result) && strval($result['returncode']) == 'SUCCESS') { |
|
|
|
|
if ($this->debug) { |
|
|
|
|
error_log( |
|
|
|
|
"create_meeting result: ".print_r($result, 1) |
|
|
|
|
); |
|
|
|
|
if ($this->plugin->get('allow_regenerate_recording') === 'true') { |
|
|
|
|
$sql = "UPDATE $this->table SET internal_meeting_id = '".$result['internalMeetingID']."' |
|
|
|
|
WHERE id = $id"; |
|
|
|
|
Database::query($sql); |
|
|
|
|
} |
|
|
|
|
$meeting = $this->joinMeeting($meetingName, true); |
|
|
|
|
|
|
|
|
|
return $meeting; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -827,7 +819,7 @@ class bbb |
|
|
|
|
$recordLink = Display::url( |
|
|
|
|
$this->plugin->get_lang('ViewRecord'), |
|
|
|
|
$record['playbackFormatUrl'], |
|
|
|
|
['target' => '_blank'] |
|
|
|
|
['target' => '_blank', 'class' => 'btn btn-default'] |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
$recordLink = $this->plugin->get_lang('NoRecording'); |
|
|
|
|
@ -1140,13 +1132,15 @@ class bbb |
|
|
|
|
// Check if there are recordings for this meeting |
|
|
|
|
$recordings = $this->api->getRecordings(['meetingId' => $meetingData['remote_id']]); |
|
|
|
|
if (!empty($recordings) && isset($recordings['messageKey']) && $recordings['messageKey'] === 'noRecordings') { |
|
|
|
|
// we regenerate the meeting id |
|
|
|
|
$pass = $this->getModMeetingPassword(); |
|
|
|
|
// Regenerate the meeting id |
|
|
|
|
if (!empty($meetingData['internal_meeting_id'])) { |
|
|
|
|
return $this->api->generateRecording(['recordId' => $meetingData['internal_meeting_id']]); |
|
|
|
|
} |
|
|
|
|
/*$pass = $this->getModMeetingPassword(); |
|
|
|
|
$info = $this->getMeetingInfo(['meetingId' => $meetingData['remote_id'], 'password' => $pass]); |
|
|
|
|
if (!empty($info) && isset($info['internalMeetingID'])) { |
|
|
|
|
return $this->api->generateRecording(['recordId' => $info['internalMeetingID']]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $this->api->generateRecording(['recordId' => $meetingData['internal_meeting_id']]); |
|
|
|
|
}*/ |
|
|
|
|
return false; |
|
|
|
|
} else { |
|
|
|
|
if (!empty($recordings['records'])) { |
|
|
|
|
|