This is an automated email from the ASF dual-hosted git repository. solomax pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push: new d83df26 [OPENMEETINGS-2239] initial steps are documented d83df26 is described below commit d83df260226cf2c98abefb0ace8878a7199c9a7d Author: Maxim Solodovnik <solomax...@gmail.com> AuthorDate: Sat Oct 3 21:32:43 2020 +0700 [OPENMEETINGS-2239] initial steps are documented --- .../src/site/markdown/AsteriskIntegration.md | 259 +++++++++++++++++++++ .../src/site/markdown/ExternalVideo.md | 3 +- openmeetings-server/src/site/markdown/HTTPS.md | 3 +- .../src/site/markdown/InstallMediaServer.md | 3 +- .../src/site/markdown/LdapAndADS.md | 3 +- .../src/site/markdown/PortSettings.md | 3 +- .../src/site/markdown/RestrictedAccess.md | 3 +- 7 files changed, 271 insertions(+), 6 deletions(-) diff --git a/openmeetings-server/src/site/markdown/AsteriskIntegration.md b/openmeetings-server/src/site/markdown/AsteriskIntegration.md new file mode 100644 index 0000000..44107ce --- /dev/null +++ b/openmeetings-server/src/site/markdown/AsteriskIntegration.md @@ -0,0 +1,259 @@ +<!-- +Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 +--> + +# Not implemented + +<div class="bd-callout bd-callout-danger"> + Please NOTE: this functionality is not yet implemented in 5.0.x +</div> + +# VoIP and SIP Integration + +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. + + +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. + + +To get help on the integration you can contact the +<a href="mailing-lists.html">mailing lists</a> +or for example somebody from the list of +<a href="commercial-support.html">commercial support</a>. + +# Asterisk Integration + +You need Apache OpenMeetings <strong>version 5.1+</strong> to apply this guide! + +You need Asterisk <strong>version 16+</strong> to apply this guide! + +Here is the instruction how-to set up integration between OpenMeetings and Asterisk on Ubuntu 18.04. + +## Prerequisites + +``` +sudo apt update && sudo apt upgrade +``` + +## Building and setting up Asterisk + +``` +sudo apt install build-essential + +sudo mkdir /usr/src/asterisk && cd /usr/src/asterisk +sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-16.13.0.tar.gz +sudo tar -xvzf asterisk-16.13.0.tar.gz +cd ./asterisk-16.13.0 +sudo make clean +sudo contrib/scripts/install_prereq install +sudo ./configure +sudo make menuconfig +``` + +Make sure you have selected (<a href="https://wiki.asterisk.org/wiki/display/AST/Configuring+Asterisk+for+WebRTC+Clients">Asterisk WebRTC Config</a>) + +* Add-ons -> res_config_mysql +* Codec Translators -> codec_opus +* Resource Modules -> res_crypto +* Resource Modules -> res_http_websocket +* Resource Modules -> res_pjsip_transport_websocket + +Press F12 to save + +``` +sudo make +sudo make install +sudo make samples +sudo make config + +``` + +## Configure Asterisk + +### Enable asterisk MySQL module: + +Modify `[modules]` section of `/etc/asterisk/modules.conf` +**Add/uncomment the following lines** + +``` +preload => res_config_mysql.so +``` + +### Configure MySQL module: + +Set valid data for MySQL in `/etc/asterisk/res_config_mysql.conf`: + +**Example** + +``` +[general] +dbhost = 127.0.0.1 +dbname = openmeetings +dbuser = root +dbpass = +dbport = 3306 +dbsock = /var/lib/mysql/mysql.sock +dbcharset = utf8 +requirements=warn +``` + +### Configure SIP module: + +Modify `/etc/asterisk/sip.conf` + +**Add/uncomment the following lines** + +``` +videosupport=yes +rtcachefriends=yes +``` + +**Increase maxexpiry value to 43200** + +``` +maxexpiry=43200 +``` + +** FIXME TODO Add user for the "SIP Transport"** + +``` +; FIXME TODO commented for now +; [red5sip_user] +; type=friend +; secret=12345 +; disallow=all +; allow=ulaw +; allow=h263 +; host=dynamic +; nat=force_rport,comedia +; context=rooms-red5sip +``` + +### Configure extensions: + +Add next lines into the `/etc/asterisk/extconfig.conf`: + +``` +[settings] +sippeers => mysql,general,sipusers +``` + +Modify `/etc/asterisk/extensions.conf` +**Add the following section:** + +``` +; ***************************************************** +; 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 –rx “database show” +; If you do not receive an output with that resembles openmeetings/rooms/400## where “##” will equal +; the extension assigned when you created your room +; If you do not receive the above output check your parameters in +; /opt/om/webapps/openmeetings/WEB-INF/classes/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 => _400X!,1,GotoIf($[${DB_EXISTS(openmeetings/rooms/${EXTEN})}]?ok:notavail) +exten => _400X!,n(ok),SET(PIN=${DB(openmeetings/rooms/${EXTEN})}) +exten => _400X!,n,Set(CONFBRIDGE(user,template)=sip_user) +exten => _400X!,n,Set(CONFBRIDGE(user,pin)=${PIN}) +exten => _400X!,n(ok),Confbridge(${EXTEN},default_bridge,) +exten => _400X!,n,Hangup +exten => _400X!,n(notavail),Answer() +exten => _400X!,n,Playback(invalid) +exten => _400X!,n,Hangup + +[rooms-originate] +exten => _400X!,1,Confbridge(${EXTEN},default_bridge,sip_user) +exten => _400X!,n,Hangup + +[rooms-out] +; ***************************************************** +; Extensions for outgoing calls from Openmeetings room. +; ***************************************************** + +; FIXME TODO commented for now +;[rooms-red5sip] +;exten => _400X!,1,GotoIf($[${DB_EXISTS(openmeetings/rooms/${EXTEN})}]?ok:notavail) +;exten => _400X!,n(ok),Confbridge(${EXTEN},default_bridge,red5sip_user) +;exten => _400X!,n(notavail),Hangup +``` + +### Configure Confbridge + +Modify `/etc/asterisk/confbridge.conf` + +**Add/Modify the following sections:** + +``` +[general] + +; FIXME TODO commented for now +;[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 +``` + +### Configure Asterisk Manager + +To enable Asterisk Manager API modify `/etc/asterisk/manager.conf` + +**Add/Modify the following sections:** + +``` +[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 +``` + +Update OpenMeetings with credentials for Asterisk manager. +Modify `/opt/om/webapps/openmeetings/WEB-INF/classes/applicationContext.xml` + +find **<bean id="sipDao" class="org.apache.openmeetings.db.dao.room.SipDao">** +uncomment its parameters and set it to your custom values. + +set value for `uid` property to unique secret value (can be generated here <a href="https://www.uuidtools.com">https://www.uuidtools.com</a>) + +<p style="font-size: larger; color: blue;"> + IMPORTANT: this step should be done <strong>BEFORE</strong> system install/restore + otherwise all SIP related room information will be lost +</p> + diff --git a/openmeetings-server/src/site/markdown/ExternalVideo.md b/openmeetings-server/src/site/markdown/ExternalVideo.md index 7551d7c..e7a04c0 100644 --- a/openmeetings-server/src/site/markdown/ExternalVideo.md +++ b/openmeetings-server/src/site/markdown/ExternalVideo.md @@ -1,5 +1,6 @@ <!-- -# Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 --> +Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 +--> # External Video/Camera diff --git a/openmeetings-server/src/site/markdown/HTTPS.md b/openmeetings-server/src/site/markdown/HTTPS.md index fb6518b..3ca5261 100644 --- a/openmeetings-server/src/site/markdown/HTTPS.md +++ b/openmeetings-server/src/site/markdown/HTTPS.md @@ -1,5 +1,6 @@ <!-- -# Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 --> +Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 +--> # Using OpenMeetings with HTTPS diff --git a/openmeetings-server/src/site/markdown/InstallMediaServer.md b/openmeetings-server/src/site/markdown/InstallMediaServer.md index 4341307..3034ca7 100644 --- a/openmeetings-server/src/site/markdown/InstallMediaServer.md +++ b/openmeetings-server/src/site/markdown/InstallMediaServer.md @@ -1,5 +1,6 @@ <!-- -# Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 --> +Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 +--> # Media Server Installation diff --git a/openmeetings-server/src/site/markdown/LdapAndADS.md b/openmeetings-server/src/site/markdown/LdapAndADS.md index fc32b7c..2077d69 100644 --- a/openmeetings-server/src/site/markdown/LdapAndADS.md +++ b/openmeetings-server/src/site/markdown/LdapAndADS.md @@ -1,5 +1,6 @@ <!-- -# Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 --> +Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 +--> # LDAP and Active Directory Integration diff --git a/openmeetings-server/src/site/markdown/PortSettings.md b/openmeetings-server/src/site/markdown/PortSettings.md index 854a457..bd3b5d0 100644 --- a/openmeetings-server/src/site/markdown/PortSettings.md +++ b/openmeetings-server/src/site/markdown/PortSettings.md @@ -1,5 +1,6 @@ <!-- -# Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 --> +Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 +--> # Port settings diff --git a/openmeetings-server/src/site/markdown/RestrictedAccess.md b/openmeetings-server/src/site/markdown/RestrictedAccess.md index c7739fe..78da57a 100644 --- a/openmeetings-server/src/site/markdown/RestrictedAccess.md +++ b/openmeetings-server/src/site/markdown/RestrictedAccess.md @@ -1,5 +1,6 @@ <!-- -# Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 --> +Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 +--> #How to restrict access to your Openmeetings server