get('tool_enable'); $om_host = $plugin->get('host'); $om_user = $plugin->get('user'); $om_pass = $plugin->get('pass'); $this->table = Database::get_main_table('plugin_om_meeting'); if ( $om_plugin ) { $user_info = api_get_user_info(); $this->user_complete_name = $user_info['complete_name']; $this->user = $om_user; $this->pass = $om_pass; $this->url = $om_host; // Setting OM api define('CONFIG_OMUSER_SALT', $this->user); define('CONFIG_OMPASS_SALT', $this->pass); define('CONFIG_OMSERVER_BASE_URL', $this->url); $this->api = new OpenMeetings(); $this->plugin_enabled = $om_plugin; } } /** * Checks whether a user is teacher in the current course * @return bool True if the user can be considered a teacher in this course, false otherwise */ function is_teacher() { return api_is_course_admin() || api_is_coach() || api_is_platform_admin(); } /** * Login the user with OM Server * @return bool True if the user is correct and false when is incorrect */ function loginUser() { try { $objGetSession = new getSession(); $objloginUser = new loginUser(); $urlWsdl = CONFIG_OMSERVER_BASE_URL . "/services/UserService?wsdl"; $omServices = new SoapClient( $urlWsdl ); //Verifying if there is already an active session if(empty($_SESSION['sessOpenMeeting'])) { $gsFun = $omServices->getSession($objGetSession); $_SESSION['sessOpenMeeting'] = $objloginUser->SID = $this->sessionId = $gsFun->return->session_id; $objloginUser->username = CONFIG_OMUSER_SALT; $objloginUser->userpass = CONFIG_OMPASS_SALT; $luFn = $omServices->loginUser($objloginUser); if ( $luFn->return > 0 ) return true; else return false; }else{ $this->sessionId = $_SESSION['sessOpenMeeting']; return true; } } catch( SoapFault $e){ echo "

Warning

We have detected some problems
Fault: {$e->faultstring}

"; return false; } } /* * Creating a Room for the meeting * @return bool True if the user is correct and false when is incorrect */ function create_meeting( $params ) { //$id = Database::insert($this->table, $params); try{ $objAddRoom = new addRoomWithModerationAndExternalType(); $roomtypes_id = $isModerated = ( $this->is_teacher() ) ? 1 : 2 ; $params['c_id'] = api_get_course_int_id(); $course_name = 'COURSE_ID_' . $params['c_id'] .'_NAME_' . $params['meeting_name']; $urlWsdl = CONFIG_OMSERVER_BASE_URL . "/services/RoomService?wsdl"; $objAddRoom->SID = $this->sessionId; $objAddRoom->name = $course_name; $objAddRoom->roomtypes_id = $roomtypes_id; $objAddRoom->comment = 'Curso: ' . $params['meeting_name'] . ' Plugin for Chamilo'; $objAddRoom->numberOfPartizipants = 40; $objAddRoom->ispublic = true; $objAddRoom->appointment = false; $objAddRoom->isDemoRoom = false; $objAddRoom->demoTime = false; $objAddRoom->isModeratedRoom = $isModerated; $objAddRoom->externalRoomType = true; $omServices = new SoapClient( $urlWsdl ); $adFun = $omServices->addRoomWithModerationAndExternalType( $objAddRoom ); if( $adFun->return > -1 ){ $meetingId = $params['id'] = $adFun->return; $params['status'] = '1'; $params['meeting_name'] = $course_name; $params['created_at'] = date('l jS \of F Y h:i:s A'); Database::insert($this->table, $params); $this->join_meeting($meetingId); }else{ return -1; } }catch( SoapFault $e){ echo "

Warning

We have detected some problems
Fault: {$e->faultstring}

"; return -1; } } /** * Returns a meeting "join" URL * @param string The name of the meeting (usually the course code) * @return mixed The URL to join the meeting, or false on error * @todo implement moderator pass * @assert ('') === false * @assert ('abcdefghijklmnopqrstuvwxyzabcdefghijklmno') === false */ function join_meeting($meetingid) { if (empty($meetingid)) { return false; } $meeting_data = Database::select('*', $this->table, array('where' => array('id = ? AND status = 1 ' => $meetingid)), 'first'); if (empty($meeting_data)) { if ($this->debug) error_log("meeting does not exist: $meetingid "); return false; } $params = array( 'room_id' => $meetingid ); $returnVal = $this->setUserObjectAndGenerateRoomHashByURLAndRecFlag( $params ); //$urlWithoutProtocol = str_replace("http://", CONFIG_OMSERVER_BASE_URL); //$imgWithoutProtocol = str_replace("http://", $_SESSION['_user']['avatar'] ); $iframe = CONFIG_OMSERVER_BASE_URL . "/?" . "secureHash=" . $returnVal /*. '&username=FRAGOTE' . '&firstname=DD' . '&lastname=DDDD' . '&profilePictureUrl=X' . '&email=xxx' . '&externalUserId=fragote' . '&room_id=38' . '&scopeRoomId=38' . '&becomeModeratorAsInt=1' . '&showAudioVideoTestAsInt=0' . '&allowRecording=1'*/; printf("