<?xml version="1.0" encoding="UTF-8"?>
<!--
   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 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

	<properties>
		<title>Home</title>
		<author email="sebawagner@apache.org">
			OpenMeetings Team
		</author>
	</properties>

	<body>
		<section name="Cameras">
			We recommend the following cameras:
			<ul>
				<li>Logitech QuickCam Sphere AF</li>
				<li>Logitech QuickCam E3500</li>
				<li>Samsung Pleomax PWC-7100</li>
				<li>Genius Look320S</li>
				<li>Integrated Lenovo 3000 n100</li>
				<li>Skypemate WC-103M</li>
			</ul>
		</section>
		<section name="Headsets">
			The recommended headset model (i.e. headphones with microphone) is:
			<ul>
				<li>Logitech Clear Chat Style</li>
			</ul>
			Also the following headsets showed good results:
			<ul>
				<li>ClearChat PC Wireless (helps to suppress echo)</li>
				<li>Logitech USB Desktop Microphone - Mikrophon (good sound, but bad echo cancellation)</li>
			</ul>
			<b>Note for Mac OS X users:</b> The build-in microphone normally has quite good quality and echo cancellation, so Mac OS X users often do not even require a headset.
		</section>
		<section name="Speakerphones">
			When several people participate from the same location, we recommend using the following speakerphone models:
			<ul>
				<li>Phoenix Audio Quattro2 USB Speakerphone MT301 (a single microphone + speakers can be used even with 20-30 people sitting in a room)</li>
				<li>Phoenix DUET Executive</li>
				<li>Jabra SPEAK410</li>
				<li>Plantronics MCD 100M</li>
				<li>Integrated Lenovo 3000 n100</li>
				<li>Konftel 300</li>
			</ul>
		</section>
	</body>
</document>
