<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright 2006 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. -->
<document>

	<properties>
		<title>Commercial Support</title>
		<author email="sebawagner@apache.org">
			OpenMeetings Team
		</author>
	</properties>

	<body>

		<section name="Commercial Support for OpenMeetings">

			<p>There are a number of companies offering services for OpenMeetings
			</p>
			<ul>
				<li>
					<a href="http://www.openmeetings.de" target="_BLANK" rel="nofollow">openmeetings.de
					</a>
					owned by Sebastian Wagner offers services for OpenMeetings,
					Installation, Integration, Customization, Hosting
				</li>
				<li>
					<a href="http://www.dataved.ru" target="_BLANK" rel="nofollow">dataved.ru
					</a>
					run by (Alexei Fedotov, German, Maxim, Timur, Rodion) offers
					services for OpenMeetingss, Installation, Integration,
					Customization, Hosting
				</li>
				<i>
					<a href="http://www.openmeetings.de" target="_BLANK" rel="nofollow">openmeetings.de
					</a>
					and
					<a href="http://www.dataved.ru" target="_BLANK" rel="nofollow">dataved.ru
					</a>
					have a long term partnership and
					price agreement
				</i>
				<li>
                    <a href="http://www.samoo.es" target="_BLANK" rel="nofollow">samoo.es</a>
                    provides support for the Sakai Plugin.
                </li>
			</ul>

			<p>
				Want to get listed here? Please contact the
				<a href="mail-lists.html">Mailing List</a>
			</p>
		</section>

	</body>

</document>