<?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>Bitrix Plugin</title>
		<author email="solomax@apache.org">
			OpenMeetings Team
		</author>
	</properties>
	<body>
		<section name="OpenMeetings Plugin for Bitrix">
			<p>
				Current Development Snapshots for testing can be created from the sources:
				<a href="https://svn.codespot.com/a/apache-extras.org/openmeetings-bitrix-plugin/trunk">here</a>
				.
			</p>			
		</section>
		<section name="Features">
			<p>The plugin contains the following features: </p>
			<ul>
				<li>Enter videoconference rooms from Bitrix (http://www.1c-bitrix.ru/): </li>
			</ul>
		</section>
		<section name="Configuration">			
			<div>
				<b>OpenMeetings Bitrix Plugin Installation</b><br/>
				<ol>
					<li>Build plugin from sources</li>
					<li>Unpack it into bitrix/modules</li>
					<li>Install via Admin</li>
					<li>Add OPenmeetings component to any page.</li>
				</ol>              
			</div>
		</section>
	</body>

</document>