You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							83 lines
						
					
					
						
							2.6 KiB
						
					
					
				
			
		
		
	
	
							83 lines
						
					
					
						
							2.6 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * This script initiates a video conference session, calling the BigBlueButton API
 | 
						|
 * @package chamilo.plugin.bigbluebutton
 | 
						|
 */
 | 
						|
 | 
						|
require __DIR__ . '/../../vendor/autoload.php';
 | 
						|
 | 
						|
$course_plugin = 'bbb'; //needed in order to load the plugin lang variables
 | 
						|
require_once dirname(__FILE__).'/config.php';
 | 
						|
 | 
						|
$tool_name = get_lang('Videoconference');
 | 
						|
$tpl = new Template($tool_name);
 | 
						|
 | 
						|
$vmIsEnabled = false;
 | 
						|
$host = null;
 | 
						|
$salt = null;
 | 
						|
 | 
						|
 | 
						|
$bbb = new bbb();
 | 
						|
 | 
						|
if ($bbb->plugin_enabled) {
 | 
						|
    if ($bbb->isServerRunning()) {
 | 
						|
 | 
						|
        if (isset($_GET['launch']) && $_GET['launch'] == 1) {
 | 
						|
 | 
						|
            if (file_exists(__DIR__ . '/config.vm.php')) {
 | 
						|
                $config = require __DIR__ . '/config.vm.php';
 | 
						|
                $vmIsEnabled = true;
 | 
						|
                $host = null;
 | 
						|
                $salt = null;
 | 
						|
 | 
						|
                require __DIR__ . '/lib/vm/AbstractVM.php';
 | 
						|
                require __DIR__ . '/lib/vm/VMInterface.php';
 | 
						|
                require __DIR__ . '/lib/vm/DigitalOceanVM.php';
 | 
						|
                require __DIR__ . '/lib/VM.php';
 | 
						|
 | 
						|
                $vm = new VM($config);
 | 
						|
 | 
						|
                if ($vm->IsEnabled()) {
 | 
						|
                    try {
 | 
						|
                        $vm->resizeToMaxLimit();
 | 
						|
                    } catch (\Exception $e) {
 | 
						|
                        echo $e->getMessage();
 | 
						|
                        exit;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            $meeting_params = array();
 | 
						|
            $meeting_params['meeting_name'] = api_get_course_id().'-'.api_get_session_id();
 | 
						|
 | 
						|
            if ($bbb->meetingExists($meeting_params['meeting_name'])) {
 | 
						|
                $url = $bbb->joinMeeting($meeting_params['meeting_name']);
 | 
						|
                if ($url) {
 | 
						|
                    $bbb->redirectToBBB($url);
 | 
						|
                } else {
 | 
						|
                    $url = $bbb->createMeeting($meeting_params);
 | 
						|
                    $bbb->redirectToBBB($url);
 | 
						|
                }
 | 
						|
            } else {
 | 
						|
                if ($bbb->isTeacher()) {
 | 
						|
                    $url = $bbb->createMeeting($meeting_params);
 | 
						|
                    $bbb->redirectToBBB($url);
 | 
						|
                } else {
 | 
						|
                    $url = 'listing.php?'.api_get_cidreq();
 | 
						|
                    $bbb->redirectToBBB($url);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        } else {
 | 
						|
            $url = 'listing.php?'.api_get_cidreq();
 | 
						|
            header('Location: ' . $url);
 | 
						|
            exit;
 | 
						|
        }
 | 
						|
    } else {
 | 
						|
        $message = Display::return_message(get_lang('ServerIsNotRunning'), 'warning');
 | 
						|
    }
 | 
						|
} else {
 | 
						|
    $message = Display::return_message(get_lang('ServerIsNotConfigured'), 'warning');
 | 
						|
}
 | 
						|
$tpl->assign('message', $message);
 | 
						|
$tpl->display_one_col_template();
 | 
						|
 |