Apache OpenMeetings Demo | Download | Installation | Wiki  


SIP-Transport Integration

You need Apache OpenMeetings version 3.0 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:notavil)
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/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
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


Copyright © 2003-2013, The Apache Software Foundation