<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you 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.
-->


<!-- Content Stylesheet for Site -->

        
<!-- start the processing -->
    <!-- ====================================================================== -->
    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
    <!-- Main Page Section -->
    <!-- ====================================================================== -->
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

                                                    <meta name="author" content="
			Sebastian Wagner
		">
            <meta name="email" content="sebawagner@apache.org">
            
           
                                    
                        
            <title>Apache OpenMeetings - Home</title>
            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
            
			<!-- Add jQuery library -->
			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
		
			<!-- Add coinslider plugins -->
			<script type="text/javascript" src="js/coin-slider.min.js"></script>
			
			<!-- Add colorbox plugin -->
			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
		
			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
			
			<script type="text/javascript">
				$(function() {
					$("#accordion").accordion({
						heightStyle: 'content',
						icons: false
					});
					var idx = location.href.lastIndexOf('/');
					if (idx > -1) {
						var url = '.' + location.href.substring(idx);
						var a = $('#accordion a[href="' + url + '"]');
						a.addClass('active');
						var id = a.parent()[0].id;
						var idx1 = id.lastIndexOf('-');
						if (idx1 > -1) {
							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
						} 
					}
					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
				});
			</script>
			
			<style type="text/css">
				.fancybox-custom .fancybox-outer {
					box-shadow: 0 0 50px #222;
				}
			</style>
        </head>

        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
        	<div class="mainbody" style="min-width: 960px; width: 94%;">
        	<div class="superbody" style="width: 100%;">
            <table border="0" width="100%" cellspacing="0">
                <!-- TOP IMAGE -->
                <tr>
                    <td align="left">
<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
</td>
                    <td width="80%" align="right" valign="top" >
	<a href="demo.html">Demo</a>
	<span>|</span> 
	<a href="downloads.html" target="_PARENT">Download</a>
	<span>|</span> 
	<a href="installation.html" target="_PARENT">Installation</a>
	<span>|</span> 
	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
	<span>&nbsp;</span>
</td>
                </tr>
            </table>
            <table border="0" width="100%" cellspacing="4">
                <tr><td colspan="2">
                    <hr noshade="noshade" size="1"/>
                </td></tr>

                <tr>
                    <!-- LEFT SIDE NAVIGATION -->
                    <td width="20%" valign="top" nowrap="nowrap">

                    <!-- special ACon Logo - leave here for next time
                    <a href="http://apachecon.com/2005/US/">
                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
                             width="125" border="0" alt="ApacheCon US 2005" />
                    </a>  -->

                   <!-- regular menu -->

                    
    <!-- ============================================================ -->
    <div id="accordion" style="width: 100%">
    
            	<h3><a href="#General">General</a></h3>
    	<div>
	        	            	            	    <a href="./index.html">Home</a>
<br/>
	        		        	            	            	    <a href="./license.html">License</a>
<br/>
	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
<br/>
	        		        	            	            	    <a href="./downloads.html">Downloads</a>
<br/>
	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
<br/>
	        		            	</div>
        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
    	<div>
	        	            	            	    <a href="./installation.html">Installation</a>
<br/>
	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
<br/>
	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
<br/>
	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
<br/>
	        		            	</div>
        	<h3><a href="#Community">Community</a></h3>
    	<div>
	        	            	            	    <a href="./get-involved.html">Get Involved</a>
<br/>
	        		        	            	            	    <a href="./team-list.html">Committers</a>
<br/>
	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
<br/>
	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
<br/>
	        		            	</div>
        	<h3><a href="#Development">Development</a></h3>
    	<div>
	        	            	            	    <a href="./svn.html">Source Code</a>
<br/>
	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
<br/>
	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
<br/>
	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
<br/>
	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
<br/>
	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
<br/>
	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
<br/>
	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
<br/>
	        		            	</div>
        	<h3><a href="#Integration">Integration</a></h3>
    	<div>
	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
