<?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>Home</title>
		<author email="sebawagner@apache.org">
			Sebastian Wagner
		</author>
	</properties>

	<body>

		<section name="Available WebServices">

			<div>
				<div>
					<a href="UserService.html" target="_BLANK">
						<b>UserService</b>
					</a>
					<br />
					<div style="margin-left:20px">
						<i>The Service contains methods to login and create hash to
							directly enter
							conference rooms, recordings or the application in
							general
						</i>
					</div>
				</div>
				<div>
					<a href="RoomService.html" target="_BLANK">
						<b>RoomService</b>
					</a>
					<br />
					<div style="margin-left:20px">
						<i>RoomService contains methods to manipulate rooms and create
							invitation hash
						</i>
					</div>
				</div>
				<div>
					<a href="FileService.html" target="_BLANK">
						<b>FileService</b>
					</a>
					<br />
					<div style="margin-left:20px">
						<i>Contains methods to import and upload files into the Files
							section of the
							conference room and the personal drive of any user
						</i>
					</div>
				</div>
				<div>
					<a href="CalendarService.html" target="_BLANK">
						<b>CalendarService</b>
					</a>
					<br />
					<div style="margin-left:20px">
						<i>CalendarService contains methods to create, edit delete
							calendar meetings
						</i>
					</div>
				</div>
				<div>
					<a href="JabberService.html" target="_BLANK">
						<b>JabberService</b>
					</a>
					<br />
					<div style="margin-left:20px">
						<i>The Service contains methods necessary for OM to Jabber integration.
						All methods doesn't require admin privileges to get called.
						</i>
					</div>
				</div>
			</div>

		</section>


	</body>
</document>