blob: 1eb3c854563dfcf63510c77ff7caeb0c3fb5e294 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.7.1 at 2016-09-23
| Rendered using Apache Maven Fluido Skin 1.5
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="author" content="Apache OpenMeetings Team" />
<meta name="Date-Revision-yyyymmdd" content="20160923" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache OpenMeetings Project &#x2013; SIP-Transport Integration</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script type="text/javascript" src="./js/apache-maven-fluido-1.5.min.js"></script>
<script type="text/javascript" src="http://openmeetings.apache.org/js/site.js"></script>
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<div id="banner">
<div class="pull-left">
<a href="index.html" id="bannerLeft">
<img src="images/logo.png" alt="Apache OpenMeetings"/>
</a>
</div>
<div class="pull-right"> <a href="http://apache.org" id="bannerRight">
<img src="http://apache.org/img/asf_logo.png" alt="Apache"/>
</a>
</div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2016-09-23
</li>
<li class="pull-right">
<span class="divider">|</span>
<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" class="externalLink" title="Wiki">
Wiki</a>
</li>
<li class="pull-right">
<span class="divider">|</span>
<a href="installation.html" title="Installation">
Installation</a>
</li>
<li class="pull-right">
<span class="divider">|</span>
<a href="downloads.html" title="Download">
Download</a>
</li>
<li class="pull-right">
<a href="demo.html" title="Demo">
Demo</a>
</li>
</ul>
</div>
<div class="row-fluid">
<div id="leftColumn" class="span2">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li>
<a href="#general" title="General">
<span class="icon-chevron-down"></span>
General</a>
<ul class="nav nav-list">
<li>
<a href="index.html" title="Home">
<span class="none"></span>
Home</a>
</li>
<li>
<a href="demo.html" title="Demo">
<span class="none"></span>
Demo</a>
</li>
<li>
<a href="license.html" title="License">
<span class="none"></span>
License</a>
</li>
<li>
<a href="http://www.apache.org/" class="externalLink" title="ASF">
<span class="none"></span>
ASF</a>
</li>
<li>
<a href="downloads.html" title="Downloads">
<span class="none"></span>
Downloads</a>
</li>
<li>
<a href="CallForLogo.html" title="Call For Logo">
<span class="none"></span>
Call For Logo</a>
</li>
<li>
<a href="NewsArchive.html" title="News archive">
<span class="none"></span>
News archive</a>
</li>
<li>
<a href="security.html" title="Security">
<span class="none"></span>
Security</a>
</li>
<li>
<a href="commercial-support.html" title="Commercial Support">
<span class="none"></span>
Commercial Support</a>
</li>
</ul>
</li>
<li>
<a href="#installation" title="Installation and Upgrade">
<span class="icon-chevron-down"></span>
Installation and Upgrade</a>
<ul class="nav nav-list">
<li>
<a href="installation.html" title="Installation">
<span class="none"></span>
Installation</a>
</li>
<li>
<a href="Upgrade.html" title="Upgrade">
<span class="none"></span>
Upgrade</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" class="externalLink" title="Tutorials">
<span class="none"></span>
Tutorials</a>
</li>
<li>
<a href="CommandLineAdmin.html" title="Command Line Admin">
<span class="none"></span>
Command Line Admin</a>
</li>
</ul>
</li>
<li>
<a href="#community" title="Community">
<span class="icon-chevron-down"></span>
Community</a>
<ul class="nav nav-list">
<li>
<a href="get-involved.html" title="Get Involved">
<span class="none"></span>
Get Involved</a>
</li>
<li>
<a href="team-list.html" title="Committers">
<span class="none"></span>
Committers</a>
</li>
<li>
<a href="mail-lists.html" title="Mailing Lists">
<span class="none"></span>
Mailing Lists</a>
</li>
<li>
<a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" class="externalLink" title="Wiki">
<span class="none"></span>
Wiki</a>
</li>
</ul>
</li>
<li>
<a href="#dev" title="Development">
<span class="icon-chevron-down"></span>
Development</a>
<ul class="nav nav-list">
<li>
<a href="source-repository.html" title="Source Code">
<span class="none"></span>
Source Code</a>
</li>
<li>
<a href="issue-tracking.html" title="Bugs / Issues">
<span class="none"></span>
Bugs / Issues</a>
</li>
<li>
<a href="dependencies.html" title="Dependencies">
<span class="none"></span>
Dependencies</a>
</li>
<li>
<a href="integration.html" title="Continuous Integration">
<span class="none"></span>
Continuous Integration</a>
</li>
<li>
<a href="BuildInstructions_3.0.x.html" title="Build Instructions 3.0.x">
<span class="none"></span>
Build Instructions 3.0.x</a>
</li>
<li>
<a href="BuildInstructions.html" title="Build Instructions">
<span class="none"></span>
Build Instructions</a>
</li>
<li>
<a href="JUnitTesting.html" title="JUnit Testing">
<span class="none"></span>
JUnit Testing</a>
</li>
<li>
<a href="ManualTesting.html" title="Manual Testing">
<span class="none"></span>
Manual Testing</a>
</li>
<li>
<a href="ReleaseGuide.html" title="Release Guide">
<span class="none"></span>
Release Guide</a>
</li>
<li>
<a href="WebsiteGuide.html" title="Website Guide">
<span class="none"></span>
Website Guide</a>
</li>
</ul>
</li>
<li>
<a href="#integration" title="Integration">
<span class="icon-chevron-down"></span>
Integration</a>
<ul class="nav nav-list">
<li>
<a href="openmeetings-webservice/apidocs/index.html" target="_blank" title="SOAP/REST API">
<span class="none"></span>
SOAP/REST API</a>
</li>
<li>
<a href="RestAPISample.html" title="REST API Sample">
<span class="none"></span>
REST API Sample</a>
</li>
<li>
<a href="LdapAndADS.html" title="Ldap and ADS">
<span class="none"></span>
Ldap and ADS</a>
</li>
<li>
<a href="oauth2.html" title="OAuth2">
<span class="none"></span>
OAuth2</a>
</li>
<li>
<a href="voip-sip-integration.html" title="VoIP and SIP">
<span class="none"></span>
VoIP and SIP</a>
</li>
<li>
<a href="errorvalues.html" title="Errors table">
<span class="none"></span>
Errors table</a>
</li>
</ul>
</li>
<li>
<a href="#plugins" title="Plugins">
<span class="icon-chevron-down"></span>
Plugins</a>
<ul class="nav nav-list">
<li>
<a href="MoodlePlugin.html" title="Moodle Plugin">
<span class="none"></span>
Moodle Plugin</a>
</li>
<li>
<a href="SakaiPlugin.html" title="Sakai Plugin">
<span class="none"></span>
Sakai Plugin</a>
</li>
<li>
<a href="JiraPlugin.html" title="Jira Plugin">
<span class="none"></span>
Jira Plugin</a>
</li>
<li>
<a href="JoomlaPlugin.html" title="Joomla Plugin">
<span class="none"></span>
Joomla Plugin</a>
</li>
<li>
<a href="DrupalPlugin.html" title="Drupal Plugin">
<span class="none"></span>
Drupal Plugin</a>
</li>
<li>
<a href="BitrixPlugin.html" title="Bitrix Plugin">
<span class="none"></span>
Bitrix Plugin</a>
</li>
<li>
<a href="ConfluencePlugin.html" title="Confluence Plugin">
<span class="none"></span>
Confluence Plugin</a>
</li>
<li>
<a href="SugarCRMPlugin.html" title="SugarCRM Plugin">
<span class="none"></span>
SugarCRM Plugin</a>
</li>
<li>
<a href="RedminePlugin.html" title="Redmine Plugin">
<span class="none"></span>
Redmine Plugin</a>
</li>
</ul>
</li>
<li>
<a href="#config" title="Configuration">
<span class="icon-chevron-down"></span>
Configuration</a>
<ul class="nav nav-list">
<li>
<a href="#db" title="DB Sample Configurations">
<span class="icon-chevron-down"></span>
DB Sample Configurations</a>
<ul class="nav nav-list">
<li>
<a href="ApacheDerbyConfig.html" title="Apache Derby">
<span class="none"></span>
Apache Derby</a>
</li>
<li>
<a href="IBMDB2Config.html" title="IBM DB2">
<span class="none"></span>
IBM DB2</a>
</li>
<li>
<a href="OracleConfig.html" title="Oracle">
<span class="none"></span>
Oracle</a>
</li>
<li>
<a href="MySQLConfig.html" title="MySQL">
<span class="none"></span>
MySQL</a>
</li>
<li>
<a href="PostgresConfig.html" title="Postgres">
<span class="none"></span>
Postgres</a>
</li>
<li>
<a href="MSSQLConfig.html" title="MSSQL">
<span class="none"></span>
MSSQL</a>
</li>
</ul>
</li>
<li>
<a href="#localization" title="Localization and languages">
<span class="icon-chevron-down"></span>
Localization and languages</a>
<ul class="nav nav-list">
<li>
<a href="Internationalisation.html" title="Internationalisation">
<span class="none"></span>
Internationalisation</a>
</li>
<li>
<a href="LanguageEditor.html" title="LanguageEditor">
<span class="none"></span>
LanguageEditor</a>
</li>
<li>
<a href="TimeZoneHandling.html" title="TimeZoneHandling">
<span class="none"></span>
TimeZoneHandling</a>
</li>
<li>
<a href="EditTemplates.html" title="EditTemplates">
<span class="none"></span>
EditTemplates</a>
</li>
</ul>
</li>
<li>
<a href="#port" title="NAT Port Settings">
<span class="icon-chevron-down"></span>
NAT Port Settings</a>
<ul class="nav nav-list">
<li>
<a href="PortSettings.html" title="Port settings">
<span class="none"></span>
Port settings</a>
</li>
</ul>
</li>
<li>
<a href="#performance" title="Performance">
<span class="icon-chevron-down"></span>
Performance</a>
<ul class="nav nav-list">
<li>
<a href="JVMPerformanceTuning.html" title="JVM performance tuning">
<span class="none"></span>
JVM performance tuning</a>
</li>
<li>
<a href="NetworkCalculator.html" title="Network bandwidth calculator">
<span class="none"></span>
Network bandwidth calculator</a>
</li>
</ul>
</li>
<li>
<a href="#interface" title="User Interface">
<span class="icon-chevron-down"></span>
User Interface</a>
<ul class="nav nav-list">
<li>
<a href="themes-and-branding.html" title="Themes">
<span class="none"></span>
Themes</a>
</li>
<li>
<a href="Dashboard.html" title="Dashboard">
<span class="none"></span>
Dashboard</a>
</li>
<li>
<a href="WebcamResolutions.html" title="Webcam resolutions">
<span class="none"></span>
Webcam resolutions</a>
</li>
<li>
<a href="ConferenceRoomLayoutOptions.html" title="Room layout options">
<span class="none"></span>
Room layout options</a>
</li>
<li>
<a href="HotKeys.html" title="Hot Keys">
<span class="none"></span>
Hot Keys</a>
</li>
</ul>
</li>
<li>
<a href="#customize" title="Customization">
<span class="icon-chevron-down"></span>
Customization</a>
<ul class="nav nav-list">
<li>
<a href="WebappNamePath.html" title="Webapp name/path">
<span class="none"></span>
Webapp name/path</a>
</li>
<li>
<a href="Navigation.html" title="Navigation">
<span class="none"></span>
Navigation</a>
</li>
<li>
<a href="CalendarAndTimezone.html" title="Calendar and timezone">
<span class="none"></span>
Calendar and timezone</a>
</li>
<li>
<a href="CustomRoomTypeHowTo.html" title="Custom room type">
<span class="none"></span>
Custom room type</a>
</li>
<li>
<a href="CustomCryptMechanism.html" title="Custom crypt mechanism">
<span class="none"></span>
Custom crypt mechanism</a>
</li>
<li>
<a href="GeneralConfiguration.html" title="General Configuration">
<span class="none"></span>
General Configuration</a>
</li>
</ul>
</li>
<li>
<a href="#security" title="Security">
<span class="icon-chevron-down"></span>
Security</a>
<ul class="nav nav-list">
<li>
<a href="RestrictedAccess.html" title="Restricted Access">
<span class="none"></span>
Restricted Access</a>
</li>
<li>
<a href="RTMPSAndHTTPS.html" title="RTMPS and HTTPS">
<span class="none"></span>
RTMPS and HTTPS</a>
</li>
</ul>
</li>
<li>
<a href="#convert" title="Converters">
<span class="icon-chevron-down"></span>
Converters</a>
<ul class="nav nav-list">
<li>
<a href="OpenOfficeConverter.html" title="OpenOffice Converter">
<span class="none"></span>
OpenOffice Converter</a>
</li>
<li>
<a href="FFMPEGVersionSwitch.html" title="FFMPEG Version Switch">
<span class="none"></span>
FFMPEG Version Switch</a>
</li>
</ul>
</li>
<li>
<a href="#cluster" title="Clustering">
<span class="icon-chevron-down"></span>
Clustering</a>
<ul class="nav nav-list">
<li>
<a href="Clustering.html" title="Clustering">
<span class="none"></span>
Clustering</a>
</li>
</ul>
</li>
<li>
<a href="#misc" title="Misc">
<span class="icon-chevron-down"></span>
Misc</a>
<ul class="nav nav-list">
<li>
<a href="GetVersionInfo.html" title="Get version info">
<span class="none"></span>
Get version info</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<hr />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
<img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
</a>
</div>
</div>
</div>
<div id="bodyColumn" class="span10" >
<div class="section">
<h2><a name="SIP-Transport_Integration"></a>SIP-Transport Integration</h2>
<p>You need Apache OpenMeetings <b>version 3.0+</b> to apply this guide!</p>
<p>You need Asterisk <b>version 13+</b> to apply this guide!</p>
<p>Here is instruction how-to set up red5sip transport integration with OpenMeetings on Ubuntu 12.10.</p>
</div>
<div class="section">
<h2><a name="Prerequisites"></a>Prerequisites</h2>
<div>
Run the commands
<div class="source"><pre class="prettyprint">
sudo apt-get update &amp;&amp; sudo apt-get upgrade
</pre></div>
</div>
</div>
<div class="section">
<h2><a name="Building_and_setting_up_Asterisk"></a>Building and setting up Asterisk</h2>
<div>
Run the commands
<div class="source"><pre class="prettyprint">
sudo mkdir /usr/src/asterisk &amp;amp;&amp;amp; cd /usr/src/asterisk
sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-13.9.0.tar.gz
sudo tar -xvzf asterisk-13.9.0.tar.gz
cd ./asterisk-13.9.0
sudo make clean
sudo contrib/scripts/install_prereq install
sudo ./configure
sudo make menuconfig
</pre></div>
Make sure you have selected <tt>Add-ons -&gt; res_config_mysql</tt>, Press F12 to save
<div class="source"><pre class="prettyprint">
sudo make
sudo make install
sudo make samples
sudo make config
sudo service asterisk start
</pre></div>
</div>
</div>
<div class="section">
<h2><a name="Configure_Asterisk"></a>Configure Asterisk</h2>
<div>
Enable asterisk MySQL module:<br /><br />
Modify &quot;[modules]&quot; section of <tt>/etc/asterisk/modules.conf</tt> as follows:<br />
<b>Add/uncomment the following lines</b>
<div class="source"><pre class="prettyprint">
preload =&gt; res_config_mysql.so
</pre></div>
</div><br />
<div>
Configure MySQL module:<br /><br />
Set valid data for MySQL in <tt>/etc/asterisk/res_config_mysql.conf</tt> :<br />
<b>Example</b>
<div class="source"><pre class="prettyprint">
[general]
dbhost = 127.0.0.1
dbname = openmeetings
dbuser = root
dbpass =
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock
dbcharset = utf8
requirements=warn
</pre></div>
</div><br />
<div>
Modify <tt>/etc/asterisk/sip.conf</tt><br />
<b>Add/uncomment the following line</b>:<br />
<div class="source"><pre class="prettyprint">
videosupport=yes
rtcachefriends=yes
</pre></div>
<b>Increase maxexpiry value to 43200</b>:<br />
<div class="source"><pre class="prettyprint">
maxexpiry=43200
</pre></div>
<b>Add user for the &quot;SIP Transport&quot;</b>:<br />
<div class="source"><pre class="prettyprint">
[red5sip_user]
type=friend
secret=12345
disallow=all
allow=ulaw
allow=h263
host=dynamic
nat=force_rport,comedia
context=rooms-red5sip
</pre></div>
</div><br />
<div>
Add next lines into the <tt>/etc/asterisk/extconfig.conf</tt>:
<div class="source"><pre class="prettyprint">
[settings]
sippeers =&gt; mysql,general,sipusers
</pre></div>
</div><br />
<div>
Modify <tt>/etc/asterisk/extensions.conf</tt><br />
<b>Add the following section</b>:<br />
<div class="source"><pre class="prettyprint">
; *****************************************************
; The below dial plan is used to dial into a Openmeetings Conference room
; The first line DB_EXISTS(openmeetings/room/ does not belong to the openmeetings application but is the name of astDB containing the astDB family/key pair and values
; To Check if your astDB has been created do the following in a terminal window type the following:
; asterisk &#x2013;rx &#x201c;database show&#x201d;
; If you do not receive an output with that resembles openmeetings/rooms/400## where &#x201c;##&#x201d; will equal the extension assigned when you created your room
; If you do not receive the above output check your parameters in /opt/red5/webapps/openmeetings/WEB-INF/classes/openmeetings-applicationContext.xml
; Go back into the Administrator Panel and remove the PIN number in each room save the record with no PIN number and then re-enter the pin again resave the record.
; *****************************************************
[rooms]
exten =&gt; _400X!,1,GotoIf($[${DB_EXISTS(openmeetings/rooms/${EXTEN})}]?ok:notavail)
exten =&gt; _400X!,n(ok),SET(PIN=${DB(openmeetings/rooms/${EXTEN})})
exten =&gt; _400X!,n,Set(CONFBRIDGE(user,template)=sip_user)
exten =&gt; _400X!,n,Set(CONFBRIDGE(user,pin)=${PIN})
exten =&gt; _400X!,n(ok),Confbridge(${EXTEN},default_bridge,)
exten =&gt; _400X!,n,Hangup
exten =&gt; _400X!,n(notavail),Answer()
exten =&gt; _400X!,n,Playback(invalid)
exten =&gt; _400X!,n,Hangup
[rooms-originate]
exten =&gt; _400X!,1,Confbridge(${EXTEN},default_bridge,sip_user)
exten =&gt; _400X!,n,Hangup
[rooms-out]
; *****************************************************
; Extensions for outgoing calls from Openmeetings room.
; *****************************************************
[rooms-red5sip]
exten =&gt; _400X!,1,GotoIf($[${DB_EXISTS(openmeetings/rooms/${EXTEN})}]?ok:notavail)
exten =&gt; _400X!,n(ok),Confbridge(${EXTEN},default_bridge,red5sip_user)
exten =&gt; _400X!,n(notavail),Hangup
</pre></div>
</div><br />
<div>
Modify <tt>/etc/asterisk/confbridge.conf</tt><br />
<b>Add/Modify the following secions</b>:<br />
<div class="source"><pre class="prettyprint">
[general]
[red5sip_user]
type=user
marked=yes
dsp_drop_silence=yes
denoise=true
[sip_user]
type=user
end_marked=yes
wait_marked=yes
music_on_hold_when_empty=yes
dsp_drop_silence=yes
denoise=true
[default_bridge]
type=bridge
video_mode=follow_talker
</pre></div>
</div><br />
<div>
To enable Asterisk Manager API modify <tt>/etc/asterisk/manager.conf</tt><br />
<b>Add/Modify the following sections</b>:<br />
<div class="source"><pre class="prettyprint">
[general]
enabled = yes
webenabled = no
port = 5038
bindaddr = 127.0.0.1
[openmeetings]
secret = 12345
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read = all
write = all
</pre></div>
</div><br />
<div>
Update Openmeetings with creadentials for Asterisk manager.
Modify <tt>/opt/red5/webapps/openmeetings/WEB-INF/classes/openmeetings-applicationContext.xml</tt><br />
find <b>&lt;bean id=&quot;sipDao&quot; class=&quot;org.apache.openmeetings.db.dao.room.SipDao&quot;&gt;</b>
uncomment its parameters and set it to your custom values.
<p style="font-size: larger; color: blue;">
IMPORTANT: this step should be done <b>BEFORE</b> system install/restore
otherwise all SIP related room information will be lost
</p>
</div><br />
<div>
Restart asterisk:
<div class="source"><pre class="prettyprint">
service asterisk restart
</pre></div>
</div><br />
</div>
<div class="section">
<h2><a name="Setup_red5sip_transport"></a>Setup red5sip transport</h2>
<div>
Download red5sip from <tt>https://github.com/openmeetings/red5sip</tt>
</div>
<div>
<div class="source"><pre class="prettyprint">
git clone https://github.com/openmeetings/red5sip.git
</pre></div>
</div>
<div>
Build with Apache Maven
<div class="source"><pre class="prettyprint">
mvn clean package
</pre></div>
All necessary files will be available in <tt>target</tt> folder, copy/move it to /opt/red5sip/
</div>
<div>
Insert proper values to the <tt>/opt/red5sip/settings.properties</tt>
<div class="source"><pre class="prettyprint">
red5.host=127.0.0.1 # red5 server address
om.context=openmeetings # Openmeetings context
red5.codec=asao
red5.codec.rate=22 # should correlate with mic settings in public/config.xml
sip.obproxy=127.0.0.1 # asterisk adderss
sip.phone=red5sip_user # sip phone number
sip.authid=red5sip_user # sip auth id
sip.secret=12345 # sip password
sip.realm=asterisk # sip realm
sip.proxy=127.0.0.1 # address of sip proxy
rooms.forceStart=no # TBD
rooms=1 # TBD (not in use)
</pre></div>
</div>
<div>
Add red5sip to autostart:
<div class="source"><pre class="prettyprint">
sudo cp /opt/red5sip/red5sip /etc/init.d/
sudo chmod a+x /etc/init.d/red5sip
sudo update-rc.d red5sip defaults
</pre></div>
</div>
<div>
Start openmeetings
<div class="source"><pre class="prettyprint">
service red5 start
</pre></div>
</div>
<div>
Start red5sip
<div class="source"><pre class="prettyprint">
service red5sip start
</pre></div>
</div>
</div>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p >Copyright &copy; 2012&#x2013;2016
<a href="http://apache.org">Apache Software Foundation</a>.
All rights reserved.
</p>
</div>
</div>
</footer>
</body>
</html>