<br/>
	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
<br/>
	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
<br/>
	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
<br/>
	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
<br/>
	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
<br/>
	        		            	</div>
        	<h3><a href="#Plugins">Plugins</a></h3>
    	<div>
	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
<br/>
	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
<br/>
	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
<br/>
	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
<br/>
	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
<br/>
	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
<br/>
	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
<br/>
	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
<br/>
	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
<br/>
	        		            	</div>
        	<h3><a href="#Configuration">Configuration</a></h3>
    	<div>
	        	            	            	<b>DB Sample Configurations</b><br/>
	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
<br/>
	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
<br/>
	            			            			    <a href="./OracleConfig.html">Oracle</a>
<br/>
	            			            			    <a href="./MySQLConfig.html">MySQL</a>
<br/>
	            			            			    <a href="./PostgresConfig.html">Postgres</a>
<br/>
	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
<br/>
	            			        		        	            	            	<b>Localization and languages</b><br/>
	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
<br/>
	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
<br/>
	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
<br/>
	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
<br/>
	            			        		        	            	            	<b>NAT Port Settings</b><br/>
	            			            			    <a href="./PortSettings.html">Port settings</a>
<br/>
	            			        		        	            	            	<b>Performance</b><br/>
	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
<br/>
	            			        		        	            	            	<b>User Interface</b><br/>
	            			            			    <a href="./themes-and-branding.html">Themes</a>
<br/>
	            			            			    <a href="./Dashboard.html">Dashboard</a>
<br/>
	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
<br/>
	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
<br/>
	            			            			    <a href="./HotKeys.html">Hot Keys</a>
<br/>
	            			        		        	            	            	<b>Customization</b><br/>
	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
<br/>
	            			            			    <a href="./Navigation.html">Navigation</a>
<br/>
	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
<br/>
	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
<br/>
	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
<br/>
	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
<br/>
	            			        		        	            	            	<b>Security</b><br/>
	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
<br/>
	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
<br/>
	            			        		        	            	            	<b>Converters</b><br/>
	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
<br/>
	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
<br/>
	            			        		        	            	            	<b>Clustering</b><br/>
	            			            			    <a href="./Clustering.html">Clustering</a>
<br/>
	            			        		        	            	            	<b>Misc</b><br/>
	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
