You need Apache OpenMeetings version 3.1+ to apply this guide!

You need Asterisk version 13+ to apply this guide!

Here is instruction how-to set up red5sip transport integration with OpenMeetings on Ubuntu 12.10.

Prerequisites

Run the commands

sudo apt-get update && sudo apt-get upgrade

				

Building and setting up Asterisk

Run the commands

sudo mkdir /usr/src/asterisk && 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

				
Make sure you have selected Add-ons -> res_config_mysql, Press F12 to save

sudo make
sudo make install
sudo make samples
sudo make config
sudo service asterisk start

				

Configure Asterisk

Enable asterisk MySQL module:

Modify "[modules]" section of /etc/asterisk/modules.conf as follows:
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

				

Modify /etc/asterisk/sip.conf
Add/uncomment the following line:

videosupport=yes
rtcachefriends=yes

				
Increase maxexpiry value to 43200:

maxexpiry=43200

				
Add user for the "SIP Transport":

[red5sip_user]
type=friend
secret=12345
disallow=all
allow=ulaw
allow=h263
host=dynamic
nat=force_rport,comedia
context=rooms-red5sip

				

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/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 => _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.
; *****************************************************

[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

				

Modify /etc/asterisk/confbridge.conf
Add/Modify the following secions:

[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 

				

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/red5/webapps/openmeetings/WEB-INF/classes/openmeetings-applicationContext.xml
find <bean id="sipDao" class="org.apache.openmeetings.db.dao.room.SipDao"> uncomment its parameters and set it to your custom values.

IMPORTANT: this step should be done BEFORE system install/restore otherwise all SIP related room information will be lost


Restart asterisk:

service asterisk restart

				

Setup red5sip transport

  • Download red5sip from https://github.com/openmeetings/red5sip
    
    git clone https://github.com/openmeetings/red5sip.git
    
    					
  • Build with Apache Maven
    
    cd red5sip
    mvn clean package
    
    					
  • All necessary files will be available in target folder, copy/move it to /opt/red5sip/
  • Insert proper values to the /opt/red5sip/settings.properties
    
    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)
    
    					
  • Add red5sip to autostart:
    
    sudo cp /opt/red5sip/red5sip /etc/init.d/
    sudo chmod a+x /etc/init.d/red5sip
    sudo update-rc.d red5sip defaults
    
    					
  • Start openmeetings
    
    service red5 start
    
    					
  • Start red5sip
    
    service red5sip start
    
    					

Back to top