<?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>VoIP and SIP Integration</title>
		<author email="sebawagner@apache.org">
			OpenMeetings Team
		</author>
	</properties>

	<body>

		<section name="VoIP and SIP Integration">

			<p>
				There are multiple ways to integrate with VoIP and or SIP.
				OpenMeetings does not provide out of the box a ready to run VoIP
				integration / integration to cell phone or usual land lane.
				The
				nature of such integrations is that it depends heavily on the
				infrastructure that you are using and where you would like to
				integrate OpenMeetings into.
				<br />
				<br />
				It also depends on a number of factors of which OpenMeetings is
				impossible to set up for you, for example setting up your VoIP
				server or provide you with a range of telephone numbers reserved for
				conference calls in your national phone network.
				Such an integration
				project is likely to become a consulting job for a
				telecommunications consultant.
				<br />
				<br />
				To get help on the integration you can contact the
				<a href="mail-lists.html">mailing lists</a>
				or for example somebody from the list of
				<a href="commercial-support.html">commercial support</a>
				.
                <br/><br/>
                <a href="red5sip-integration_2.0.html">
                Instruction how-to set up OpenMeetings SIP-Transport integration for Openmeetings 2.0
                </a>.<br/>
                <a href="red5sip-integration_2.1.html">
                Instruction how-to set up OpenMeetings SIP-Transport integration for Openmeetings 2.1
                </a>.<br/>
                <a href="red5sip-integration_3.0.html">
                Instruction how-to set up OpenMeetings SIP-Transport integration for Openmeetings 3.0
                </a>.<br/>
			</p>
		</section>

	</body>

</document>