function bigbluebuttonbn_view_joining($bbbsession, $context, $streamline) { global $CFG, $DB; $joining = false; // If user is administrator, moderator or if is viewer and no waiting is required if ($bbbsession['flag']['administrator'] || $bbbsession['flag']['moderator'] || !$bbbsession['flag']['wait']) { // // Join directly // $metadata = array("meta_origin" => $bbbsession['origin'], "meta_originVersion" => $bbbsession['originVersion'], "meta_originServerName" => $bbbsession['originServerName'], "meta_originServerCommonName" => $bbbsession['originServerCommonName'], "meta_originTag" => $bbbsession['originTag'], "meta_context" => $bbbsession['context'], "meta_contextActivity" => $bbbsession['contextActivity'], "meta_contextActivityDescription" => $bbbsession['contextActivityDescription'], "meta_recording" => $bbbsession['textflag']['record']); $response = bigbluebuttonbn_getCreateMeetingArray($bbbsession['meetingname'], $bbbsession['meetingid'], $bbbsession['welcome'], $bbbsession['modPW'], $bbbsession['viewerPW'], $bbbsession['salt'], $bbbsession['url'], $bbbsession['logoutURL'], $bbbsession['textflag']['record'], $bbbsession['timeduration'], $bbbsession['voicebridge'], $metadata); if (!$response) { // If the server is unreachable, then prompts the user of the necessary action if ($bbbsession['flag']['administrator']) { print_error('view_error_unable_join', 'streamline', $CFG->wwwroot . '/admin/settings.php?section=modsettingbigbluebuttonbn'); } else { if ($bbbsession['flag']['moderator']) { print_error('view_error_unable_join_teacher', 'streamline', $CFG->wwwroot . '/admin/settings.php?section=modsettingbigbluebuttonbn'); } else { print_error('view_error_unable_join_student', 'streamline', $CFG->wwwroot . '/admin/settings.php?section=modsettingbigbluebuttonbn'); } } } else { if ($response['returncode'] == "FAILED") { // The meeting was not created $error_key = bigbluebuttonbn_get_error_key($response['messageKey'], 'view_error_create'); if (!$error_key) { print_error($response['message'], 'streamline'); } else { print_error($error_key, 'streamline'); } } else { if ($response['hasBeenForciblyEnded'] == "true") { print_error(get_string('index_error_forciblyended', 'streamline')); } else { ///////////////Everything is ok ///////////////////// /// Moodle event logger: Create an event for meeting created if ($CFG->version < '2014051200') { //This is valid before v2.7 add_to_log($bbbsession['courseid'], 'streamline', 'meeting created', '', $streamline->name, $bbbsession['cm']->id); } else { //This is valid after v2.7 $event = \mod_streamline\event\bigbluebuttonbn_meeting_created::create(array('context' => $context, 'objectid' => $streamline->id)); $event->trigger(); } /// Internal logger: Instert a record with the meeting created bigbluebuttonbn_log($bbbsession, 'Create'); if (groups_get_activity_groupmode($bbbsession['cm']) > 0 && count(groups_get_activity_allowed_groups($bbbsession['cm'])) > 1) { print "<br>" . get_string('view_groups_selection', 'streamline') . " <input type='button' onClick='M.mod_streamline.joinURL()' value='" . get_string('view_groups_selection_join', 'streamline') . "'>"; } else { $joining = true; if ($bbbsession['flag']['administrator'] || $bbbsession['flag']['moderator']) { print "<br />" . get_string('view_login_moderator', 'streamline') . "<br /><br />"; } else { print "<br />" . get_string('view_login_viewer', 'streamline') . "<br /><br />"; } print "<center><img src='pix/loading.gif' /></center>"; } /// Moodle event logger: Create an event for meeting joined if ($CFG->version < '2014051200') { //This is valid before v2.7 add_to_log($bbbsession['courseid'], 'streamline', 'meeting joined', '', $streamline->name, $bbbsession['cm']->id); } else { //This is valid after v2.7 $event = \mod_streamline\event\bigbluebuttonbn_meeting_joined::create(array('context' => $context, 'objectid' => $streamline->id)); $event->trigger(); } } } } } else { // // "Viewer" && Waiting for moderator is required; // $joining = true; print "<div align='center'>"; if (bigbluebuttonbn_wrap_simplexml_load_file(bigbluebuttonbn_getIsMeetingRunningURL($bbbsession['meetingid'], $bbbsession['url'], $bbbsession['salt'])) == "true") { /// Since the meeting is already running, we just join the session print "<br />" . get_string('view_login_viewer', 'streamline') . "<br /><br />"; print "<center><img src='pix/loading.gif' /></center>"; /// Moodle event logger: Create an event for meeting joined if ($CFG->version < '2014051200') { //This is valid before v2.7 add_to_log($bbbsession['courseid'], 'streamline', 'meeting joined', '', $streamline->name, $bbbsession['cm']->id); } else { //This is valid after v2.7 $event = \mod_streamline\event\bigbluebuttonbn_meeting_joined::create(array('context' => $context, 'objectid' => $streamline->id)); $event->trigger(); } } else { /// Since the meeting is not running, the spining wheel is shown print "<br />" . get_string('view_wait', 'streamline') . "<br /><br />"; print '<center><img src="pix/polling.gif"></center>'; } print "</div>"; } return $joining; }
$response = bigbluebuttonbn_getCreateMeetingArray($bbbsession['meetingname'], $bbbsession['meetingid'], $bbbsession['welcome'], $bbbsession['modPW'], $bbbsession['viewerPW'], $bbbsession['shared_secret'], $bbbsession['endpoint'], $bbbsession['logoutURL'], $bbbsession['record'] ? 'true' : 'false', $durationtime, $bbbsession['voicebridge'], $bbbsession['userlimit'], $metadata, $bbbsession['presentation']['name'], $bbbsession['presentation']['url']); if (!$response) { // If the server is unreachable, then prompts the user of the necessary action if ($bbbsession['administrator']) { print_error('view_error_unable_join', 'bigbluebuttonbn', $CFG->wwwroot . '/admin/settings.php?section=modsettingbigbluebuttonbn'); } else { if ($bbbsession['moderator']) { print_error('view_error_unable_join_teacher', 'bigbluebuttonbn', $CFG->wwwroot . '/admin/settings.php?section=modsettingbigbluebuttonbn'); } else { print_error('view_error_unable_join_student', 'bigbluebuttonbn', $CFG->wwwroot . '/admin/settings.php?section=modsettingbigbluebuttonbn'); } } } else { if ($response['returncode'] == "FAILED") { // The meeting was not created $error_key = bigbluebuttonbn_get_error_key($response['messageKey'], 'view_error_create'); if (!$error_key) { print_error($response['message'], 'bigbluebuttonbn'); } else { print_error($error_key, 'bigbluebuttonbn'); } } else { if ($response['hasBeenForciblyEnded'] == "true") { print_error(get_string('index_error_forciblyended', 'bigbluebuttonbn')); } else { ///////////////Everything is ok ///////////////////// /// Moodle event logger: Create an event for meeting created bigbluebuttonbn_event_log(BIGBLUEBUTTON_EVENT_MEETING_CREATED, $bigbluebuttonbn, $context, $cm); /// Internal logger: Instert a record with the meeting created bigbluebuttonbn_logs($bbbsession, BIGBLUEBUTTONBN_LOG_EVENT_CREATE); /// Since the meeting is already running, we just join the session