blob: ed1bba42fdf6db965761a65eb92aea5605e292f0 [file] [log] [blame]
<!DOCTYPE html>
<!--
Generated by Apache Maven Doxia at 2017-03-29
Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<title>Apache OpenMeetings Project -
Howto create a custom room type in OpenMeetings</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="" />
<meta name="author" content="Apache OpenMeetings Team" />
<meta http-equiv="content-language" content="en" />
<link href=".//css/bootstrap.min.css" rel="stylesheet" />
<link href=".//css/bootstrap-responsive.min.css" rel="stylesheet" />
<link href=".//css/docs.css" rel="stylesheet" />
<link href=".//css/reflow-skin.css" rel="stylesheet" />
<link href=".//css/lightbox.css" rel="stylesheet" />
<link href=".//css/site.css" rel="stylesheet" />
<link href=".//css/print.css" rel="stylesheet" media="print" />
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src=".//js/html5.js"></script>
<![endif]-->
</head>
<body class="page-customroomtypehowto project-openmeetings-server" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="brand"><span class="color-highlight">Apache</span> OpenMeetings</div>
<div class="nav-collapse collapse" id="top-nav-collapse">
<ul class="nav pull-right">
<li ><a href="demo.html" title="Demo">Demo</a></li>
<li ><a href="downloads.html" title="Download">Download</a></li>
<li ><a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" title="Wiki" class="externalLink">Wiki</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">General <b class="caret"></b></a>
<ul class="dropdown-menu">
<li ><a href="index.html" title="Home">Home</a></li>
<li ><a href="license.html" title="License">License</a></li>
<li ><a href="http://www.apache.org/" title="ASF" class="externalLink">ASF</a></li>
<li ><a href="CallForLogo.html" title="Call For Logo">Call For Logo</a></li>
<li ><a href="NewsArchive.html" title="News archive">News archive</a></li>
<li ><a href="security.html" title="Security">Security</a></li>
<li ><a href="commercial-support.html" title="Commercial Support">Commercial Support</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Installation <b class="caret"></b></a>
<ul class="dropdown-menu">
<li ><a href="installation.html" title="Installation">Installation</a></li>
<li ><a href="Upgrade.html" title="Upgrade">Upgrade</a></li>
<li ><a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" title="Tutorials" class="externalLink">Tutorials</a></li>
<li ><a href="CommandLineAdmin.html" title="Command Line Admin">Command Line Admin</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
<ul class="dropdown-menu">
<li ><a href="get-involved.html" title="Get Involved">Get Involved</a></li>
<li ><a href="team-list.html" title="Committers">Committers</a></li>
<li ><a href="OurUsers.html" title="Our Users">Our Users</a></li>
<li ><a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a></li>
<li ><a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" title="Wiki" class="externalLink">Wiki</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
<ul class="dropdown-menu">
<li ><a href="source-repository.html" title="Source Code">Source Code</a></li>
<li ><a href="issue-tracking.html" title="Bugs / Issues">Bugs / Issues</a></li>
<li ><a href="dependencies.html" title="Dependencies">Dependencies</a></li>
<li ><a href="integration.html" title="Continuous Integration">Continuous Integration</a></li>
<li ><a href="BuildInstructions_3.0.x.html" title="Build Instructions 3.0.x">Build Instructions 3.0.x</a></li>
<li ><a href="BuildInstructions.html" title="Build Instructions">Build Instructions</a></li>
<li ><a href="JUnitTesting.html" title="JUnit Testing">JUnit Testing</a></li>
<li ><a href="ManualTesting.html" title="Manual Testing">Manual Testing</a></li>
<li ><a href="ReleaseGuide.html" title="Release Guide">Release Guide</a></li>
<li ><a href="WebsiteGuide.html" title="Website Guide">Website Guide</a></li>
</ul>
</li>
<li class="dropdown active">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Configuration <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="dropdown-submenu ">
<a href="CustomRoomTypeHowTo.html#integration" title="Integration">Integration</a>
<ul class="dropdown-menu">
<li ><a href="openmeetings-webservice/apidocs/index.html" title="SOAP/REST API" target="_blank">SOAP/REST API</a></li>
<li ><a href="RestAPISample.html" title="REST API Sample">REST API Sample</a></li>
<li ><a href="LdapAndADS.html" title="Ldap and ADS">Ldap and ADS</a></li>
<li ><a href="oauth2.html" title="OAuth2">OAuth2</a></li>
<li ><a href="voip-sip-integration.html" title="VoIP and SIP">VoIP and SIP</a></li>
<li ><a href="errorvalues.html" title="Errors table">Errors table</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomRoomTypeHowTo.html#plugins" title="Plugins">Plugins</a>
<ul class="dropdown-menu">
<li ><a href="MoodlePlugin.html" title="Moodle Plugin">Moodle Plugin</a></li>
<li ><a href="SakaiPlugin.html" title="Sakai Plugin">Sakai Plugin</a></li>
<li ><a href="JiraPlugin.html" title="Jira Plugin">Jira Plugin</a></li>
<li ><a href="JoomlaPlugin.html" title="Joomla Plugin">Joomla Plugin</a></li>
<li ><a href="DrupalPlugin.html" title="Drupal Plugin">Drupal Plugin</a></li>
<li ><a href="BitrixPlugin.html" title="Bitrix Plugin">Bitrix Plugin</a></li>
<li ><a href="ConfluencePlugin.html" title="Confluence Plugin">Confluence Plugin</a></li>
<li ><a href="SugarCRMPlugin.html" title="SugarCRM Plugin">SugarCRM Plugin</a></li>
<li ><a href="RedminePlugin.html" title="Redmine Plugin">Redmine Plugin</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomRoomTypeHowTo.html#db" title="DB Sample Configurations">DB Sample Configurations</a>
<ul class="dropdown-menu">
<li ><a href="ApacheDerbyConfig.html" title="Apache Derby">Apache Derby</a></li>
<li ><a href="IBMDB2Config.html" title="IBM DB2">IBM DB2</a></li>
<li ><a href="OracleConfig.html" title="Oracle">Oracle</a></li>
<li ><a href="MySQLConfig.html" title="MySQL">MySQL</a></li>
<li ><a href="PostgresConfig.html" title="Postgres">Postgres</a></li>
<li ><a href="MSSQLConfig.html" title="MSSQL">MSSQL</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomRoomTypeHowTo.html#localization" title="Localization and languages">Localization and languages</a>
<ul class="dropdown-menu">
<li ><a href="Internationalisation.html" title="Internationalisation">Internationalisation</a></li>
<li ><a href="LanguageEditor.html" title="LanguageEditor">LanguageEditor</a></li>
<li ><a href="TimeZoneHandling.html" title="TimeZoneHandling">TimeZoneHandling</a></li>
<li ><a href="EditTemplates.html" title="EditTemplates">EditTemplates</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomRoomTypeHowTo.html#port" title="NAT Port Settings">NAT Port Settings</a>
<ul class="dropdown-menu">
<li ><a href="PortSettings.html" title="Port settings">Port settings</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomRoomTypeHowTo.html#performance" title="Performance">Performance</a>
<ul class="dropdown-menu">
<li ><a href="JVMPerformanceTuning.html" title="JVM performance tuning">JVM performance tuning</a></li>
<li ><a href="NetworkCalculator.html" title="Network bandwidth calculator">Network bandwidth calculator</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomRoomTypeHowTo.html#interface" title="User Interface">User Interface</a>
<ul class="dropdown-menu">
<li ><a href="themes-and-branding.html" title="Themes">Themes</a></li>
<li ><a href="Dashboard.html" title="Dashboard">Dashboard</a></li>
<li ><a href="WebcamResolutions.html" title="Webcam resolutions">Webcam resolutions</a></li>
<li ><a href="ConferenceRoomLayoutOptions.html" title="Room layout options">Room layout options</a></li>
<li ><a href="HotKeys.html" title="Hot Keys">Hot Keys</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomRoomTypeHowTo.html#customize" title="Customization">Customization</a>
<ul class="dropdown-menu">
<li ><a href="WebappNamePath.html" title="Webapp name/path">Webapp name/path</a></li>
<li ><a href="Navigation.html" title="Navigation">Navigation</a></li>
<li ><a href="CalendarAndTimezone.html" title="Calendar and timezone">Calendar and timezone</a></li>
<li class="active"><a href="" title="Custom room type">Custom room type</a></li>
<li ><a href="CustomCryptMechanism.html" title="Custom crypt mechanism">Custom crypt mechanism</a></li>
<li ><a href="GeneralConfiguration.html" title="General Configuration">General Configuration</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomRoomTypeHowTo.html#security" title="Security">Security</a>
<ul class="dropdown-menu">
<li ><a href="RestrictedAccess.html" title="Restricted Access">Restricted Access</a></li>
<li ><a href="RTMPSAndHTTPS.html" title="RTMPS and HTTPS">RTMPS and HTTPS</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomRoomTypeHowTo.html#convert" title="Converters">Converters</a>
<ul class="dropdown-menu">
<li ><a href="OpenOfficeConverter.html" title="OpenOffice Converter">OpenOffice Converter</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomRoomTypeHowTo.html#cluster" title="Clustering">Clustering</a>
<ul class="dropdown-menu">
<li ><a href="Clustering.html" title="Clustering">Clustering</a></li>
</ul>
</li>
<li class="dropdown-submenu ">
<a href="CustomRoomTypeHowTo.html#misc" title="Misc">Misc</a>
<ul class="dropdown-menu">
<li ><a href="GetVersionInfo.html" title="Get version info">Get version info</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
</div>
<div class="container">
<!-- Masthead
================================================== -->
<header>
<div class="jumbotron subhead">
<div class="row" id="banner">
<div class="span12">
<div class="pull-left">
<a href="index.html" id="bannerLeft"><img src="images/logo.png" alt='"'Apache OpenMeetings'"' /></a>
</div>
<div class="pull-right">
<a href="http://apache.org" id="bannerRight"><img src="http://apache.org/img/asf_logo.png" alt='"'Apache'"' /></a>
</div>
</div>
</div>
</div>
<div>
<ul class="breadcrumb">
<li class="publishDate version-date">Last Published: 2017-03-29</li>
</ul>
</div>
</header>
<div class="main-body">
<div class="row">
<div class="span8">
<div class="body-content">
<!-- 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. -->
<div class="section">
<div class="page-header">
<h2 id="Why_creating_a_custom_room_type_in_OpenMeetings">Why creating a custom room type in OpenMeetings</h2>
</div>
<p>If you want to create your own styled room the best thing to do in order to be &quot;update-save&quot; is to create your own custom room type. There is an empty configuration by default shipped with every release of OpenMeetings, the room type &quot;custom&quot; (ID = 5).<br /> <br /> You can use that and extend it, or you can add more room types to fit your use case. </p>
<p></p>
</div>
<div class="section">
<h2 id="Create_your_own_room_type_class_User_Interface">Create your own room type class (User Interface)</h2>
<p>Lets start by creating your custom room type class. <br /> You could for example duplicate an existing room class, from <br /> <tt>src/modules/conference/flexibleConferenceRoom</tt> folder, for example the flexibleConferenceRoom.lzx: Generate a duplicate, change the name, for example to myCustomConferenceRoom.lzx and edit the class name inside the file name=&quot;flexibleConferenceRoom&quot; to name=&quot;myCustomConferenceRoom&quot;. Also don't miss to add an entry to library.lzx so that the compiler will find your new class. </p>
</div>
<div class="section">
<h2 id="Create_nesseccary_entries_in_configuration_tables">Create nesseccary entries in configuration tables</h2>
<p>You first need to create a number of configuration files </p>
<ul>
<li>To have your roomtype available everytime you install OpenMeetings you need to add it to the default rooms: <tt>ImportInitvalues.java Method: loadDefaultRooms()</tt>. Add your entry here. You can choose any random name for the room. The ID is the important trigger for the room type to identify later. You need to run the installer so that your new room type is in the database.</li>
<li>Add your room type in the default module configuration: <tt>src/base/moduleConfiguration.lzx</tt>, here you need to add a default class name for your room type </li>
<li>Add your room type in the real configuration: public/config.xml, add a new entry. <br /> You should fix also the file <tt>public/config.xsd</tt> that is the Schema file for the public/config.xml. </li>
<li>Add a parser entry to modify the room type mapping: <tt>base/mainMethods.lzx method: myinit</tt>. You can see some example parsing, you should add your one similar to the existing room types.</li>
</ul>
</div>
<div class="section">
<h2 id="Link_your_room_type_config_with_your_room_type_class">Link your room type config with your room type class </h2>
<p>Now you need to make sure that everytime the conference room is created your new class &quot;myCustomConferenceRoom&quot; is used. There are 3 places you need to add your mapping.</p>
<ul>
<li>In the global mapping: <tt>base/mainMethods.lzx method name=&quot;setRoomValues&quot;</tt> </li>
<li>In file: <tt>modules/conference/conference/roomListItem.lzx method name=&quot;initRoom&quot;</tt> </li>
<li>In file: <tt>modules/invitation/autoloaderBarOnly.lzx netRemoteCallHib name=&quot;setUsernameAndSession&quot;</tt> </li>
</ul>
<p>Thats it. You can add/edit/delete your room with the new room type in the Administration &gt; Rooms interface of OpenMeetings like any other room.</p>
<p>If you need to have this room type available as option in the Calendar UI, you need to add it to the combobox manually.</p>
</div>
</div>
</div>
<div class="span4">
<div id="toc-sidebar">
<div class="well">
<ul class="nav nav-list">
<li class="nav-header">Table of Contents</li>
<li><a href="#Why_creating_a_custom_room_type_in_OpenMeetings" title="Why creating a custom room type in OpenMeetings">Why creating a custom room type in OpenMeetings</a>
<li><a href="#Create_your_own_room_type_class_User_Interface" title="Create your own room type class (User Interface)">Create your own room type class (User Interface)</a>
<li><a href="#Create_nesseccary_entries_in_configuration_tables" title="Create nesseccary entries in configuration tables">Create nesseccary entries in configuration tables</a>
<li><a href="#Link_your_room_type_config_with_your_room_type_class" title="Link your room type config with your room type class">Link your room type config with your room type class</a>
</ul>
</div>
</div>
</div>
</div>
</div>
</div><!-- /container -->
<!-- Footer
================================================== -->
<footer class="well">
<div class="container">
<div class="row">
<div class="span3 bottom-nav">
<ul class="nav nav-list">
<li class="nav-header">General</li>
<li >
<a href="index.html" title="Home">Home</a>
</li>
<li >
<a href="license.html" title="License">License</a>
</li>
<li >
<a href="http://www.apache.org/" title="ASF" class="externalLink">ASF</a>
</li>
<li >
<a href="CallForLogo.html" title="Call For Logo">Call For Logo</a>
</li>
<li >
<a href="NewsArchive.html" title="News archive">News archive</a>
</li>
<li >
<a href="security.html" title="Security">Security</a>
</li>
<li >
<a href="commercial-support.html" title="Commercial Support">Commercial Support</a>
</li>
</ul>
</div>
<div class="span3 bottom-nav">
<ul class="nav nav-list">
<li class="nav-header">Installation</li>
<li >
<a href="installation.html" title="Installation">Installation</a>
</li>
<li >
<a href="Upgrade.html" title="Upgrade">Upgrade</a>
</li>
<li >
<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" title="Tutorials" class="externalLink">Tutorials</a>
</li>
<li >
<a href="CommandLineAdmin.html" title="Command Line Admin">Command Line Admin</a>
</li>
</ul>
</div>
<div class="span3 bottom-nav">
<ul class="nav nav-list">
<li class="nav-header">Community</li>
<li >
<a href="get-involved.html" title="Get Involved">Get Involved</a>
</li>
<li >
<a href="team-list.html" title="Committers">Committers</a>
</li>
<li >
<a href="OurUsers.html" title="Our Users">Our Users</a>
</li>
<li >
<a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
</li>
<li >
<a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" title="Wiki" class="externalLink">Wiki</a>
</li>
</ul>
</div>
<div class="span3 bottom-nav">
<ul class="nav nav-list">
<li class="nav-header">Development</li>
<li >
<a href="source-repository.html" title="Source Code">Source Code</a>
</li>
<li >
<a href="issue-tracking.html" title="Bugs / Issues">Bugs / Issues</a>
</li>
<li >
<a href="dependencies.html" title="Dependencies">Dependencies</a>
</li>
<li >
<a href="integration.html" title="Continuous Integration">Continuous Integration</a>
</li>
<li >
<a href="BuildInstructions_3.0.x.html" title="Build Instructions 3.0.x">Build Instructions 3.0.x</a>
</li>
<li >
<a href="BuildInstructions.html" title="Build Instructions">Build Instructions</a>
</li>
<li >
<a href="JUnitTesting.html" title="JUnit Testing">JUnit Testing</a>
</li>
<li >
<a href="ManualTesting.html" title="Manual Testing">Manual Testing</a>
</li>
<li >
<a href="ReleaseGuide.html" title="Release Guide">Release Guide</a>
</li>
<li >
<a href="WebsiteGuide.html" title="Website Guide">Website Guide</a>
</li>
</ul>
</div>
</div>
</div>
</footer>
<div class="container subfooter">
<div class="row">
<div class="span12">
<p class="pull-right"><a href="#">Back to top</a></p>
<p class="copyright">Copyright &copy;2012-2017 <a href="http://apache.org">Apache Software Foundation</a>. All Rights Reserved.</p>
</div>
</div>
</div>
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src=".//js/jquery.min.js"></script>
<script src=".//js/bootstrap.min.js"></script>
<script src=".//js/lightbox.min.js"></script>
<script src=".//js/reflow-scroll.js"></script>
<script src=".//js/jquery-ui.min.js" type="text/javascript"></script>
<script src=".//js/netcalc.js" type="text/javascript"></script>
<script src=".//js/reflow-skin.js"></script>
</body>
</html>