<br/>
	            			        		            	</div>
        
    </div>
     
    <br/>
    
                    </td>
                    <td width="80%" align="left" valign="top">
                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
      <tr><td ><!-- bgcolor="#EEEEEE" -->
        <font color="#000000" face="verdana,arial,helvetica,sanserif">
          <a name="Apache OpenMeetings - Features and overview"><strong>Apache OpenMeetings - Features and overview</strong></a>
        </font>
        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
      </td></tr>
      <tr><td>
        <blockquote>
                                    <div id="coin-slider">
				<a href="#">
					<img src="images/cut_conference_room.png" alt="Conference Room" />
					<span>
						<b>Audio/Video Conferencing</b>
						<br />
						OpenMeetings enables you to make Audio/Video conferencing.
					</span>
				</a>

				<a href="#">
					<img src="images/cut_integrated_calendar.png" alt="Calendar" />
					<span>
						<b>Calendar</b>
						<br />
						You can create meetings with the integrated calendar, conference rooms and invitations are automatically send to everybody
					</span>
				</a>

				<a href="#">
					<img src="images/cut_file_explorer.png" alt="File Explorer" />
					<span>
						<b>File Explorer</b>
						<br />
						Each room has its own File-Explorer. Each user has his own private drive and additionally there is a public drive to share files with other participants
					</span>
				</a>

				<a href="#">
					<img src="images/cut_integration_api.png" alt="Integration API" />
					<span>
						<b>Integration API</b>
						<br />
						There is a SOAP/REST API to integrate into your website or intranet, as well
						as LDAP/ADS connectors and VoIP/Asterisk integration modules
					</span>
				</a>

				<a href="#">
					<img src="images/cut_private_messages.png" alt="Private messages" />
					<span>
						<b>Private messages and contacts</b>
						<br />
						From the private message center you can send invitations by email
						and attach meeting invitations to every email
					</span>
				</a>

				<a href="#">
					<img src="images/cut_administration_configuration.png" alt="Administration" />
					<span>
						<b>Administration and Configuration</b>
						<br />
						You can configure users, rooms, usergroups, config settings or
						edit labels with a Web-Frontend integrated in the application
					</span>
				</a>

				<a href="#">
					<img src="images/cut_recordings_playback.png" alt="Share and Record" />
					<span>
						<b>Screen sharing and Recording</b>
						<br />
						You can do screen sharing as well as recording of whole sessions
						including audio/video. Recordings can be downloaded as AVI/FLV or
						watched online in the integrated player.
					</span>
				</a>

			</div>
                                                <p> Openmeetings provides video conferencing, instant messaging,
				white board, collaborative document editing and other groupware
				tools using API functions of the Red5 Streaming Server for Remoting
				and Streaming.
			</p>
                                                <p>
				OpenMeetings is a project of the Apache, the old project
				website at
				<a href="http://code.google.com/p/openmeetings/" target="_BLANK">GoogleCode
				</a>
				will receive no updates anymore. The website at Apache is the only
				place that receives updates.
			</p>
                            </blockquote>
      </td></tr>
      <tr><td><br/></td></tr>
    </table>
                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
      <tr><td ><!-- bgcolor="#EEEEEE" -->
        <font color="#000000" face="verdana,arial,helvetica,sanserif">
          <a name="News"><strong>News</strong></a>
        </font>
        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
      </td></tr>
      <tr><td>
        <blockquote>
                                    <p>
			    <strong>
                    Version 2.2.0 released! See <a href="downloads.html">Downloads page</a>. 
                    (2013-12-12)
                </strong>
                <br />
			    <strong>
                    Version 2.1.1 released! See <a href="https://blogs.apache.org/openmeetings/entry/apache_openmeetings_2_1_11" target="_BLANK">Project Blog</a> or <a href="downloads.html">Downloads page</a>. 
                    (2013-07-06)
                </strong>
                <br />
			    <strong>
					OpenMeetings 2.1.0 is released! Please check <a href="downloads.html">Downloads page</a>. 
					(2013-04-01)
				</strong>
				<br />
			    <strong>
					OpenMeetings new URL, update your filters!
					<a href="http://openmeetings.apache.org">openmeetings.apache.org</a> is the new home. 
					(2013-01-28)
				</strong>
				<br />
			    <strong>
					OpenMeetings on the road to graduate from the Incubator
					<a href="https://blogs.apache.org/openmeetings/entry/openmeetings_on_the_road_to" target="_BLANK" rel="nofollow">at our blog</a>
					(2012-12-07)
				</strong>
				<br />
				<strong>
					Some slides from our Fast Feather Track at the ApacheCon Europe 2012 
					<a href="https://blogs.apache.org/openmeetings/entry/openmeetings_apachecon_presentation_slide" target="_BLANK" rel="nofollow">at our blog</a>
					(2012-11-18)
				</strong>
				<br />
				<strong>
					Update: Builds are available at
					<a href="https://builds.apache.org/view/M-R/view/OpenMeetings/" target="_BLANK" rel="nofollow">builds.apache.org</a>
					(2012-08-03)
				</strong>
				<br />
				<strong>
					<a href="https://blogs.apache.org/openmeetings/entry/apache_openmeetings_2_0_incubating" target="_BLANK" rel="nofollow">Version 2.0 released</a>
					(2012-07-26)
				</strong>
				<br />
				<strong>New committer: Timur Tleukenov (2012-03-06)</strong>
				<br />
				<strong>
					<a href="http://demo.openmeetings.de" target="_BLANK" rel="nofollow">Demo
						server</a>
					updated to r1236172 (2012-01-26)
				</strong>
				<br />
				<strong>New committer: German Grekhov (2011-12-26)</strong>
				<br />
				<strong>OpenMeetings has been accepted into the Apache Incubator
					(2011-11-12).
				</strong>
			</p>
                            </blockquote>
      </td></tr>
      <tr><td><br/></td></tr>
    </table>
                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
      <tr><td ><!-- bgcolor="#EEEEEE" -->
        <font color="#000000" face="verdana,arial,helvetica,sanserif">
          <a name="Community"><strong>Community</strong></a>
        </font>
        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
      </td></tr>
      <tr><td>
        <blockquote>
                                    <div>
				<strong>Who we are</strong>
				<blockquote>
					<a href="team-list.html">List of committers</a>
					.
				</blockquote>
			</div>
                                                <div>
				<strong>Users!</strong>
				<blockquote>
					We'd love to have you involved. Check out the
					<a href="get-involved.html">Get involved</a>
					.
				</blockquote>
			</div>
                            </blockquote>
      </td></tr>
      <tr><td><br/></td></tr>
    </table>
                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
      <tr><td ><!-- bgcolor="#EEEEEE" -->
        <font color="#000000" face="verdana,arial,helvetica,sanserif">
          <a name="Feature details"><strong>Feature details</strong></a>
        </font>
        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
      </td></tr>
      <tr><td>
        <blockquote>
                                    	<h3>Audio and Video Conferencing</h3>
	<table border="0">
		<tbody>
			<tr>
				<td style="text-align: center;" width="300">
																		<p>
							<a class="group1 fancybox-buttons" href="images/Features_Screen_Conference_Room_Thumb.png">
								<img src="images/Features_Screen_Conference_Room_Thumb.png" alt="" width="250"
									 height="175"  />
							</a>
																										</td>
				<td>
																													<div>
					There are four options to use OpenMeetings audio/video functions,
					which you can select during a conference session.
					<ul>
						<li>audio + video</li>
						<li>audio only</li>
						<li>video only</li>
						<li>picture only</li>
					</ul>
					Additional you can change video-/audio-quality, choose multiple
					camera resolutions (4:3, 16:9 or 3:2)
					and choose your input devices.
				</div>
															</td>
			</tr>
	    </tbody>
	</table>
                                                	<h3>Meeting recording and Screen sharing</h3>
	<table border="0">
		<tbody>
			<tr>
				<td style="text-align: center;" width="300">
																		<p>
							<a class="group1 fancybox-buttons" href="images/desktopsharing.png">
								<img src="images/desktopsharing.png" alt="" width="140"
									 height="150"  />
							</a>
																								<p>
							<a class="group1 fancybox-buttons" href="images/recordings_timeleine.png">
								<img src="images/recordings_timeleine.png" alt="" width="200"
									 height="115"  />
							</a>
																										</td>
				<td>
																																								<div>
					<ul>
						<li>Recorded sessions contain everything including sound recorded
							from all audio streams in exactly the way you've seen it in the
							conference.
						</li>
					</ul>
					<ul>
						<li>Recorded sessions can be downloaded as AVI/FLV files.</li>
					</ul>
					<ul>
						<li>Possibility to select a screen area for sharing.</li>
					</ul>
					<ul>
						<li>Different quality steps for Screensharing.</li>
					</ul>
					<ul>
						<li>Watch and organize recordings in an integrated Drag and Drop
							File-Explorer
						</li>
					</ul>
				</div>
															</td>
			</tr>
	    </tbody>
	</table>
                                                	<h3>File Explorer</h3>
	<table border="0">
		<tbody>
			<tr>
				<td style="text-align: center;" width="300">
																		<p>
							<a class="group1 fancybox-buttons" href="images/file_smal.png">
								<img src="images/file_smal.png" alt="" width="135"
									 height="200"  />
							</a>
																										</td>
				<td>
																													<div>
					Advanced File-Explorer in every conference room, Drag and Drop
					interface for managing uploaded files, including the possibility to
					create a document tree with folders.
					<br />
					<br />
					Private and Public Drive in
					File-Explorer. The File-Explorer has two
					different views, one is the
					<b>Private Drive</b>
					and the other the
					<b>Public Drive</b>
					. The Private Drive
					always contains the same files.
					Those files are
					visible only to the
					user currently loggedin. The
					Public Drive is not
					bound to the user,
					but to the conference room
					instead. All users in
					the conference room
					have access to the Public
					Drive.
				</div>
															</td>
			</tr>
	    </tbody>
	</table>
                                                	<h3>Moderating System</h3>
	<table border="0">
		<tbody>
			<tr>
				<td style="text-align: center;" width="300">
																		<p>
							<a class="group1 fancybox-buttons" href="images/right_management.png">
								<img src="images/right_management.png" alt="" width="135"
									 height="216"  />
							</a>
																										</td>
				<td>
																													<div>
					During a conference, the moderator can adjust the user permission
					to every user individually .
					<ul>
						<li>
							<img class="alignnone" title="Allow modaration" src="images/user_add.png" alt="" />
							Allow/Deny moderation
						</li>
						<li>
							<img class="alignnone" title="Whiteboard Access" src="images/pencil_add.png" alt="" />
							Allow/Deny to draw on white board
						</li>
						<li>
							<img class="alignnone" title="Screenshare" src="images/monitor_add.png" alt="" />
							Allow/Deny screen-sharing/record screen
						</li>
						<li>
							<img class="alignnone" title="Remote control" src="images/mouse_add.png" alt="" />
							Allow/Deny Remote Control Screen
						</li>
						<li>
							<img class="alignnone" title="Remote control" src="images/micro_small.png" alt="" />
							Give exclusive audio to others or self
						</li>
						<li>
							<img class="alignnone" title="Video Audio" src="images/audio_and_video.png" alt="" />
							(Re-) Start Audio, Video or Device settings
						</li>
					</ul>
				</div>
															</td>
			</tr>
	    </tbody>
	</table>
                                                	<h3>Multi-Whiteboard and Chat</h3>
	<table border="0">
		<tbody>
			<tr>
				<td style="text-align: center;" width="300">
																		<p>
							<a class="group1 fancybox-buttons" href="images/whiteboard.png">
								<img src="images/whiteboard.png" alt="" width="240"
									 height="165"  />
							</a>
																								<p>
							<a class="group1 fancybox-buttons" href="images/chat.png">
								<img src="images/chat.png" alt="" width="240"
									 height="68"  />
							</a>
																										</td>
				<td>
																																								<div>
					Multi-Whiteboard, you can add new whiteboard instances, each
					white
					board can have the full range of tools and documents inside.
					<br />
					<br />
					Save white boards. You can save each whiteboard instance as a file.
					The file is located in the File-Explorer and can be drag n' drop'ed
					to the white board again and organized like any other document,
					image or folder.
					<br />
					<br />
					White board with drawing, writing, Drag n' Drop, Resizing, Images
					(Drag n'
					Drop from File-Explorer), Symbol(s)/Cliparts .
					<br />
					<br />
					Full-fit does rescale the document on the screen to be 100% visible
					on all
					screens no matter what kind of screen resolution different
					users
					have.
					<br />
					<br />
					You can import from a wide range of document formats (PDF, DOC,
					ODT, PPT, et cetera...)
				</div>
															</td>
			</tr>
	    </tbody>
	</table>
                                                	<h3>User and room management</h3>
	<table border="0">
		<tbody>
			<tr>
				<td style="text-align: center;" width="300">
																		<p>
							<a class="group1 fancybox-buttons" href="images/dashboard.png">
								<img src="images/dashboard.png" alt="" width="250"
									 height="130"  />
							</a>
																										</td>
				<td>
																													<div>
					You can manage users and multiple organizations in a single
					OpenMeetings instance. You can also create users that only have
					access via the SOAP-API.
					<br />
					<br />
					MyRooms section. Each user has by default 2 personal rooms that
					are
					always accessible exclusively for that user. There are buttons
					to
					enter those rooms from the Dashboard.
					<br />
					<br />
					You can assign conference room to all users, or you can assign them
					only to specific user-groups.
				</div>
															</td>
			</tr>
	    </tbody>
	</table>
                                                	<h3>Private message center</h3>
	<table border="0">
		<tbody>
			<tr>
				<td style="text-align: center;" width="300">
																		<p>
							<a class="group1 fancybox-buttons" href="images/privat_messages.png">
								<img src="images/privat_messages.png" alt="" width="230"
									 height="125"  />
							</a>
																										</td>
				<td>
																													<div>
					Send users messages and organize them in folders. You can book
					conference rooms by sending private messages. The booked event
					automatically is in your and the participants calendar, changes to
					that event will be populated to all users booked to the event.
					<br />
					<br />
					User contacts, you can search users and add them to your contacts.
					You
					can even give them the right to see your calendar.
				</div>
															</td>
			</tr>
	    </tbody>
	</table>
                                                	<h3>Plan meetings with integrated calendar</h3>
	<table border="0">
		<tbody>
			<tr>
				<td style="text-align: center;" width="300">
																		<p>
							<a class="group1 fancybox-buttons" href="images/calendar.png">
								<img src="images/calendar.png" alt="" width="200"
									 height="115"  />
							</a>
																										</td>
				<td>
																													<div>
					<ul>
						<li>Plan your conferencing and invite attendees from OpenMeetings
							or External.
						</li>
						<li>The invited attendees will recieve an E-mail with details to
							the meetings and a link with a secure hash to the conference
							room.
						</li>
						<li>Share your calendar with your contacts.</li>
					</ul>
				</div>
															</td>
			</tr>
	    </tbody>
	</table>
                                                	<h3>Polls and Votes</h3>
	<table border="0">
		<tbody>
			<tr>
				<td style="text-align: center;" width="300">
																		<p>
							<a class="group1 fancybox-buttons" href="images/poll.png">
								<img src="images/poll.png" alt="" width="250"
									 height="250"  />
							</a>
																										</td>
				<td>
																													<div>
					You can create a poll with yes/no or 1-10 questions, let the
					user
					vote and see the voting results.
					<br />
					<br />
					Polls can be stored and results viewed as pie-chart
				</div>
															</td>
			</tr>
	    </tbody>
	</table>
                                                	<h3>Backup</h3>
	<table border="0">
		<tbody>
			<tr>
				<td style="text-align: center;" width="300">
																		<p>
							<a class="group1 fancybox-buttons" href="images/backup.png">
								<img src="images/backup.png" alt="" width="250"
									 />
							</a>
																										</td>
				<td>
																													<div>
					You can backup all user-generated data including files
					uploaded by the users in a single ZIP file and import that ZIP into
					a new installation of OpenMeetings again.
				</div>
															</td>
			</tr>
	    </tbody>
	</table>
                            </blockquote>
      </td></tr>
      <tr><td><br/></td></tr>
    </table>
                                        </td>
                </tr>

                <!-- FOOTER -->
                <tr><td colspan="2">
                    <hr noshade="noshade" size="1"/>
                </td></tr>
                <tr><td colspan="2">
                    <div align="center"><font color="#123465" size="-1"><em>
                    Copyright &#169; 2003-2014, The Apache Software Foundation
                    </em></font></div>
                </td></tr>
            </table>
            </div>
            </div>
        </body>
    </html>
<!-- end the processing -->






















