示例#1
0
$bbbsession['salt'] = trim($CFG->BigBlueButtonSaltKey);
$bbbsession['url'] = trim(trim($CFG->ServerURLforBigBlueButton), '/') . '/';
$serverVersion = bigbluebuttonbn_getServerVersion($bbbsession['url']);
if (!isset($serverVersion)) {
    //Server is not working
    if ($administrator) {
        print_error($bbbsession['url'] . 'view_error_unable_join', 'streamline', $CFG->wwwroot . '/admin/settings.php?section=modsettingbigbluebuttonbn');
    } else {
        if ($moderator) {
            print_error('view_error_unable_join_teacher', 'streamline', $CFG->wwwroot . '/course/view.php?id=' . $streamline->course);
        } else {
            print_error('view_error_unable_join_student', 'streamline', $CFG->wwwroot . '/course/view.php?id=' . $streamline->course);
        }
    }
} else {
    $xml = bigbluebuttonbn_wrap_simplexml_load_file(bigbluebuttonbn_getMeetingsURL($bbbsession['url'], $bbbsession['salt']));
    if (!isset($xml) || !isset($xml->returncode) || $xml->returncode == 'FAILED') {
        // The salt is wrong
        if ($administrator) {
            print_error('view_error_unable_join', 'streamline', $CFG->wwwroot . '/admin/settings.php?section=modsettingbigbluebuttonbn');
        } else {
            if ($moderator) {
                print_error('view_error_unable_join_teacher', 'streamline', $CFG->wwwroot . '/course/view.php?id=' . $streamline->course);
            } else {
                print_error('view_error_unable_join_student', 'streamline', $CFG->wwwroot . '/course/view.php?id=' . $streamline->course);
            }
        }
    }
}
//// BigBlueButton Setup Starts
//Server data
function bigbluebuttonbn_getMeetingsArray($URL, $SALT)
{
    $xml = bigbluebuttonbn_wrap_simplexml_load_file(bigbluebuttonbn_getMeetingsURL($URL, $SALT));
    if ($xml && $xml->returncode == 'SUCCESS' && $xml->messageKey) {
        //The meetings were returned
        return array('returncode' => $xml->returncode, 'message' => $xml->message, 'messageKey' => $xml->messageKey);
    } else {
        if ($xml && $xml->returncode == 'SUCCESS') {
            //If there were meetings already created
            foreach ($xml->meetings->meeting as $meeting) {
                $meetings[] = array('meetingID' => $meeting->meetingID, 'moderatorPW' => $meeting->moderatorPW, 'attendeePW' => $meeting->attendeePW, 'hasBeenForciblyEnded' => $meeting->hasBeenForciblyEnded, 'running' => $meeting->running);
            }
            return $meetings;
        } else {
            if ($xml) {
                //If the xml packet returned failure it displays the message to the user
                return array('returncode' => $xml->returncode, 'message' => $xml->message, 'messageKey' => $xml->messageKey);
            } else {
                //If the server is unreachable, then prompts the user of the necessary action
                return null;
            }
        }
    }
}
////////////////////////////////////////////////
// Validates if the BigBlueButton server is running
$serverVersion = bigbluebuttonbn_getServerVersion($bbbsession['endpoint']);
if (!isset($serverVersion)) {
    //Server is not working
    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 . '/course/view.php?id=' . $bigbluebuttonbn->course);
        } else {
            print_error('view_error_unable_join_student', 'bigbluebuttonbn', $CFG->wwwroot . '/course/view.php?id=' . $bigbluebuttonbn->course);
        }
    }
} else {
    $xml = bigbluebuttonbn_wrap_xml_load_file(bigbluebuttonbn_getMeetingsURL($bbbsession['endpoint'], $bbbsession['shared_secret']));
    if (!isset($xml) || !isset($xml->returncode) || $xml->returncode == 'FAILED') {
        // The shared secret is wrong
        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 . '/course/view.php?id=' . $bigbluebuttonbn->course);
            } else {
                print_error('view_error_unable_join_student', 'bigbluebuttonbn', $CFG->wwwroot . '/course/view.php?id=' . $bigbluebuttonbn->course);
            }
        }
    }
}
// Mark viewed by user (if required)
$completion = new completion_info($course);