<?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="http://maven.apache.org/XDOC/2.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
	<properties>
		<title>Hardware</title>
		<author email="dev@openmeetings.apache.org">Apache 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>
