## OpenMeetings
## author swagner
## 11.05.2007
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.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.
-->
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
</head>
<body>
<H1>$APP_NAME - Installation Complete!</h1>
<h2><a href="/$APP_ROOT/">Enter the Application</a></h2>
<br/>
<br/>
If your Red5-Server runs on a different Port or on a different domain<br/>
<a href="config.xml">alter the config values of the client</a>
<br/><br/><br/>

<b> <span style="font-size:1.4em">Mailing list</span></b><br/><br/>

<span style="font-size:1.3em"><a href="http://openmeetings.apache.org/mail-lists.html" target="_blank">http://openmeetings.apache.org/mail-lists.html</a></span><br/><br/>


<b> <span style="font-size:1.4em">There are some companies that also offer commercial support for Apache OpenMeetings:</span></b><br/><br/>

<span style="font-size:1.3em"><a href="http://openmeetings.apache.org/commercial-support.html" target="_blank">http://openmeetings.apache.org/commercial-support.html</a></span><br/>


</body>
</html>
