start.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /**
  3. * This script initiates a video conference session, calling the BigBlueButton API
  4. * @package chamilo.plugin.bigbluebutton
  5. */
  6. require __DIR__ . '/../../vendor/autoload.php';
  7. $course_plugin = 'bbb'; //needed in order to load the plugin lang variables
  8. require_once __DIR__.'/config.php';
  9. $tool_name = get_lang('Videoconference');
  10. $tpl = new Template($tool_name);
  11. $vmIsEnabled = false;
  12. $host = '';
  13. $salt = '';
  14. $isGlobal = isset($_GET['global']) ? true : false;
  15. $bbb = new bbb('', '', $isGlobal);
  16. if ($bbb->pluginEnabled) {
  17. if ($bbb->isServerRunning()) {
  18. if (isset($_GET['launch']) && $_GET['launch'] == 1) {
  19. if (file_exists(__DIR__ . '/config.vm.php')) {
  20. $config = require __DIR__ . '/config.vm.php';
  21. $vmIsEnabled = true;
  22. $host = '';
  23. $salt = '';
  24. require __DIR__ . '/lib/vm/AbstractVM.php';
  25. require __DIR__ . '/lib/vm/VMInterface.php';
  26. require __DIR__ . '/lib/vm/DigitalOceanVM.php';
  27. require __DIR__ . '/lib/VM.php';
  28. $vm = new VM($config);
  29. if ($vm->isEnabled()) {
  30. try {
  31. $vm->resizeToMaxLimit();
  32. } catch (\Exception $e) {
  33. echo $e->getMessage();
  34. exit;
  35. }
  36. }
  37. }
  38. $meetingParams = array();
  39. $meetingParams['meeting_name'] = $bbb->getCurrentVideoConferenceName();
  40. if ($bbb->meetingExists($meetingParams['meeting_name'])) {
  41. $url = $bbb->joinMeeting($meetingParams['meeting_name']);
  42. if ($url) {
  43. $bbb->redirectToBBB($url);
  44. } else {
  45. $url = $bbb->createMeeting($meetingParams);
  46. $bbb->redirectToBBB($url);
  47. }
  48. } else {
  49. if ($bbb->isConferenceManager()) {
  50. $url = $bbb->createMeeting($meetingParams);
  51. $bbb->redirectToBBB($url);
  52. } else {
  53. $url = $bbb->getListingUrl();
  54. $bbb->redirectToBBB($url);
  55. }
  56. }
  57. } else {
  58. $url = $bbb->getListingUrl();
  59. header('Location: ' . $url);
  60. exit;
  61. }
  62. } else {
  63. $message = Display::return_message(get_lang('ServerIsNotRunning'), 'warning');
  64. }
  65. } else {
  66. $message = Display::return_message(get_lang('ServerIsNotConfigured'), 'warning');
  67. }
  68. $tpl->assign('message', $message);
  69. $tpl->display_one_col_template();