<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Copyright 1999-2004 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

    <!-- ====================================================================== -->
    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE TEMPLATE INSTEAD! -->
    <!-- Main Page Section -->
    <!-- ====================================================================== -->
    
     <html>
        <head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
		<meta name="author" content="OpenMeetings Team">
		<meta name="email" content="sebawagner@apache.org">
		<title>OpenMeetings API Methods</title>
		<link rel="stylesheet" type="text/css" href="openmeetings_docs.css">
        </head>
	<body>
	
		<h3>Available WebServices:</h3>
	
		<iframe src="WebserviceIndex.html" width="100%" height="210" name="WebserviceIndex.html"
			scrolling="no" marginheight="0" marginwidth="0" frameborder="0">
		  <p>Your Browser does not support frames ...</p>
		</iframe>
		
		<hr />
	
	   <h3>WebService: RoomService</h3>
	   <p>RoomService contains methods to manipulate rooms and create invitation hash<p>
	   <p>WSDL sample Url: <a href="http://localhost:5080/openmeetings/services/RoomService?wsdl">http://localhost:5080/openmeetings/services/RoomService?wsdl</a><p>
	
	<!-- Links to Methods -->
	   <h3>Index of Methods available in RoomService</h3>
	   
       <div class="navigation">
	                               <div>
                <a href="#getRoomsPublic"><b>getRoomsPublic</b></a><br/>
                <div class="navigation_comment"><i >Returns an Object of Type RoomsList which contains a list of
 Room-Objects. Every Room-Object contains a Roomtype and all informations
 about that Room. The List of current-users in the room is Null if you get
 them via SOAP. The Roomtype can be 1 for conference rooms or 2 for
 audience rooms.</i></div>
                </div>
                                               <div>
                <a href="#deleteFlvRecording"><b>deleteFlvRecording</b></a><br/>
                <div class="navigation_comment"><i >Deletes a flv recording</i></div>
                </div>
                                               <div>
                <a href="#getFlvRecordingByExternalUserId"><b>getFlvRecordingByExternalUserId</b></a><br/>
                <div class="navigation_comment"><i >Gets a list of flv recordings</i></div>
                </div>
                                               <div>
                <a href="#getFlvRecordingByExternalRoomTypeAndCreator"><b>getFlvRecordingByExternalRoomTypeAndCreator</b></a><br/>
                <div class="navigation_comment"><i >Gets a list of flv recordings</i></div>
                </div>
                                               <div>
                <a href="#getFlvRecordingByExternalRoomTypeByList"><b>getFlvRecordingByExternalRoomTypeByList</b></a><br/>
                <div class="navigation_comment"><i >Gets a list of flv recordings</i></div>
                </div>
                                               <div>
                <a href="#getFlvRecordingByExternalRoomType"><b>getFlvRecordingByExternalRoomType</b></a><br/>
                <div class="navigation_comment"><i >Gets a list of flv recordings</i></div>
                </div>
                                               <div>
                <a href="#getFlvRecordingByRoomId"><b>getFlvRecordingByRoomId</b></a><br/>
                <div class="navigation_comment"><i >Get list of recordings</i></div>
                </div>
                                               <div>
                <a href="#getRoomTypes"><b>getRoomTypes</b></a><br/>
                <div class="navigation_comment"><i >List of available room types</i></div>
                </div>
                                               <div>
                <a href="#getRoomCounters"><b>getRoomCounters</b></a><br/>
                <div class="navigation_comment"><i >Returns current users for rooms ids</i></div>
                </div>
                                               <div>
                <a href="#getRoomById"><b>getRoomById</b></a><br/>
                <div class="navigation_comment"><i >returns a conference room object</i></div>
                </div>
                                               <div>
                <a href="#getRoomWithCurrentUsersById"><b>getRoomWithCurrentUsersById</b></a><br/>
                <div class="navigation_comment"><i ></i></div>
                </div>
                                               <div>
                <a href="#getRoomWithClientObjectsById"><b>getRoomWithClientObjectsById</b></a><br/>
                <div class="navigation_comment"><i >Returns a object of type RoomReturn</i></div>
                </div>
                                               <div>
                <a href="#getRooms"><b>getRooms</b></a><br/>
                <div class="navigation_comment"><i >Returns a List of Objects of Rooms You can use "name" as value for
 orderby or rooms_id</i></div>
                </div>
                                               <div>
                <a href="#getRoomsWithCurrentUsers"><b>getRoomsWithCurrentUsers</b></a><br/>
                <div class="navigation_comment"><i >Returns a List of Objects of Rooms You can use "name" as value for
 orderby or rooms_id. It also fills the attribute currentUsers in the
 Room-Object</i></div>
                </div>
                                               <div>
                <a href="#addRoom"><b>addRoom</b></a><br/>
                <div class="navigation_comment"><i >TODO: Fix Organization Issue
 
 deprecated use addRoomWithModeration instead</i></div>
                </div>
                                               <div>
                <a href="#addRoomWithModeration"><b>addRoomWithModeration</b></a><br/>
                <div class="navigation_comment"><i >Create a conference room</i></div>
                </div>
                                               <div>
                <a href="#addRoomWithModerationAndQuestions"><b>addRoomWithModerationAndQuestions</b></a><br/>
                <div class="navigation_comment"><i >this SOAP Method has an additional param to enable or disable the buttons
 to apply for moderation this does only work in combination with the
 room-type restricted</i></div>
                </div>
                                               <div>
                <a href="#addRoomWithModerationQuestionsAndAudioType"><b>addRoomWithModerationQuestionsAndAudioType</b></a><br/>
                <div class="navigation_comment"><i >adds a new room with options for user questions and audio only</i></div>
                </div>
                                               <div>
                <a href="#addRoomWithModerationQuestionsAudioTypeAndHideOptions"><b>addRoomWithModerationQuestionsAudioTypeAndHideOptions</b></a><br/>
                <div class="navigation_comment"><i >adds a new room with options for user questions, audio only and hide</i></div>
                </div>
                                               <div>
                <a href="#getRoomIdByExternalId"><b>getRoomIdByExternalId</b></a><br/>
                <div class="navigation_comment"><i >Checks if a room with this exteralRoomId + externalRoomType does exist,
 if yes it returns the room id if not, it will create the room and then
 return the room id of the newly created room</i></div>
                </div>
                                               <div>
                <a href="#updateRoom"><b>updateRoom</b></a><br/>
                <div class="navigation_comment"><i >TODO: Fix Organization Issue deprecated use updateRoomWithModeration</i></div>
                </div>
                                               <div>
                <a href="#updateRoomWithModeration"><b>updateRoomWithModeration</b></a><br/>
                <div class="navigation_comment"><i >Updates a conference room by its room id</i></div>
                </div>
                                               <div>
                <a href="#updateRoomWithModerationAndQuestions"><b>updateRoomWithModerationAndQuestions</b></a><br/>
                <div class="navigation_comment"><i ></i></div>
                </div>
                                               <div>
                <a href="#updateRoomWithModerationQuestionsAudioTypeAndHideOptions"><b>updateRoomWithModerationQuestionsAudioTypeAndHideOptions</b></a><br/>
                <div class="navigation_comment"><i >update room with options for user questions, audio only and hide</i></div>
                </div>
                                               <div>
                <a href="#deleteRoom"><b>deleteRoom</b></a><br/>
                <div class="navigation_comment"><i >Delete a room by its room id</i></div>
                </div>
                                               <div>
                <a href="#kickUser"><b>kickUser</b></a><br/>
                <div class="navigation_comment"><i >kick all uses of a certain room</i></div>
                </div>
                                               <div>
                <a href="#addRoomWithModerationAndExternalType"><b>addRoomWithModerationAndExternalType</b></a><br/>
                <div class="navigation_comment"><i >Add a new conference room with option to set the external room type, the
 external room type should be set if multiple applications use the same
 OpenMeetings instance</i></div>
                </div>
                                               <div>
                <a href="#addRoomWithModerationExternalTypeAndAudioType"><b>addRoomWithModerationExternalTypeAndAudioType</b></a><br/>
                <div class="navigation_comment"><i >Adds a new room with options for audio only</i></div>
                </div>
                                               <div>
                <a href="#addRoomWithModerationAndRecordingFlags"><b>addRoomWithModerationAndRecordingFlags</b></a><br/>
                <div class="navigation_comment"><i >Adds a new room with options for recording</i></div>
                </div>
                                               <div>
                <a href="#addRoomWithModerationExternalTypeAndTopBarOption"><b>addRoomWithModerationExternalTypeAndTopBarOption</b></a><br/>
                <div class="navigation_comment"><i >Add a conference room with options to disable the top menu bar in the
 conference room</i></div>
                </div>
                                               <div>
                <a href="#getInvitationHash"><b>getInvitationHash</b></a><br/>
                <div class="navigation_comment"><i >Create a Invitation hash and optionally send it by mail the From to Date
 is as String as some SOAP libraries do not accept Date Objects in SOAP
 Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
 leading zero's)</i></div>
                </div>
                                               <div>
                <a href="#sendInvitationHash"><b>sendInvitationHash</b></a><br/>
                <div class="navigation_comment"><i >Create a Invitation hash and optionally send it by mail the From to Date
 is as String as some SOAP libraries do not accept Date Objects in SOAP
 Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
 leading zero's)</i></div>
                </div>
                                               <div>
                <a href="#sendInvitationHashWithDateObject"><b>sendInvitationHashWithDateObject</b></a><br/>
                <div class="navigation_comment"><i >Create a Invitation hash and optionally send it by mail the From to Date
 is as String as some SOAP libraries do not accept Date Objects in SOAP
 Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
 leading zero's)</i></div>
                </div>
                                               <div>
                <a href="#getRoomsWithCurrentUsersByList"><b>getRoomsWithCurrentUsersByList</b></a><br/>
                <div class="navigation_comment"><i >Return a RoomReturn Object with information of the current users of a
 conference room</i></div>
                </div>
                                               <div>
                <a href="#getRoomsWithCurrentUsersByListAndType"><b>getRoomsWithCurrentUsersByListAndType</b></a><br/>
                <div class="navigation_comment"><i >Return a RoomReturn Object with information of the current users of a
 conference room with option to search for special external room types</i></div>
                </div>
                                               <div>
                <a href="#addRoomWithModerationAndExternalTypeAndStartEnd"><b>addRoomWithModerationAndExternalTypeAndStartEnd</b></a><br/>
                <div class="navigation_comment"><i >Adds a conference room that is only available for a period of time</i></div>
                </div>
                                               <div>
                <a href="#addMeetingMemberRemindToRoom"><b>addMeetingMemberRemindToRoom</b></a><br/>
                <div class="navigation_comment"><i >Add a meeting member to a certain room. This is the same as adding an
 external user to a event in the calendar.</i></div>
                </div>
                                               <div>
                <a href="#addExternalMeetingMemberRemindToRoom"><b>addExternalMeetingMemberRemindToRoom</b></a><br/>
                <div class="navigation_comment"><i >Add a meeting member to a certain room. This is the same as adding an
 external user to a event in the calendar. with a certain time zone</i></div>
                </div>
                                               <div>
                <a href="#closeRoom"><b>closeRoom</b></a><br/>
                <div class="navigation_comment"><i >Method to remotely close or open rooms. If a room is closed all users
 inside the room and all users that try to enter it will be redirected to
 the redirectURL that is defined in the Room-Object.
 
 Returns positive value if authentication was successful.</i></div>
                </div>
                                               <div>
                <a href="#modifyRoomParameter"><b>modifyRoomParameter</b></a><br/>
                <div class="navigation_comment"><i >Method to update arbitrary room parameter.</i></div>
                </div>
                                               <div>
                <a href="#addRoomToOrg"><b>addRoomToOrg</b></a><br/>
                <div class="navigation_comment"><i >Adds a room to an organization</i></div>
                </div>
                           </div>
	   
	    <h3>Methods Details in RoomService</h3>
	
				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getRoomsPublic" ><b>getRoomsPublic</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getRoomsPublic (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			)
    			</i><br/>
    			<p>
    			  Returns an Object of Type RoomsList which contains a list of
 Room-Objects. Every Room-Object contains a Roomtype and all informations
 about that Room. The List of current-users in the room is Null if you get
 them via SOAP. The Roomtype can be 1 for conference rooms or 2 for
 audience rooms.
    			</p>
    			<p>
                  Return Type: org.apache.openmeetings.persistence.beans.room.Room[]
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomsPublic?SID=VALUE&roomtypes_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomsPublic?SID=VALUE&amp;roomtypes_id=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="deleteFlvRecording" ><b>deleteFlvRecording</b></a>
    			</div>
    			</div>
    			
    			Method: <i>deleteFlvRecording (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Long flvRecordingId
    			       			    			)
    			</i><br/>
    			<p>
    			  Deletes a flv recording
    			</p>
    			<p>
                  Return Type: boolean
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">flvRecordingId</td>
	                     <td valign="top">the id of the recording</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/deleteFlvRecording?SID=VALUE&flvRecordingId=VALUE">http://localhost:5080/openmeetings/services/RoomService/deleteFlvRecording?SID=VALUE&amp;flvRecordingId=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getFlvRecordingByExternalUserId" ><b>getFlvRecordingByExternalUserId</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getFlvRecordingByExternalUserId (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String externalUserId
    			       			    			)
    			</i><br/>
    			<p>
    			  Gets a list of flv recordings
    			</p>
    			<p>
                  Return Type: org.apache.openmeetings.axis.services.FLVRecordingReturn[]
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">externalUserId</td>
	                     <td valign="top">the externalUserId</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalUserId?SID=VALUE&externalUserId=VALUE">http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalUserId?SID=VALUE&amp;externalUserId=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getFlvRecordingByExternalRoomTypeAndCreator" ><b>getFlvRecordingByExternalRoomTypeAndCreator</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getFlvRecordingByExternalRoomTypeAndCreator (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String externalRoomType
    			       			    			       			     , 
    			       			   Long insertedBy
    			       			    			)
    			</i><br/>
    			<p>
    			  Gets a list of flv recordings
    			</p>
    			<p>
                  Return Type: org.apache.openmeetings.axis.services.FLVRecordingReturn[]
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">externalRoomType</td>
	                     <td valign="top">externalRoomType specified when creating the room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">insertedBy</td>
	                     <td valign="top">the userId that created the recording</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalRoomTypeAndCreator?SID=VALUE&externalRoomType=VALUE&insertedBy=VALUE">http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalRoomTypeAndCreator?SID=VALUE&amp;externalRoomType=VALUE&amp;insertedBy=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getFlvRecordingByExternalRoomTypeByList" ><b>getFlvRecordingByExternalRoomTypeByList</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getFlvRecordingByExternalRoomTypeByList (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String externalRoomType
    			       			    			)
    			</i><br/>
    			<p>
    			  Gets a list of flv recordings
    			</p>
    			<p>
                  Return Type: java.util.List
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">externalRoomType</td>
	                     <td valign="top">externalRoomType specified when creating the room</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalRoomTypeByList?SID=VALUE&externalRoomType=VALUE">http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalRoomTypeByList?SID=VALUE&amp;externalRoomType=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getFlvRecordingByExternalRoomType" ><b>getFlvRecordingByExternalRoomType</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getFlvRecordingByExternalRoomType (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String externalRoomType
    			       			    			)
    			</i><br/>
    			<p>
    			  Gets a list of flv recordings
    			</p>
    			<p>
                  Return Type: org.apache.openmeetings.persistence.beans.flvrecord.FlvRecording[]
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">externalRoomType</td>
	                     <td valign="top">externalRoomType specified when creating the room</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalRoomType?SID=VALUE&externalRoomType=VALUE">http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalRoomType?SID=VALUE&amp;externalRoomType=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getFlvRecordingByRoomId" ><b>getFlvRecordingByRoomId</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getFlvRecordingByRoomId (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Long roomId
    			       			    			)
    			</i><br/>
    			<p>
    			  Get list of recordings
    			</p>
    			<p>
                  Return Type: org.apache.openmeetings.persistence.beans.flvrecord.FlvRecording[]
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomId</td>
	                     <td valign="top">the room id</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByRoomId?SID=VALUE&roomId=VALUE">http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByRoomId?SID=VALUE&amp;roomId=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getRoomTypes" ><b>getRoomTypes</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getRoomTypes (
    			    			    			       			   String SID
    			       			    			)
    			</i><br/>
    			<p>
    			  List of available room types
    			</p>
    			<p>
                  Return Type: org.apache.openmeetings.persistence.beans.room.RoomType[]
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomTypes?SID=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomTypes?SID=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getRoomCounters" ><b>getRoomCounters</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getRoomCounters (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Integer roomId1
    			       			    			       			     , 
    			       			   Integer roomId2
    			       			    			       			     , 
    			       			   Integer roomId3
    			       			    			       			     , 
    			       			   Integer roomId4
    			       			    			       			     , 
    			       			   Integer roomId5
    			       			    			       			     , 
    			       			   Integer roomId6
    			       			    			       			     , 
    			       			   Integer roomId7
    			       			    			       			     , 
    			       			   Integer roomId8
    			       			    			       			     , 
    			       			   Integer roomId9
    			       			    			       			     , 
    			       			   Integer roomId10
    			       			    			)
    			</i><br/>
    			<p>
    			  Returns current users for rooms ids
    			</p>
    			<p>
                  Return Type: org.apache.openmeetings.axis.services.RoomCountBean[]
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">roomId1</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">roomId2</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">roomId3</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">roomId4</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">roomId5</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">roomId6</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">roomId7</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">roomId8</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">roomId9</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">roomId10</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomCounters?SID=VALUE&roomId1=VALUE&roomId2=VALUE&roomId3=VALUE&roomId4=VALUE&roomId5=VALUE&roomId6=VALUE&roomId7=VALUE&roomId8=VALUE&roomId9=VALUE&roomId10=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomCounters?SID=VALUE&amp;roomId1=VALUE&amp;roomId2=VALUE&amp;roomId3=VALUE&amp;roomId4=VALUE&amp;roomId5=VALUE&amp;roomId6=VALUE&amp;roomId7=VALUE&amp;roomId8=VALUE&amp;roomId9=VALUE&amp;roomId10=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getRoomById" ><b>getRoomById</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getRoomById (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   long rooms_id
    			       			    			)
    			</i><br/>
    			<p>
    			  returns a conference room object
    			</p>
    			<p>
                  Return Type: org.apache.openmeetings.persistence.beans.room.Room
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		long
	                     		                     </td>
	                     <td valign="top">rooms_id</td>
	                     <td valign="top">the room id</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomById?SID=VALUE&rooms_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomById?SID=VALUE&amp;rooms_id=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getRoomWithCurrentUsersById" ><b>getRoomWithCurrentUsersById</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getRoomWithCurrentUsersById (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   long rooms_id
    			       			    			)
    			</i><br/>
    			<p>
    			  
    			</p>
    			<p>
                  Return Type: org.apache.openmeetings.persistence.beans.room.Room
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		long
	                     		                     </td>
	                     <td valign="top">rooms_id</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomWithCurrentUsersById?SID=VALUE&rooms_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomWithCurrentUsersById?SID=VALUE&amp;rooms_id=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getRoomWithClientObjectsById" ><b>getRoomWithClientObjectsById</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getRoomWithClientObjectsById (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   long rooms_id
    			       			    			)
    			</i><br/>
    			<p>
    			  Returns a object of type RoomReturn
    			</p>
    			<p>
                  Return Type: org.apache.openmeetings.axis.services.RoomReturn
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		long
	                     		                     </td>
	                     <td valign="top">rooms_id</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomWithClientObjectsById?SID=VALUE&rooms_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomWithClientObjectsById?SID=VALUE&amp;rooms_id=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getRooms" ><b>getRooms</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getRooms (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   int start
    			       			    			       			     , 
    			       			   int max
    			       			    			       			     , 
    			       			   String orderby
    			       			    			       			     , 
    			       			   boolean asc
    			       			    			)
    			</i><br/>
    			<p>
    			  Returns a List of Objects of Rooms You can use "name" as value for
 orderby or rooms_id
    			</p>
    			<p>
                  Return Type: org.apache.openmeetings.data.beans.basic.SearchResult
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		int
	                     		                     </td>
	                     <td valign="top">start</td>
	                     <td valign="top">The id you want to start</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		int
	                     		                     </td>
	                     <td valign="top">max</td>
	                     <td valign="top">The maximum you want to get</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">orderby</td>
	                     <td valign="top">The column it will be ordered</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		boolean
	                     		                     </td>
	                     <td valign="top">asc</td>
	                     <td valign="top">Asc or Desc sort ordering</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRooms?SID=VALUE&start=VALUE&max=VALUE&orderby=VALUE&asc=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRooms?SID=VALUE&amp;start=VALUE&amp;max=VALUE&amp;orderby=VALUE&amp;asc=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getRoomsWithCurrentUsers" ><b>getRoomsWithCurrentUsers</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getRoomsWithCurrentUsers (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   int start
    			       			    			       			     , 
    			       			   int max
    			       			    			       			     , 
    			       			   String orderby
    			       			    			       			     , 
    			       			   boolean asc
    			       			    			)
    			</i><br/>
    			<p>
    			  Returns a List of Objects of Rooms You can use "name" as value for
 orderby or rooms_id. It also fills the attribute currentUsers in the
 Room-Object
    			</p>
    			<p>
                  Return Type: org.apache.openmeetings.data.beans.basic.SearchResult
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		int
	                     		                     </td>
	                     <td valign="top">start</td>
	                     <td valign="top">The id you want to start</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		int
	                     		                     </td>
	                     <td valign="top">max</td>
	                     <td valign="top">The maximum you want to get</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">orderby</td>
	                     <td valign="top">The column it will be ordered</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		boolean
	                     		                     </td>
	                     <td valign="top">asc</td>
	                     <td valign="top">Asc or Desc sort ordering</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomsWithCurrentUsers?SID=VALUE&start=VALUE&max=VALUE&orderby=VALUE&asc=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomsWithCurrentUsers?SID=VALUE&amp;start=VALUE&amp;max=VALUE&amp;orderby=VALUE&amp;asc=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addRoom" ><b>addRoom</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addRoom (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Integer videoPodWidth
    			       			    			       			     , 
    			       			   Integer videoPodHeight
    			       			    			       			     , 
    			       			   Integer videoPodXPosition
    			       			    			       			     , 
    			       			   Integer videoPodYPosition
    			       			    			       			     , 
    			       			   Integer moderationPanelXPosition
    			       			    			       			     , 
    			       			   Boolean showWhiteBoard
    			       			    			       			     , 
    			       			   Integer whiteBoardPanelXPosition
    			       			    			       			     , 
    			       			   Integer whiteBoardPanelYPosition
    			       			    			       			     , 
    			       			   Integer whiteBoardPanelHeight
    			       			    			       			     , 
    			       			   Integer whiteBoardPanelWidth
    			       			    			       			     , 
    			       			   Boolean showFilesPanel
    			       			    			       			     , 
    			       			   Integer filesPanelXPosition
    			       			    			       			     , 
    			       			   Integer filesPanelYPosition
    			       			    			       			     , 
    			       			   Integer filesPanelHeight
    			       			    			       			     , 
    			       			   Integer filesPanelWidth
    			       			    			)
    			</i><br/>
    			<p>
    			  TODO: Fix Organization Issue
 
 deprecated use addRoomWithModeration instead
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">videoPodWidth</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">videoPodHeight</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">videoPodXPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">videoPodYPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">moderationPanelXPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">showWhiteBoard</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">whiteBoardPanelXPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">whiteBoardPanelYPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">whiteBoardPanelHeight</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">whiteBoardPanelWidth</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">showFilesPanel</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">filesPanelXPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">filesPanelYPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">filesPanelHeight</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">filesPanelWidth</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoom?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&videoPodWidth=VALUE&videoPodHeight=VALUE&videoPodXPosition=VALUE&videoPodYPosition=VALUE&moderationPanelXPosition=VALUE&showWhiteBoard=VALUE&whiteBoardPanelXPosition=VALUE&whiteBoardPanelYPosition=VALUE&whiteBoardPanelHeight=VALUE&whiteBoardPanelWidth=VALUE&showFilesPanel=VALUE&filesPanelXPosition=VALUE&filesPanelYPosition=VALUE&filesPanelHeight=VALUE&filesPanelWidth=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoom?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;videoPodWidth=VALUE&amp;videoPodHeight=VALUE&amp;videoPodXPosition=VALUE&amp;videoPodYPosition=VALUE&amp;moderationPanelXPosition=VALUE&amp;showWhiteBoard=VALUE&amp;whiteBoardPanelXPosition=VALUE&amp;whiteBoardPanelYPosition=VALUE&amp;whiteBoardPanelHeight=VALUE&amp;whiteBoardPanelWidth=VALUE&amp;showFilesPanel=VALUE&amp;filesPanelXPosition=VALUE&amp;filesPanelYPosition=VALUE&amp;filesPanelHeight=VALUE&amp;filesPanelWidth=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addRoomWithModeration" ><b>addRoomWithModeration</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addRoomWithModeration (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			)
    			</i><br/>
    			<p>
    			  Create a conference room
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">Name of the Room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">Type of that room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">any comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">the maximum users allowed in this room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">If this room is public (use true if you don't deal with
            different Organizations)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">is it a Calendar Room (use false by default)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time (use false by default)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait untill a Moderator arrives. Use the
            becomeModerator param in setUserObjectAndGenerateRoomHash to
            set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModeration?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModeration?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addRoomWithModerationAndQuestions" ><b>addRoomWithModerationAndQuestions</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addRoomWithModerationAndQuestions (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			       			     , 
    			       			   Boolean allowUserQuestions
    			       			    			)
    			</i><br/>
    			<p>
    			  this SOAP Method has an additional param to enable or disable the buttons
 to apply for moderation this does only work in combination with the
 room-type restricted
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">Name of the Room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">Type of that room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">any comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">the maximum users allowed in this room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">If this room is public (use true if you don't deal with
            different Organizations)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">is it a Calendar Room (use false by default)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time (use false by default)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait untill a Moderator arrives. Use the
            becomeModerator param in setUserObjectAndGenerateRoomHash to
            set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">allowUserQuestions</td>
	                     <td valign="top">enable or disable the button to allow users to apply for
            moderation</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndQuestions?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&allowUserQuestions=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndQuestions?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;allowUserQuestions=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addRoomWithModerationQuestionsAndAudioType" ><b>addRoomWithModerationQuestionsAndAudioType</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addRoomWithModerationQuestionsAndAudioType (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			       			     , 
    			       			   Boolean allowUserQuestions
    			       			    			       			     , 
    			       			   Boolean isAudioOnly
    			       			    			)
    			</i><br/>
    			<p>
    			  adds a new room with options for user questions and audio only
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">Name of the Room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">Type of that room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">any comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">the maximum users allowed in this room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">If this room is public (use true if you don't deal with
            different Organizations)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">is it a Calendar Room (use false by default)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time (use false by default)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
            becomeModerator param in setUserObjectAndGenerateRoomHash to
            set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">allowUserQuestions</td>
	                     <td valign="top">enable or disable the button to allow users to apply for
            moderation</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isAudioOnly</td>
	                     <td valign="top">enable or disable the video / or audio-only</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationQuestionsAndAudioType?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&allowUserQuestions=VALUE&isAudioOnly=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationQuestionsAndAudioType?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;allowUserQuestions=VALUE&amp;isAudioOnly=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addRoomWithModerationQuestionsAudioTypeAndHideOptions" ><b>addRoomWithModerationQuestionsAudioTypeAndHideOptions</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addRoomWithModerationQuestionsAudioTypeAndHideOptions (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			       			     , 
    			       			   Boolean allowUserQuestions
    			       			    			       			     , 
    			       			   Boolean isAudioOnly
    			       			    			       			     , 
    			       			   Boolean hideTopBar
    			       			    			       			     , 
    			       			   Boolean hideChat
    			       			    			       			     , 
    			       			   Boolean hideActivitiesAndActions
    			       			    			       			     , 
    			       			   Boolean hideFilesExplorer
    			       			    			       			     , 
    			       			   Boolean hideActionsMenu
    			       			    			       			     , 
    			       			   Boolean hideScreenSharing
    			       			    			       			     , 
    			       			   Boolean hideWhiteboard
    			       			    			)
    			</i><br/>
    			<p>
    			  adds a new room with options for user questions, audio only and hide
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">Name of the Room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">Type of that room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">any comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">the maximum users allowed in this room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">If this room is public (use true if you don't deal with
            different Organizations)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">is it a Calendar Room (use false by default)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time (use false by default)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
            becomeModerator param in setUserObjectAndGenerateRoomHash to
            set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">allowUserQuestions</td>
	                     <td valign="top">enable or disable the button to allow users to apply for
            moderation</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isAudioOnly</td>
	                     <td valign="top">enable or disable the video / or audio-only</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideTopBar</td>
	                     <td valign="top">hide or show TopBar</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideChat</td>
	                     <td valign="top">hide or show Chat</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideActivitiesAndActions</td>
	                     <td valign="top">hide or show Activities And Actions</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideFilesExplorer</td>
	                     <td valign="top">hide or show Files Explorer</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideActionsMenu</td>
	                     <td valign="top">hide or show Actions Menu</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideScreenSharing</td>
	                     <td valign="top">hide or show Screen Sharing</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideWhiteboard</td>
	                     <td valign="top">hide or show Whiteboard. If whitboard is hidden, video pods
            and scrollbar appear instead.</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationQuestionsAudioTypeAndHideOptions?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&allowUserQuestions=VALUE&isAudioOnly=VALUE&hideTopBar=VALUE&hideChat=VALUE&hideActivitiesAndActions=VALUE&hideFilesExplorer=VALUE&hideActionsMenu=VALUE&hideScreenSharing=VALUE&hideWhiteboard=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationQuestionsAudioTypeAndHideOptions?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;allowUserQuestions=VALUE&amp;isAudioOnly=VALUE&amp;hideTopBar=VALUE&amp;hideChat=VALUE&amp;hideActivitiesAndActions=VALUE&amp;hideFilesExplorer=VALUE&amp;hideActionsMenu=VALUE&amp;hideScreenSharing=VALUE&amp;hideWhiteboard=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getRoomIdByExternalId" ><b>getRoomIdByExternalId</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getRoomIdByExternalId (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			       			     , 
    			       			   Long externalRoomId
    			       			    			       			     , 
    			       			   String externalRoomType
    			       			    			)
    			</i><br/>
    			<p>
    			  Checks if a room with this exteralRoomId + externalRoomType does exist,
 if yes it returns the room id if not, it will create the room and then
 return the room id of the newly created room
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">Name of the room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">Type of that room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">any comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">the maximum users allowed in this room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">If this room is public (use true if you don't deal with
            different Organizations)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">is it a Calendar Room? (use false if not sure what that means)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
            what that means)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait untill a Moderator arrives. Use the
            becomeModerator param in setUserObjectAndGenerateRoomHash to
            set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">externalRoomId</td>
	                     <td valign="top">your external room id may set here</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">externalRoomType</td>
	                     <td valign="top">you can specify your system-name or type of room here, for
            example "moodle"</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomIdByExternalId?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&externalRoomId=VALUE&externalRoomType=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomIdByExternalId?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;externalRoomId=VALUE&amp;externalRoomType=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="updateRoom" ><b>updateRoom</b></a>
    			</div>
    			</div>
    			
    			Method: <i>updateRoom (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Long rooms_id
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Integer videoPodWidth
    			       			    			       			     , 
    			       			   Integer videoPodHeight
    			       			    			       			     , 
    			       			   Integer videoPodXPosition
    			       			    			       			     , 
    			       			   Integer videoPodYPosition
    			       			    			       			     , 
    			       			   Integer moderationPanelXPosition
    			       			    			       			     , 
    			       			   Boolean showWhiteBoard
    			       			    			       			     , 
    			       			   Integer whiteBoardPanelXPosition
    			       			    			       			     , 
    			       			   Integer whiteBoardPanelYPosition
    			       			    			       			     , 
    			       			   Integer whiteBoardPanelHeight
    			       			    			       			     , 
    			       			   Integer whiteBoardPanelWidth
    			       			    			       			     , 
    			       			   Boolean showFilesPanel
    			       			    			       			     , 
    			       			   Integer filesPanelXPosition
    			       			    			       			     , 
    			       			   Integer filesPanelYPosition
    			       			    			       			     , 
    			       			   Integer filesPanelHeight
    			       			    			       			     , 
    			       			   Integer filesPanelWidth
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			)
    			</i><br/>
    			<p>
    			  TODO: Fix Organization Issue deprecated use updateRoomWithModeration
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    				<b>Warning:</b><i> Params in this method do not seem to be correctly documentated</i>
    				<br/><br/>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">rooms_id</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">videoPodWidth</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">videoPodHeight</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">videoPodXPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">videoPodYPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">moderationPanelXPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">showWhiteBoard</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">whiteBoardPanelXPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">whiteBoardPanelYPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">whiteBoardPanelHeight</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">whiteBoardPanelWidth</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">showFilesPanel</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">filesPanelXPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">filesPanelYPosition</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">filesPanelHeight</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">filesPanelWidth</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/updateRoom?SID=VALUE&rooms_id=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&videoPodWidth=VALUE&videoPodHeight=VALUE&videoPodXPosition=VALUE&videoPodYPosition=VALUE&moderationPanelXPosition=VALUE&showWhiteBoard=VALUE&whiteBoardPanelXPosition=VALUE&whiteBoardPanelYPosition=VALUE&whiteBoardPanelHeight=VALUE&whiteBoardPanelWidth=VALUE&showFilesPanel=VALUE&filesPanelXPosition=VALUE&filesPanelYPosition=VALUE&filesPanelHeight=VALUE&filesPanelWidth=VALUE&appointment=VALUE">http://localhost:5080/openmeetings/services/RoomService/updateRoom?SID=VALUE&amp;rooms_id=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;videoPodWidth=VALUE&amp;videoPodHeight=VALUE&amp;videoPodXPosition=VALUE&amp;videoPodYPosition=VALUE&amp;moderationPanelXPosition=VALUE&amp;showWhiteBoard=VALUE&amp;whiteBoardPanelXPosition=VALUE&amp;whiteBoardPanelYPosition=VALUE&amp;whiteBoardPanelHeight=VALUE&amp;whiteBoardPanelWidth=VALUE&amp;showFilesPanel=VALUE&amp;filesPanelXPosition=VALUE&amp;filesPanelYPosition=VALUE&amp;filesPanelHeight=VALUE&amp;filesPanelWidth=VALUE&amp;appointment=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="updateRoomWithModeration" ><b>updateRoomWithModeration</b></a>
    			</div>
    			</div>
    			
    			Method: <i>updateRoomWithModeration (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Long room_id
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			)
    			</i><br/>
    			<p>
    			  Updates a conference room by its room id
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">room_id</td>
	                     <td valign="top">the room id to update</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">new name of the room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">new comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">new numberOfParticipants</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">is public</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">if the room is an appointment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
            what that means)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
            becomeModerator parameter in setUserObjectAndGenerateRoomHash
            to set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/updateRoomWithModeration?SID=VALUE&room_id=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE">http://localhost:5080/openmeetings/services/RoomService/updateRoomWithModeration?SID=VALUE&amp;room_id=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="updateRoomWithModerationAndQuestions" ><b>updateRoomWithModerationAndQuestions</b></a>
    			</div>
    			</div>
    			
    			Method: <i>updateRoomWithModerationAndQuestions (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Long room_id
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			       			     , 
    			       			   Boolean allowUserQuestions
    			       			    			)
    			</i><br/>
    			<p>
    			  
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">room_id</td>
	                     <td valign="top">the room id to update</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">new name of the room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">new comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">new numberOfParticipants</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">is public</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">if the room is an appointment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
            what that means)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
            becomeModerator parameter in setUserObjectAndGenerateRoomHash
            to set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">allowUserQuestions</td>
	                     <td valign="top">enable or disable the button to allow users to apply for
            moderation</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/updateRoomWithModerationAndQuestions?SID=VALUE&room_id=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&allowUserQuestions=VALUE">http://localhost:5080/openmeetings/services/RoomService/updateRoomWithModerationAndQuestions?SID=VALUE&amp;room_id=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;allowUserQuestions=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="updateRoomWithModerationQuestionsAudioTypeAndHideOptions" ><b>updateRoomWithModerationQuestionsAudioTypeAndHideOptions</b></a>
    			</div>
    			</div>
    			
    			Method: <i>updateRoomWithModerationQuestionsAudioTypeAndHideOptions (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Long room_id
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			       			     , 
    			       			   Boolean allowUserQuestions
    			       			    			       			     , 
    			       			   Boolean isAudioOnly
    			       			    			       			     , 
    			       			   Boolean hideTopBar
    			       			    			       			     , 
    			       			   Boolean hideChat
    			       			    			       			     , 
    			       			   Boolean hideActivitiesAndActions
    			       			    			       			     , 
    			       			   Boolean hideFilesExplorer
    			       			    			       			     , 
    			       			   Boolean hideActionsMenu
    			       			    			       			     , 
    			       			   Boolean hideScreenSharing
    			       			    			       			     , 
    			       			   Boolean hideWhiteboard
    			       			    			)
    			</i><br/>
    			<p>
    			  update room with options for user questions, audio only and hide
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">room_id</td>
	                     <td valign="top">the room id to update</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">new name of the room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">new comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">number of participants</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">is public</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">if the room is an appointment (use false if not sure what that
            means)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
            what that means)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
            becomeModerator parameter in setUserObjectAndGenerateRoomHash
            to set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">allowUserQuestions</td>
	                     <td valign="top">enable or disable the button to allow users to apply for
            moderation</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isAudioOnly</td>
	                     <td valign="top">enable or disable the video / or audio-only</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideTopBar</td>
	                     <td valign="top">hide or show TopBar</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideChat</td>
	                     <td valign="top">hide or show Chat</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideActivitiesAndActions</td>
	                     <td valign="top">hide or show Activities And Actions</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideFilesExplorer</td>
	                     <td valign="top">hide or show Files Explorer</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideActionsMenu</td>
	                     <td valign="top">hide or show Actions Menu</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideScreenSharing</td>
	                     <td valign="top">hide or show Screen Sharing</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideWhiteboard</td>
	                     <td valign="top">hide or show Whiteboard. If whitboard is hidden, video pods
            and scrollbar appear instead.</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/updateRoomWithModerationQuestionsAudioTypeAndHideOptions?SID=VALUE&room_id=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&allowUserQuestions=VALUE&isAudioOnly=VALUE&hideTopBar=VALUE&hideChat=VALUE&hideActivitiesAndActions=VALUE&hideFilesExplorer=VALUE&hideActionsMenu=VALUE&hideScreenSharing=VALUE&hideWhiteboard=VALUE">http://localhost:5080/openmeetings/services/RoomService/updateRoomWithModerationQuestionsAudioTypeAndHideOptions?SID=VALUE&amp;room_id=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;allowUserQuestions=VALUE&amp;isAudioOnly=VALUE&amp;hideTopBar=VALUE&amp;hideChat=VALUE&amp;hideActivitiesAndActions=VALUE&amp;hideFilesExplorer=VALUE&amp;hideActionsMenu=VALUE&amp;hideScreenSharing=VALUE&amp;hideWhiteboard=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="deleteRoom" ><b>deleteRoom</b></a>
    			</div>
    			</div>
    			
    			Method: <i>deleteRoom (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   long rooms_id
    			       			    			)
    			</i><br/>
    			<p>
    			  Delete a room by its room id
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		long
	                     		                     </td>
	                     <td valign="top">rooms_id</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/deleteRoom?SID=VALUE&rooms_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/deleteRoom?SID=VALUE&amp;rooms_id=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="kickUser" ><b>kickUser</b></a>
    			</div>
    			</div>
    			
    			Method: <i>kickUser (
    			    			    			       			   String SID_Admin
    			       			    			       			     , 
    			       			   Long room_id
    			       			    			)
    			</i><br/>
    			<p>
    			  kick all uses of a certain room
    			</p>
    			<p>
                  Return Type: java.lang.Boolean
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin
            _Admin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">room_id</td>
	                     <td valign="top">the room id</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/kickUser?SID_Admin=VALUE&room_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/kickUser?SID_Admin=VALUE&amp;room_id=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addRoomWithModerationAndExternalType" ><b>addRoomWithModerationAndExternalType</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addRoomWithModerationAndExternalType (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			       			     , 
    			       			   String externalRoomType
    			       			    			)
    			</i><br/>
    			<p>
    			  Add a new conference room with option to set the external room type, the
 external room type should be set if multiple applications use the same
 OpenMeetings instance
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">new name of the room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">new comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">new numberOfParticipants</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">is public</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">if the room is an appointment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
            what that means)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
            becomeModerator parameter in setUserObjectAndGenerateRoomHash
            to set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">externalRoomType</td>
	                     <td valign="top">the external room type (can be used to identify different
            external systems using same OpenMeetings instance)</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndExternalType?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&externalRoomType=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndExternalType?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;externalRoomType=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addRoomWithModerationExternalTypeAndAudioType" ><b>addRoomWithModerationExternalTypeAndAudioType</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addRoomWithModerationExternalTypeAndAudioType (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			       			     , 
    			       			   String externalRoomType
    			       			    			       			     , 
    			       			   Boolean allowUserQuestions
    			       			    			       			     , 
    			       			   Boolean isAudioOnly
    			       			    			)
    			</i><br/>
    			<p>
    			  Adds a new room with options for audio only
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">new name of the room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">new comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">new numberOfParticipants</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">is public</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">if the room is an appointment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
            what that means)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
            becomeModerator parameter in setUserObjectAndGenerateRoomHash
            to set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">externalRoomType</td>
	                     <td valign="top">the external room type (can be used to identify different
            external systems using same OpenMeetings instance)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">allowUserQuestions</td>
	                     <td valign="top">enable or disable the button to allow users to apply for
            moderation</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isAudioOnly</td>
	                     <td valign="top">enable or disable the video / or audio-only</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationExternalTypeAndAudioType?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&externalRoomType=VALUE&allowUserQuestions=VALUE&isAudioOnly=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationExternalTypeAndAudioType?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;externalRoomType=VALUE&amp;allowUserQuestions=VALUE&amp;isAudioOnly=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addRoomWithModerationAndRecordingFlags" ><b>addRoomWithModerationAndRecordingFlags</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addRoomWithModerationAndRecordingFlags (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			       			     , 
    			       			   String externalRoomType
    			       			    			       			     , 
    			       			   Boolean allowUserQuestions
    			       			    			       			     , 
    			       			   Boolean isAudioOnly
    			       			    			       			     , 
    			       			   Boolean waitForRecording
    			       			    			       			     , 
    			       			   Boolean allowRecording
    			       			    			)
    			</i><br/>
    			<p>
    			  Adds a new room with options for recording
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">new name of the room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">new comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">new numberOfParticipants</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">is public</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">if the room is an appointment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
            what that means)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
            becomeModerator parameter in setUserObjectAndGenerateRoomHash
            to set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">externalRoomType</td>
	                     <td valign="top">the external room type (can be used to identify different
            external systems using same OpenMeetings instance)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">allowUserQuestions</td>
	                     <td valign="top">enable or disable the button to allow users to apply for
            moderation</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isAudioOnly</td>
	                     <td valign="top">enable or disable the video / or audio-only</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">waitForRecording</td>
	                     <td valign="top">if the users in the room will get a notification that they
            should start recording before they do a conference</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">allowRecording</td>
	                     <td valign="top">if the recording option is available or not</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndRecordingFlags?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&externalRoomType=VALUE&allowUserQuestions=VALUE&isAudioOnly=VALUE&waitForRecording=VALUE&allowRecording=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndRecordingFlags?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;externalRoomType=VALUE&amp;allowUserQuestions=VALUE&amp;isAudioOnly=VALUE&amp;waitForRecording=VALUE&amp;allowRecording=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addRoomWithModerationExternalTypeAndTopBarOption" ><b>addRoomWithModerationExternalTypeAndTopBarOption</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addRoomWithModerationExternalTypeAndTopBarOption (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			       			     , 
    			       			   String externalRoomType
    			       			    			       			     , 
    			       			   Boolean allowUserQuestions
    			       			    			       			     , 
    			       			   Boolean isAudioOnly
    			       			    			       			     , 
    			       			   Boolean waitForRecording
    			       			    			       			     , 
    			       			   Boolean allowRecording
    			       			    			       			     , 
    			       			   Boolean hideTopBar
    			       			    			)
    			</i><br/>
    			<p>
    			  Add a conference room with options to disable the top menu bar in the
 conference room
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">new name of the room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">new comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">new numberOfParticipants</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">is public</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">if the room is an appointment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
            what that means)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
            becomeModerator parameter in setUserObjectAndGenerateRoomHash
            to set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">externalRoomType</td>
	                     <td valign="top">the external room type (can be used to identify different
            external systems using same OpenMeetings instance)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">allowUserQuestions</td>
	                     <td valign="top">enable or disable the button to allow users to apply for
            moderation</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isAudioOnly</td>
	                     <td valign="top">enable or disable the video / or audio-only</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">waitForRecording</td>
	                     <td valign="top">if the users in the room will get a notification that they
            should start recording before they do a conference</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">allowRecording</td>
	                     <td valign="top">if the recording option is available or not</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">hideTopBar</td>
	                     <td valign="top">if the top bar in the conference room is visible or not</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationExternalTypeAndTopBarOption?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&externalRoomType=VALUE&allowUserQuestions=VALUE&isAudioOnly=VALUE&waitForRecording=VALUE&allowRecording=VALUE&hideTopBar=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationExternalTypeAndTopBarOption?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;externalRoomType=VALUE&amp;allowUserQuestions=VALUE&amp;isAudioOnly=VALUE&amp;waitForRecording=VALUE&amp;allowRecording=VALUE&amp;hideTopBar=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getInvitationHash" ><b>getInvitationHash</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getInvitationHash (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String username
    			       			    			       			     , 
    			       			   Long room_id
    			       			    			       			     , 
    			       			   Boolean isPasswordProtected
    			       			    			       			     , 
    			       			   String invitationpass
    			       			    			       			     , 
    			       			   Integer valid
    			       			    			       			     , 
    			       			   String validFromDate
    			       			    			       			     , 
    			       			   String validFromTime
    			       			    			       			     , 
    			       			   String validToDate
    			       			    			       			     , 
    			       			   String validToTime
    			       			    			)
    			</i><br/>
    			<p>
    			  Create a Invitation hash and optionally send it by mail the From to Date
 is as String as some SOAP libraries do not accept Date Objects in SOAP
 Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
 leading zero's)
    			</p>
    			<p>
                  Return Type: java.lang.String
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin a
            valid Session Token</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">username</td>
	                     <td valign="top">the username of the User that he will get</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">room_id</td>
	                     <td valign="top">the conference room id of the invitation</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isPasswordProtected</td>
	                     <td valign="top">if the invitation is password protected</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">invitationpass</td>
	                     <td valign="top">the password for accessing the conference room via the
            invitation hash</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">valid</td>
	                     <td valign="top">the type of validation for the hash 1: endless, 2: from-to
            period, 3: one-time</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">validFromDate</td>
	                     <td valign="top">Date in Format of dd.mm.yyyy only of interest if valid is type
            2</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">validFromTime</td>
	                     <td valign="top">time in Format of hh:mm only of interest if valid is type 2</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">validToDate</td>
	                     <td valign="top">Date in Format of dd.mm.yyyy only of interest if valid is type
            2</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">validToTime</td>
	                     <td valign="top">time in Format of hh:mm only of interest if valid is type 2</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getInvitationHash?SID=VALUE&username=VALUE&room_id=VALUE&isPasswordProtected=VALUE&invitationpass=VALUE&valid=VALUE&validFromDate=VALUE&validFromTime=VALUE&validToDate=VALUE&validToTime=VALUE">http://localhost:5080/openmeetings/services/RoomService/getInvitationHash?SID=VALUE&amp;username=VALUE&amp;room_id=VALUE&amp;isPasswordProtected=VALUE&amp;invitationpass=VALUE&amp;valid=VALUE&amp;validFromDate=VALUE&amp;validFromTime=VALUE&amp;validToDate=VALUE&amp;validToTime=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="sendInvitationHash" ><b>sendInvitationHash</b></a>
    			</div>
    			</div>
    			
    			Method: <i>sendInvitationHash (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String username
    			       			    			       			     , 
    			       			   String message
    			       			    			       			     , 
    			       			   String baseurl
    			       			    			       			     , 
    			       			   String email
    			       			    			       			     , 
    			       			   String subject
    			       			    			       			     , 
    			       			   Long room_id
    			       			    			       			     , 
    			       			   String conferencedomain
    			       			    			       			     , 
    			       			   Boolean isPasswordProtected
    			       			    			       			     , 
    			       			   String invitationpass
    			       			    			       			     , 
    			       			   Integer valid
    			       			    			       			     , 
    			       			   String validFromDate
    			       			    			       			     , 
    			       			   String validFromTime
    			       			    			       			     , 
    			       			   String validToDate
    			       			    			       			     , 
    			       			   String validToTime
    			       			    			       			     , 
    			       			   Long language_id
    			       			    			       			     , 
    			       			   Boolean sendMail
    			       			    			)
    			</i><br/>
    			<p>
    			  Create a Invitation hash and optionally send it by mail the From to Date
 is as String as some SOAP libraries do not accept Date Objects in SOAP
 Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
 leading zero's)
    			</p>
    			<p>
                  Return Type: java.lang.String
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin a
            valid Session Token</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">username</td>
	                     <td valign="top">the Username of the User that he will get</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">message</td>
	                     <td valign="top">the Message in the Email Body send with the invitation if
            sendMail is true</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">baseurl</td>
	                     <td valign="top">the baseURL for the Infivations link in the Mail Body if
            sendMail is true</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">email</td>
	                     <td valign="top">the Email to send the invitation to if sendMail is true</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">subject</td>
	                     <td valign="top">the subject of the Email send with the invitation if sendMail
            is true</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">room_id</td>
	                     <td valign="top">the conference room id of the invitation</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">conferencedomain</td>
	                     <td valign="top">the domain of the room (keep empty)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isPasswordProtected</td>
	                     <td valign="top">if the invitation is password protected</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">invitationpass</td>
	                     <td valign="top">the password for accessing the conference room via the
            invitation hash</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">valid</td>
	                     <td valign="top">the type of validation for the hash 1: endless, 2: from-to
            period, 3: one-time</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">validFromDate</td>
	                     <td valign="top">Date in Format of dd.mm.yyyy only of interest if valid is type
            2</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">validFromTime</td>
	                     <td valign="top">time in Format of hh:mm only of interest if valid is type 2</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">validToDate</td>
	                     <td valign="top">Date in Format of dd.mm.yyyy only of interest if valid is type
            2</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">validToTime</td>
	                     <td valign="top">time in Format of hh:mm only of interest if valid is type 2</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">language_id</td>
	                     <td valign="top">the language id of the EMail that is send with the invitation
            if sendMail is true</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">sendMail</td>
	                     <td valign="top">if sendMail is true then the RPC-Call will send the invitation
            to the email</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/sendInvitationHash?SID=VALUE&username=VALUE&message=VALUE&baseurl=VALUE&email=VALUE&subject=VALUE&room_id=VALUE&conferencedomain=VALUE&isPasswordProtected=VALUE&invitationpass=VALUE&valid=VALUE&validFromDate=VALUE&validFromTime=VALUE&validToDate=VALUE&validToTime=VALUE&language_id=VALUE&sendMail=VALUE">http://localhost:5080/openmeetings/services/RoomService/sendInvitationHash?SID=VALUE&amp;username=VALUE&amp;message=VALUE&amp;baseurl=VALUE&amp;email=VALUE&amp;subject=VALUE&amp;room_id=VALUE&amp;conferencedomain=VALUE&amp;isPasswordProtected=VALUE&amp;invitationpass=VALUE&amp;valid=VALUE&amp;validFromDate=VALUE&amp;validFromTime=VALUE&amp;validToDate=VALUE&amp;validToTime=VALUE&amp;language_id=VALUE&amp;sendMail=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="sendInvitationHashWithDateObject" ><b>sendInvitationHashWithDateObject</b></a>
    			</div>
    			</div>
    			
    			Method: <i>sendInvitationHashWithDateObject (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String username
    			       			    			       			     , 
    			       			   String message
    			       			    			       			     , 
    			       			   String baseurl
    			       			    			       			     , 
    			       			   String email
    			       			    			       			     , 
    			       			   String subject
    			       			    			       			     , 
    			       			   Long room_id
    			       			    			       			     , 
    			       			   String conferencedomain
    			       			    			       			     , 
    			       			   Boolean isPasswordProtected
    			       			    			       			     , 
    			       			   String invitationpass
    			       			    			       			     , 
    			       			   Integer valid
    			       			    			       			     , 
    			       			   Date fromDate
    			       			    			       			     , 
    			       			   Date toDate
    			       			    			       			     , 
    			       			   Long language_id
    			       			    			       			     , 
    			       			   Boolean sendMail
    			       			    			)
    			</i><br/>
    			<p>
    			  Create a Invitation hash and optionally send it by mail the From to Date
 is as String as some SOAP libraries do not accept Date Objects in SOAP
 Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
 leading zero's)
    			</p>
    			<p>
                  Return Type: java.lang.String
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin a
            valid Session Token</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">username</td>
	                     <td valign="top">the Username of the User that he will get</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">message</td>
	                     <td valign="top">the Message in the Email Body send with the invitation if
            sendMail is true</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">baseurl</td>
	                     <td valign="top">the baseURL for the Infivations link in the Mail Body if
            sendMail is true</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">email</td>
	                     <td valign="top">the Email to send the invitation to if sendMail is true</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">subject</td>
	                     <td valign="top">the subject of the Email send with the invitation if sendMail
            is true</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">room_id</td>
	                     <td valign="top">the conference room id of the invitation</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">conferencedomain</td>
	                     <td valign="top">the domain of the room (keep empty)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isPasswordProtected</td>
	                     <td valign="top">if the invitation is password protected</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">invitationpass</td>
	                     <td valign="top">the password for accessing the conference room via the
            invitation hash</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">valid</td>
	                     <td valign="top">the type of validation for the hash 1: endless, 2: from-to
            period, 3: one-time</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Date
	                     		                     </td>
	                     <td valign="top">fromDate</td>
	                     <td valign="top">Date as Date Object only of interest if valid is type 2</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Date
	                     		                     </td>
	                     <td valign="top">toDate</td>
	                     <td valign="top">Date as Date Object only of interest if valid is type 2</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">language_id</td>
	                     <td valign="top">the language id of the EMail that is send with the invitation
            if sendMail is true</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">sendMail</td>
	                     <td valign="top">if sendMail is true then the RPC-Call will send the invitation
            to the email</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/sendInvitationHashWithDateObject?SID=VALUE&username=VALUE&message=VALUE&baseurl=VALUE&email=VALUE&subject=VALUE&room_id=VALUE&conferencedomain=VALUE&isPasswordProtected=VALUE&invitationpass=VALUE&valid=VALUE&fromDate=VALUE&toDate=VALUE&language_id=VALUE&sendMail=VALUE">http://localhost:5080/openmeetings/services/RoomService/sendInvitationHashWithDateObject?SID=VALUE&amp;username=VALUE&amp;message=VALUE&amp;baseurl=VALUE&amp;email=VALUE&amp;subject=VALUE&amp;room_id=VALUE&amp;conferencedomain=VALUE&amp;isPasswordProtected=VALUE&amp;invitationpass=VALUE&amp;valid=VALUE&amp;fromDate=VALUE&amp;toDate=VALUE&amp;language_id=VALUE&amp;sendMail=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getRoomsWithCurrentUsersByList" ><b>getRoomsWithCurrentUsersByList</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getRoomsWithCurrentUsersByList (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   int start
    			       			    			       			     , 
    			       			   int max
    			       			    			       			     , 
    			       			   String orderby
    			       			    			       			     , 
    			       			   boolean asc
    			       			    			)
    			</i><br/>
    			<p>
    			  Return a RoomReturn Object with information of the current users of a
 conference room
    			</p>
    			<p>
                  Return Type: java.util.List
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		int
	                     		                     </td>
	                     <td valign="top">start</td>
	                     <td valign="top">The id you want to start</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		int
	                     		                     </td>
	                     <td valign="top">max</td>
	                     <td valign="top">The maximum you want to get</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">orderby</td>
	                     <td valign="top">The column it will be ordered</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		boolean
	                     		                     </td>
	                     <td valign="top">asc</td>
	                     <td valign="top">Asc or Desc sort ordering</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomsWithCurrentUsersByList?SID=VALUE&start=VALUE&max=VALUE&orderby=VALUE&asc=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomsWithCurrentUsersByList?SID=VALUE&amp;start=VALUE&amp;max=VALUE&amp;orderby=VALUE&amp;asc=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="getRoomsWithCurrentUsersByListAndType" ><b>getRoomsWithCurrentUsersByListAndType</b></a>
    			</div>
    			</div>
    			
    			Method: <i>getRoomsWithCurrentUsersByListAndType (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   int start
    			       			    			       			     , 
    			       			   int max
    			       			    			       			     , 
    			       			   String orderby
    			       			    			       			     , 
    			       			   boolean asc
    			       			    			       			     , 
    			       			   String externalRoomType
    			       			    			)
    			</i><br/>
    			<p>
    			  Return a RoomReturn Object with information of the current users of a
 conference room with option to search for special external room types
    			</p>
    			<p>
                  Return Type: java.util.List
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		int
	                     		                     </td>
	                     <td valign="top">start</td>
	                     <td valign="top">The id you want to start</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		int
	                     		                     </td>
	                     <td valign="top">max</td>
	                     <td valign="top">The maximum you want to get</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">orderby</td>
	                     <td valign="top">The column it will be ordered</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		boolean
	                     		                     </td>
	                     <td valign="top">asc</td>
	                     <td valign="top">Asc or Desc sort ordering</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">externalRoomType</td>
	                     <td valign="top">the external room type</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomsWithCurrentUsersByListAndType?SID=VALUE&start=VALUE&max=VALUE&orderby=VALUE&asc=VALUE&externalRoomType=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomsWithCurrentUsersByListAndType?SID=VALUE&amp;start=VALUE&amp;max=VALUE&amp;orderby=VALUE&amp;asc=VALUE&amp;externalRoomType=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addRoomWithModerationAndExternalTypeAndStartEnd" ><b>addRoomWithModerationAndExternalTypeAndStartEnd</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addRoomWithModerationAndExternalTypeAndStartEnd (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   String name
    			       			    			       			     , 
    			       			   Long roomtypes_id
    			       			    			       			     , 
    			       			   String comment
    			       			    			       			     , 
    			       			   Long numberOfPartizipants
    			       			    			       			     , 
    			       			   Boolean ispublic
    			       			    			       			     , 
    			       			   Boolean appointment
    			       			    			       			     , 
    			       			   Boolean isDemoRoom
    			       			    			       			     , 
    			       			   Integer demoTime
    			       			    			       			     , 
    			       			   Boolean isModeratedRoom
    			       			    			       			     , 
    			       			   String externalRoomType
    			       			    			       			     , 
    			       			   String validFromDate
    			       			    			       			     , 
    			       			   String validFromTime
    			       			    			       			     , 
    			       			   String validToDate
    			       			    			       			     , 
    			       			   String validToTime
    			       			    			       			     , 
    			       			   Boolean isPasswordProtected
    			       			    			       			     , 
    			       			   String password
    			       			    			       			     , 
    			       			   Long reminderTypeId
    			       			    			       			     , 
    			       			   String redirectURL
    			       			    			)
    			</i><br/>
    			<p>
    			  Adds a conference room that is only available for a period of time
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">name</td>
	                     <td valign="top">new name of the room</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">roomtypes_id</td>
	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
            Restricted, 4 = Interview)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">comment</td>
	                     <td valign="top">new comment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">numberOfPartizipants</td>
	                     <td valign="top">new numberOfParticipants</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">ispublic</td>
	                     <td valign="top">is public</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">appointment</td>
	                     <td valign="top">if the room is an appointment</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isDemoRoom</td>
	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
            what that means)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Integer
	                     		                     </td>
	                     <td valign="top">demoTime</td>
	                     <td valign="top">time in seconds after the user will be logged out (only
            enabled if isDemoRoom is true)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isModeratedRoom</td>
	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
            becomeModerator parameter in setUserObjectAndGenerateRoomHash
            to set a user as default Moderator</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">externalRoomType</td>
	                     <td valign="top">the external room type (can be used to identify different
            external systems using same OpenMeetings instance)</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">validFromDate</td>
	                     <td valign="top">valid from as Date format: dd.MM.yyyy</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">validFromTime</td>
	                     <td valign="top">valid to as time format: mm:hh</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">validToDate</td>
	                     <td valign="top">valid to Date format: dd.MM.yyyy</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">validToTime</td>
	                     <td valign="top">valid to time format: mm:hh</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">isPasswordProtected</td>
	                     <td valign="top">If the links send via EMail to invited people is password
            protected</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">password</td>
	                     <td valign="top">Password for Invitations send via Mail</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">reminderTypeId</td>
	                     <td valign="top">1=none, 2=simple mail, 3=ICAL</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">redirectURL</td>
	                     <td valign="top">URL Users will be lead to if the Conference Time is elapsed</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndExternalTypeAndStartEnd?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&externalRoomType=VALUE&validFromDate=VALUE&validFromTime=VALUE&validToDate=VALUE&validToTime=VALUE&isPasswordProtected=VALUE&password=VALUE&reminderTypeId=VALUE&redirectURL=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndExternalTypeAndStartEnd?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;externalRoomType=VALUE&amp;validFromDate=VALUE&amp;validFromTime=VALUE&amp;validToDate=VALUE&amp;validToTime=VALUE&amp;isPasswordProtected=VALUE&amp;password=VALUE&amp;reminderTypeId=VALUE&amp;redirectURL=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addMeetingMemberRemindToRoom" ><b>addMeetingMemberRemindToRoom</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addMeetingMemberRemindToRoom (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Long room_id
    			       			    			       			     , 
    			       			   String firstname
    			       			    			       			     , 
    			       			   String lastname
    			       			    			       			     , 
    			       			   String email
    			       			    			       			     , 
    			       			   String baseUrl
    			       			    			       			     , 
    			       			   Long language_id
    			       			    			)
    			</i><br/>
    			<p>
    			  Add a meeting member to a certain room. This is the same as adding an
 external user to a event in the calendar.
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">room_id</td>
	                     <td valign="top">The Room Id the meeting member is going to be added</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">firstname</td>
	                     <td valign="top">The first name of the meeting member</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">lastname</td>
	                     <td valign="top">The last name of the meeting member</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">email</td>
	                     <td valign="top">The email of the Meeting member</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">baseUrl</td>
	                     <td valign="top">The baseUrl, this is important to send the correct link in the
            invitation to the meeting member</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">language_id</td>
	                     <td valign="top">The ID of the language, for the email that is send to the
            meeting member</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addMeetingMemberRemindToRoom?SID=VALUE&room_id=VALUE&firstname=VALUE&lastname=VALUE&email=VALUE&baseUrl=VALUE&language_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/addMeetingMemberRemindToRoom?SID=VALUE&amp;room_id=VALUE&amp;firstname=VALUE&amp;lastname=VALUE&amp;email=VALUE&amp;baseUrl=VALUE&amp;language_id=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addExternalMeetingMemberRemindToRoom" ><b>addExternalMeetingMemberRemindToRoom</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addExternalMeetingMemberRemindToRoom (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Long room_id
    			       			    			       			     , 
    			       			   String firstname
    			       			    			       			     , 
    			       			   String lastname
    			       			    			       			     , 
    			       			   String email
    			       			    			       			     , 
    			       			   String baseUrl
    			       			    			       			     , 
    			       			   Long language_id
    			       			    			       			     , 
    			       			   String jNameTimeZone
    			       			    			       			     , 
    			       			   String invitorName
    			       			    			)
    			</i><br/>
    			<p>
    			  Add a meeting member to a certain room. This is the same as adding an
 external user to a event in the calendar. with a certain time zone
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">room_id</td>
	                     <td valign="top">The Room Id the meeting member is going to be added</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">firstname</td>
	                     <td valign="top">The first name of the meeting member</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">lastname</td>
	                     <td valign="top">The last name of the meeting member</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">email</td>
	                     <td valign="top">The email of the Meeting member</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">baseUrl</td>
	                     <td valign="top">The baseUrl, this is important to send the correct link in the
            invitation to the meeting member</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">language_id</td>
	                     <td valign="top">The ID of the language, for the email that is send to the
            meeting member</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">jNameTimeZone</td>
	                     <td valign="top">name of the timezone</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">invitorName</td>
	                     <td valign="top">name of invitation creators</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addExternalMeetingMemberRemindToRoom?SID=VALUE&room_id=VALUE&firstname=VALUE&lastname=VALUE&email=VALUE&baseUrl=VALUE&language_id=VALUE&jNameTimeZone=VALUE&invitorName=VALUE">http://localhost:5080/openmeetings/services/RoomService/addExternalMeetingMemberRemindToRoom?SID=VALUE&amp;room_id=VALUE&amp;firstname=VALUE&amp;lastname=VALUE&amp;email=VALUE&amp;baseUrl=VALUE&amp;language_id=VALUE&amp;jNameTimeZone=VALUE&amp;invitorName=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="closeRoom" ><b>closeRoom</b></a>
    			</div>
    			</div>
    			
    			Method: <i>closeRoom (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Long room_id
    			       			    			       			     , 
    			       			   Boolean status
    			       			    			)
    			</i><br/>
    			<p>
    			  Method to remotely close or open rooms. If a room is closed all users
 inside the room and all users that try to enter it will be redirected to
 the redirectURL that is defined in the Room-Object.
 
 Returns positive value if authentication was successful.
    			</p>
    			<p>
                  Return Type: int
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">room_id</td>
	                     <td valign="top">the room id</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Boolean
	                     		                     </td>
	                     <td valign="top">status</td>
	                     <td valign="top">false = close, true = open</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/closeRoom?SID=VALUE&room_id=VALUE&status=VALUE">http://localhost:5080/openmeetings/services/RoomService/closeRoom?SID=VALUE&amp;room_id=VALUE&amp;status=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="modifyRoomParameter" ><b>modifyRoomParameter</b></a>
    			</div>
    			</div>
    			
    			Method: <i>modifyRoomParameter (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Long room_id
    			       			    			       			     , 
    			       			   String paramName
    			       			    			       			     , 
    			       			   String paramValue
    			       			    			)
    			</i><br/>
    			<p>
    			  Method to update arbitrary room parameter.
    			</p>
    			<p>
                  Return Type: int
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">room_id</td>
	                     <td valign="top">the room id</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">paramName</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">paramValue</td>
	                     <td valign="top"></td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/modifyRoomParameter?SID=VALUE&room_id=VALUE&paramName=VALUE&paramValue=VALUE">http://localhost:5080/openmeetings/services/RoomService/modifyRoomParameter?SID=VALUE&amp;room_id=VALUE&amp;paramName=VALUE&amp;paramValue=VALUE</a>
    		  </div>
    	   				    		      <div class="method">
		        <div class="method_header">
		        <div style="margin-left:10px">
    			<a name="addRoomToOrg" ><b>addRoomToOrg</b></a>
    			</div>
    			</div>
    			
    			Method: <i>addRoomToOrg (
    			    			    			       			   String SID
    			       			    			       			     , 
    			       			   Long rooms_id
    			       			    			       			     , 
    			       			   Long organisation_id
    			       			    			)
    			</i><br/>
    			<p>
    			  Adds a room to an organization
    			</p>
    			<p>
                  Return Type: java.lang.Long
                </p>
    			<p>Params:</p>
    			    			
    				    			<table rules="all" border="1">
	    			   <thead>
	    			   <tr>
	    			     <th width="200" align="left">Type</th>
	    			     <th width="200" align="left">Fieldname</th>
	    			     <th width="400" align="left">Description</th>
	    			   </tr>
	    			   </thead>
	    			   <tbody>
	    			   	    			   	    			   <tr>
	                     <td valign="top">
	                     		                     		String
	                     		                     </td>
	                     <td valign="top">SID</td>
	                     <td valign="top">- The SID of the User. This SID must be marked as Loggedin</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">rooms_id</td>
	                     <td valign="top">- Id of room to be added</td>
	                   </tr>
	                   
	                   	                   	    			   <tr>
	                     <td valign="top">
	                     		                     		Long
	                     		                     </td>
	                     <td valign="top">organisation_id</td>
	                     <td valign="top">- Id of organisation that the room is being paired with</td>
	                   </tr>
	                   
	                   	                   	                   </tbody>
	    			</table>
    			    			<br/>
    			REST Sample Call/URL:<br/>
    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomToOrg?SID=VALUE&rooms_id=VALUE&organisation_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomToOrg?SID=VALUE&amp;rooms_id=VALUE&amp;organisation_id=VALUE</a>
    		  </div>
    	   			
	
	</body>
</html>

