<?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>Sakai Plugin</title>
		<author email="sebawagner@apache.org">
			OpenMeetings Team
		</author>
	</properties>

	<body>

		<section name="Introduction">
			<p>
				In 2010,
				<a rel="nofollow" href="http://www.samoo.es" target="_blank">Samoo company
				</a>
				has developed a plugin that integrates Sakai LMS and OpenMeetings
				.
			</p>
			<p>
				The plugin was developed for some Spanish Universities that use
				Sakai and belongs to
				<a rel="nofollow" target="_blank" 
					href="https://confluence.sakaiproject.org/display/SPANISH/S2G+-+Spanish+Sakai+Group">"Spanish Sakai Universities"</a>
				group:
			</p>
			<ul>
				<li>
					<a rel="nofollow" href="http://www.udl.es/" target="_blank">Universitat de Lleida </a>
				</li>
				<li>
					<a rel="nofollow" href="http://www.upv.es/" target="_blank">Universidad Polit&#233;cnica de Valencia </a>
				</li>
				<li>
					<a rel="nofollow" href="http://www.um.es/" target="_blank">Universidad de Murcia</a>
				</li>
				<li>
					<a rel="nofollow" href="http://www.unavarra.es/" target="_blank">Universidad P&#250;blica de Navarra</a>
				</li>
				<li>
					<a rel="nofollow" href="http://www.ucam.edu/" target="_blank">Universidad Cat&#243;lica San Antonio de Murcia
					</a>
				</li>
			</ul>
		</section>

		<section name="Features">
			<p>The plugin contains the following features: </p>
			<ul>
				<li>Create videoconference rooms through Sakai: </li>
				<ol>
					<li>Integrated with calendar </li>
					<li>Integrated with announcements </li>
					<li>Sends an email to all site participants </li>
					<li>Rooms restricted to site groups </li>
					<li>Configurable room type </li>
				</ol>
			</ul>
			<p />
			<ul>
				<li>Future requirements </li>
				<ol>
					<li>Publish room recordings to students </li>
					<li>Room reservation </li>
				</ol>
			</ul>
		</section>

		<section name="Source">
			<p>
				You can download and build the source code
				<a rel="nofollow" target="_blank" 
					href="https://source.sakaiproject.org/contrib/samoo/adobeconnectpro-openmeetings-integration/trunk/">here</a>
			</p>
		</section>

		<section name="Installation and documentation">
			<p>
				The documentation resides in the
				<a rel="nofollow" target="_blank" href="https://confluence.sakaiproject.org/display/OPENMTG/Home">Sakai confluence space</a>
			</p>
			<p>
				Please contact the mailing list for further information. For
				commercial support you can also contact
				<a rel="nofollow" href="http://www.samoo.es" target="_blank">Samoo company</a>
				or other companies from the list of
				<a href="commercial-support.html">commercial support</a>
				.
			</p>
		</section>

	</body>

</document>