You need Apache OpenMeetings version 2.1 to apply this guide!

You need Asterisk version 11 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
sudo apt-get install build-essential linux-headers-`uname -r` libxml2-dev libncurses5-dev libsqlite3-dev sqlite3 openssl libssl-dev

				

ODBC Setup

Run the commands

sudo apt-get update
sudo apt-get install unixODBC unixODBC-dev libmyodbc

				
Set up Asterisk connector:

Modify file /etc/odbc.ini as follows: (replace USER, PASSWORD and Socket with values relative to your system)

[asterisk-connector]
Description = MySQL connection to 'openmeetings' database
Driver = MySQL
Database = openmeetings
Server = localhost
USER = root
PASSWORD =
Port = 3306
Socket = /var/run/mysqld/mysqld.sock

				
Modify file /etc/odbcinst.ini as follows: (replace the path to the *.so files below with the real paths on your system)
(The path below is for x32 server, x64 version is most probably located at /usr/lib/x86_64-linux-gnu/odbc)

[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/i386-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1

				
Run the following command to ensure everything works as expected:

echo "select 1" | isql -v asterisk-connector

				

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-11.2.1.tar.gz
sudo tar -xvzf asterisk-11.2.1.tar.gz
cd ./asterisk-11.2.1
sudo make clean
sudo ./configure
sudo make
sudo make install
sudo make samples
sudo make config
sudo service asterisk start

				

Configure Asterisk

Enable asterisk ODBC module:

Modify "[modules]" section of /etc/asterisk/modules.conf as follows:
Add/uncomment the following lines

preload => res_odbc.so
preload => res_config_odbc.so

				

Create/update "[asterisk]" section in /etc/asterisk/res_odbc.conf:

[asterisk]
enabled => yes
dsn => asterisk-connector
pre-connect => yes

				

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=h264
host=dynamic
nat=force_rport,comedia
context=rooms-red5sip

				

Add next lines into the /etc/asterisk/extconfig.conf:

[settings]
sippeers => odbc,asterisk,sipusers

				

Modify /etc/asterisk/extensions.conf
Add the following section:

[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 creadentials for Asterisk manager. Modify /opt/red5/webapps/openmeetings/WEB-INF/openmeetings-applicationContext.xml
find <bean id="sipDao" class="org.apache.openmeetings.data.conference.dao.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 http://red5phone.googlecode.com/svn/branches/red5sip_2.1
Build with Apache Ant

ant

				
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

Apache OpenMeetings, OpenMeetings, Apache, the Apache feather, and the Apache OpenMeetings project logo

are trademarks of the Apache Software Foundation.