Last changes Open Meetings

1.9.x
FraGoTe 12 years ago
parent 3c08eb8ffc
commit a5eca6ce91
  1. 101
      plugin/om_integration/lib/om_integration.lib.php
  2. 6
      plugin/om_integration/lib/services/closeRoom/closeRoom.class.php
  3. 5
      plugin/om_integration/lib/services/getRoomById/getRoomById.class.php
  4. 4
      plugin/om_integration/lib/services/getRoomWithCurrentUsersById/getRoomWithCurrentUsersById.class.php
  5. 10
      plugin/om_integration/lib/services/setUserObjectAndGenerateRecordingHashByURL/setUserObjectAndGenerateRecordingHashByURL.class.php
  6. 2
      plugin/om_integration/listing.php

@ -5,6 +5,7 @@ include_once 'services/addRoomWithModerationAndExternalType/addRoomWithModeratio
include_once 'services/getRoomWithCurrentUsersById/getRoomWithCurrentUsersById.class.php';
include_once 'services/setUserObjectAndGenerateRoomHashByURLAndRecFlag/setUserObjectAndGenerateRoomHashByURLAndRecFlag.class.php';
include_once 'services/closeRoom/closeRoom.class.php';
include_once 'services/getRoomById/getRoomById.class.php';
/**
* Open Meetings-Chamilo connector class
*/
@ -97,8 +98,6 @@ class om_integration {
try{
$objAddRoom = new addRoomWithModerationAndExternalType();
$roomtypes_id = $isModerated = ( $this->is_teacher() ) ? 1 : 2 ;
$course_name = 'COURSE_ID_' . $params['c_id'] .'_NAME_' . $params['meeting_name'];
$urlWsdl = CONFIG_OMSERVER_BASE_URL . "/services/RoomService?wsdl";
@ -106,7 +105,7 @@ class om_integration {
$objAddRoom->name = $course_name;
$objAddRoom->roomtypes_id = $roomtypes_id;
$objAddRoom->comment = 'Curso: ' . $params['meeting_name'] . ' </br>Plugin for Chamilo';
$objAddRoom->numberOfPartizipants = 4;
$objAddRoom->numberOfPartizipants = 40;
$objAddRoom->ispublic = true;
$objAddRoom->appointment = false;
$objAddRoom->isDemoRoom = false;
@ -158,19 +157,14 @@ class om_integration {
}
$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 .
"&scopeRoomId=" . $meeting_data['id'] .
"&language=" . "" .
"&picture=" . $imgWithoutProtocol .
"&user_id=". $_SESSION['_user']['user_id'] .
"&chamiloRoom=1" .
"&wwwroot=" . $urlWithoutProtocol;
$iframe = CONFIG_OMSERVER_BASE_URL . "?" .
"secureHash=" . $returnVal ;
printf("<iframe src='%s' width='%s' height = '%s' />", $iframe, "100%", 640);
}
@ -220,13 +214,31 @@ class om_integration {
}
return false;
}
/**
* Gets all the course meetings saved in the plugin_bbb_meeting table
* @return array Array of current open meeting rooms
*/
function setUserObjectAndGenerateRecordingHashByURL( $params ) {
$username = $_SESSION['_user']['username'];
$firstname = $_SESSION['_user']['firstname'];
$lastname = $_SESSION['_user']['lastname'];
$userId = $_SESSION['_user']['user_id'];
$systemType = 'chamilo';
$room_id = $params['room_id'];
$urlWsdl = CONFIG_OMSERVER_BASE_URL . "/services/UserService?wsdl";
$omServices = new SoapClient( $urlWsdl );
$objRec = new setUserObjectAndGenerateRecordingHashByURL();
$objRec->SID = $this->sessionId;
$objRec->username = $username;
$objRec->firstname = $firstname;
$objRec->lastname = $lastname;
$objRec->externalUserId = $userId;
$objRec->externalUserType = $systemType;
$objRec->recording_id = $recording_id;
$orFn = $omServices->setUserObjectAndGenerateRecordingHashByURL( $objRec );
return $orFn->return;
}
function setUserObjectAndGenerateRoomHashByURLAndRecFlag( $params ) {
$username = $_SESSION['_user']['username'];
$firstname = $_SESSION['_user']['firstname'];
$lastname = $_SESSION['_user']['lastname'];
@ -255,7 +267,7 @@ class om_integration {
$objRec->showAudioVideoTestAsInt = 1;
$objRec->allowRecording = $allowRecording;
$rcFn = $omServices->setUserObjectAndGenerateRoomHashByURLAndRecFlag($objRec);
$rcFn = $omServices->setUserObjectAndGenerateRoomHashByURLAndRecFlag( $objRec );
return $rcFn->return;
}
@ -273,12 +285,25 @@ class om_integration {
$urlWsdl = CONFIG_OMSERVER_BASE_URL . "/services/RoomService?wsdl";
$omServices = new SoapClient( $urlWsdl );
$objRoom = new getRoomById();
$objCurrentUsers = new getRoomWithCurrentUsersById();
$objRoom->SID = $objCurrentUsers->SID = $this->sessionId;
foreach ($meeting_list as $meeting_db) {
$objCurrentUsers->SID = $this->sessionId;
$objCurrentUsers->rooms_id = $meeting_db['id'];
$objCurUs = $omServices->getRoomWithCurrentUsersById( $objCurrentUsers );
$objRoom->rooms_id = $objCurrentUsers->rooms_id = $meeting_db['id'];
try{
$objRoomId = $omServices->getRoomById($objRoom);
if(empty($objRoomId->return)){
Database::delete($this->table, "id = {$meeting_db['id']}");
continue;
}
$objCurUs = $omServices->getRoomWithCurrentUsersById($objCurrentUsers);
}catch( SoapFaul $e ){
echo $e->faultstring;
exit;
}
//if( empty($objCurUs->returnMeetingID) ) continue;
$current_room = array(
'roomtype' => $objCurUs->return->roomtype->roomtypes_id,
'meetingName' => $objCurUs->return->name,
@ -305,7 +330,6 @@ class om_integration {
$meeting_om = $current_room;
if (empty( $meeting_om ))
if ($meeting_db['status'] == 1 && $this->is_teacher())
$this->end_meeting($meeting_db['id']);
@ -321,7 +345,6 @@ class om_integration {
// 'meetingId' => $meeting_db['id'], //-- OPTIONAL - comma separate if multiple ids
// );
//
// //To see the recording list in your BBB server do: bbb-record --list
// $records = $this->api->getRecordingsWithXmlResponseArray($recordingParams);
// if (!empty($records)) {
// $count = 1;
@ -354,13 +377,13 @@ class om_integration {
//
// }
//
// $item['created_at'] = api_convert_and_format_date($meeting_db['created_at']);
//$item['created_at'] = api_convert_and_format_date($meeting_db['created_at']);
// //created_at
//
// $item['publish_url'] = api_get_self().'?action=publish&id='.$meeting_db['id'];
// $item['unpublish_url'] = api_get_self().'?action=unpublish&id='.$meeting_db['id'];
//
// if ($meeting_db['status'] == 1) {
//if ($meeting_db['status'] == 1) {
// $joinParams = array(
// 'meetingId' => $meeting_db['id'], //-- REQUIRED - A unique id for the meeting
// 'username' => $this->user_complete_name, //-- REQUIRED - The name that will display for the user in the meeting
@ -369,22 +392,36 @@ class om_integration {
// 'userID' => '', // -- OPTIONAL - string
// 'webVoiceConf' => '' // -- OPTIONAL - string
// );
// $item['go_url'] = $this->protocol.$this->api->getJoinMeetingURL($joinParams);
// }
// $returnVal = $this->setUserObjectAndGenerateRoomHashByURLAndRecFlag( array('room_id' => $meeting_db['id']) );
// $joinUrl = CONFIG_OMSERVER_BASE_URL . "?" .
// "secureHash=" . $returnVal;
//
// $item['go_url'] = $joinUrl;
//}
$item = array_merge($item, $meeting_db, $meeting_om);
$new_meeting_list[] = $item;
}
return $new_meeting_list;
}
function end_meeting( $meetingId ){
try{
$this->loginUser();
$urlWsdl = CONFIG_OMSERVER_BASE_URL . "/services/RoomService?wsdl";
$omServices = new SoapClient( $urlWsdl );
$objClose = new closeRoom();
$objClose->SID = $this->sessionId;
$objClose->room_id = $meetingId;
$objClose->status = false;
$crFn = $omServices->closeRoom( $objClose );
if( $crFn > 0 )
Database::update($this->table, array('status' => 0, 'closed_at' => api_get_utc_datetime()), array('id = ? ' => $meetingId));
$omServices->closeRoom( $objClose );
}catch( SoapFault $e){
echo "<h1>Warning</h1>
<p>We have detected some problems </br>
Fault: {$e->faultstring}</p>";
exit;
return -1;
}
}
}
}

@ -1,6 +1,6 @@
<?php
class closeRoom{
var $SID;
var $room_id;
var $status;
public $SID;
public $room_id;
public $status;
}

@ -0,0 +1,5 @@
<?php
class getRoomById{
public $SID;
public $rooms_id;
}

@ -1,5 +1,5 @@
<?php
class getRoomWithCurrentUsersById{
var $SID;
var $rooms_id;
public $SID;
public $rooms_id;
}

@ -0,0 +1,10 @@
<?php
class setUserObjectAndGenerateRecordingHashByURL {
public $SID;
public $username;
public $firstname;
public $lastname;
public $externalUserId;
public $externalUserType;
public $recording_id;
}

@ -75,7 +75,7 @@ if (!empty($meetings)) $meetings = array_reverse($meetings);
$users_online = $meetings->participantCount;
$status = !$meetings->isClosed;
$meeting_exists = 1;//$om->meeting_exists(api_get_course_id());
$meeting_exists = !$meetings->isClosed;//$om->meeting_exists(api_get_course_id());
$show_join_button = false;
if ($meeting_exists || $teacher) {
$show_join_button = true;

Loading…
Cancel
Save