Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Outline
Goal
Scenario
LAB 1
Install Open IMS Core
LAB 2
Install OSGi Service Platform
LAB 3
Implementation
2
Goal
Construct a environment with Open IMS
Core and OSGi Service Platform, and
simulate a client access service through
OSGi gateway to IMS network.
Implement an Application Server(AS) in
a IMS network.
Also, a UPnP device software needs to
be developed.
3
Scenario
Implement elements:
Application Server(AS)
UPnP device
IMS
network
UPnP
devices
OSGi
gateway
Internet
LAB 1
Install Open IMS core
Requirements
Hardware
A current Linux desktop class machine
should be enough
If you want to get ultimate performance:
Add several Gigabytes of RAM
Have as many CPUs/Cores as
Gigabit Ethernet would help
Requirements(cont.)
Network access
Inter-domain NAT is not something we are
interested in, so a public IP address would
be great
Controllable DNS server if you don't want
to have one on your Linux box
Requirements(cont.)
Software
~100 MBytes of disk space to be on the
safe side
GCC3/4, make, JDK1.5, ant
MySQL installed and started (or other
DBMS if you can deal with it)
bison, flex
libxml2 (> 2.6), libmysql - both with
development
10
Requirements(cont.)
Software
Linux kernel 2.6 and ipsec-tools (setkey) if
you want to use IPSec security
Optional: openssl if you would like to
enable the TLS security
bind installed and running (or other name
server if you can deal with it)
Browser on the box or that can connect to
the box (for user provisioning)
11
Requirements(cont.)
Install Tips: Ubuntu Linux as example
First, install these software first in the
terminal, type sudo apt-get install
subversion
ant
sun-java6-jdk
bison
flex
mysql-server
libmysqlclient15-dev
libxml2
libxml2-dev
bind9
12
Requirements(cont.)
Install Tips: Set up JAVA HOME
environment.
After install Java(JRE & JDK), modify the file:
profile
vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.X.X-sun
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
13
How to install
Step 1: Get the Source Code
Start the Linux terminal
Create /opt/OpenIMSCore and go there
mkdir /opt/OpenIMSCore
cd /opt/OpenIMSCore
How to install(cont.)
Create a new directory FHoSS and checkout
the HSS there
mkdir FHoSS
svn checkout
http://svn.berlios.de/svnroot/repos/openimsco
re/FHoSS/trunk FHoSS
15
How to install(cont.)
Step 2: Compile
ser_ims
Do "make install-libs all" in ser_ims
cd ser_ims
make install-libs all
cd ..
16
How to install(cont.)
FHoSS
If you don't have a JDK >=1.5, get one
before proceeding
# java -version
17
How to install(cont.)
Step 3: Configure the Environment
Notes
All the installation examples configured to work
only on the local loopback and the default
domain configured as "open-ims.test".
Replace 127.0.0.1 where required with your IP
address.
18
How to install(cont.)
DNS
A sample DNS zone file can be found in
ser_ims/cfg/open-ims.dnszone
Copy it to your bind configuration
directory(/etc/bind9)
Edit named.conf and insert the file there .
19
How to install(cont.)
Restart the name server
Test that the names are resolvable (don't forget
about /etc/resolv.conf pointing to your new
DNS server!)
Example: ping open-ims.test
20
How to install(cont.)
MySQL
Type the MySQL comands:
mysql -u root -p -h localhost <
ser_ims/cfg/icscf.sql
mysql -u root -p -h localhost <
FHoSS/scripts/hss_db.sql
mysql -u root -p -h localhost <
FHoSS/scripts/userdata.sql
21
How to install(cont.)
Step 4: Configure the IMS Core
By now you should have MySQL and DNS
working
Copy the following files to
/opt/OpenIMSCore:
pcscf.cfg, pcscf.sh, icscf.cfg, icscf.xml,
icscf.sh, scscf.cfg, scscf.xml, scscf.sh
Take a look at the configuration files in
FHoSS/deploy/
22
How to install(cont.)
Step 5: Start the components
CSCFs
Start pcscf.sh, icscf.sh and scscf.sh
FHoSS
Start FHoSS/deploy/startup.sh
Check the web interface on
http://localhost:8080/
Username: hssAdmin
password: hss
23
How to install(cont.)
Step 6: Configure Subscribers
By default, FHoSS comes provisioned with a
couple of sample users:
alice@open-ims.test
bob@open-ims.test
24
How to install(cont.)
Step 7: Test!
Use Wireshark to see what's going on:
Monitor ports 4060, 5060 and 6060 for SIP
traffic
Monitor ports 3868, 3869 and 3870 for
Diameter traffic
26
27
28
29
30
31
32
34
35
LAB 2
Install OSGi Service Platform
Reference the OSGi ppt.
36
LAB 3
Implementation
Application Server
JAIN SIP
UPnP device
37
38
39
42
43
SipStack Interface
Manages Listening Points and Providers.
SipStack associated with an IP address.
Can have multiple Listening points.
SipProvider Interface
Register a SipListener to the SipProvider.
Notifies registered Listener of Events
SipListener Interface
A single SipListener per SipStack which
implies a single Listener in the architecture
All SipProviders associated to a Sipstack have the
same SipListener.
47
Code Overview
Import the SIP libraries.
The file name is the same with the main
class.
48
49
50
51
Request URI
Method
Call-ID header
CSeq header
From header
An array of Via headers
Max-forwards header
52
53
processIOException()
is called when an I/O Exception happens
54
References
FOKUS Open IMS Core - http://www.openimscore.org/
OpenIC - http://www.open-ims.org/openic/
JAIN SIP - https://jain-sip.dev.java.net/
55
Q&A
Any Questions?
56