<?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>

	<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>
