Žilinská univerzita > Fakulta riadenia a informatiky > Katedra informačných sietí

Installing base OpenIMSCore platform on the debian squeeze - 32bit

This install guide is based on the official install guide from http://www.openimscore.org/installation_guide.

This guide describes the base component installation only. The platform is using four virtual machines, one for each IMS component (PCSCF, SCSCF, ICSCF, HSS).

Deployment OS is debian squeeze, 32 bit.

 

Prerequsities

Prepare IP adressing

We are using public IP adresses for our components:

158.193.139.30 pcscf
158.193.139.31 icscf
158.193.139.32 scscf
158.193.139.33 hss

Prepare DNS

Prepare and configure your DNS server correctly, prepare records and reverse records.

$ORIGIN ims2.sip.uniza.sk
@               NAPTR 10 100 "S" "SIP+D2U" "" _sip._udp.pcscf
@               NAPTR 20 100 "S" "SIP+D2T" "" _sip._tcp.pcscf
pcscf           IN      A       158.193.139.30
_sip.pcscf      IN      SRV 0 0 5060 pcscf
_sip._udp.pcscf IN      SRV 0 0 5060 pcscf
_sip._tcp.pcscf IN      SRV 0 0 5060 pcscf
icscf           IN      A       158.193.139.31
_sip            IN      SRV 0 0 5060 icscf
_sip._udp       IN      SRV 0 0 5060 icscf
_sip._tcp       IN      SRV 0 0 5060 icscf
scscf           IN      A       158.193.139.32
_sip.scscf      IN      SRV 0 0 5060 scscf
_sip._udp.scscf IN      SRV 0 0 5060 scscf
_sip._tcp.scscf IN      SRV 0 0 5060 scscf
hss             IN      A       158.193.139.33
presence        IN      CNAME   hss

NAPTR records are not explicitly required, but som clients, as for example boghe require it.

Zone records "_sip._udp" and "_sip._tcp" have to point out to the ICSCF as the first contact point fo your IMS domain.

Prepare installation packages

  1. Prepare installation packages as we describe in http://nil.uniza.sk/ngnims/openimscore/building-debian-packages-openimscore
  2. Prepare Mysql on the machine dedicated to run ICSCF and HSS.

Installing P-CSCF

dpkg -i openimscore-pcscf_1064_i386.deb  openimscore_1064_i386.deb

during the installation we are asked to provide correct information as the dns name, then IP address of the machine, the IP address of the dns server, debug level (leave default 1), and if we like to automatically start it.

The PCSCF server startup failed ... So open the log file

vim /var/log/OpenIMSCore/pcscf.log

and the problem is with missing emerg_info.xml

[00mI/O warning : failed to load external entity "/usr/lib/ser/modules/emerg_info.xml"
 0(23380) ^[[01;33mERR:P-CSCF:Failed to parse /usr/lib/ser/modules/emerg_info.xml
^[[00m 0(23380) ^[[01;33mERR:P-CSCF:mod_init: error on init_emergency_cntxt()
^[[00m 0(23380) ^[[01;33minit_mod(): Error while initializing module pcscf

so locate if the file is in your svn dump

cd /root/openimscore
find . -type f -name "emerg_info.xml"

the solution is to make a copy of it to the required destination

cp /root/openimscore/modules/pcscf/emerg_info.xml /usr/lib/ser/modules/emerg_info.xml

and start the pcscf service

/etc/init.d/openimscore-pcscf start

should run.

Configuration of the PCSCF

 No we will do some configuration modification ,caused that our CSCF servers will run on separated machines. So open pcscf.cfg

vim /etc/openimscore/pcscf.cfg

and change ports from 4060 to 5060

port=5060
alias="pcscf.ims2.sip.uniza.sk":5060

and modify modparam from

modparam("pcscf","name","sip:pcscf.ims2.sip.uniza.sk:4060")

to

modparam("pcscf","name","sip:pcscf.ims2.sip.uniza.sk:5060")

change also ports for IPsec

modparam("pcscf","ipsec_port_c",5060)
modparam("pcscf","ipsec_port_s",5060)

finaly restart the service

/etc/init.d/openimscore-pcscf restart

Installing I-CSCF

First install packages on which icscf depends

apt-get install mysql-server mysql-client libcurl3-gnutls libmysqlclient16

We have som problem with IPv6, because debian tried to connect secure debian site using IPv6, so we disable IPv6. And run apt again.

then you may run

 dpkg -i openimscore_1064_i386.deb openimscore-icscf_1064_i386.deb

package will ask you for some parameters so provide them correctly for your installation, in our case:

domain name: ims2.sip.uniza.sk
public IP address for this machine: 158.193.139.31
IP address for your Domain Name Server: 158.193.152.2
Do you want to configure MySQL: yes
What is the MySQL password for root: ....
What debug level do you want: default
Do you want to start I-CSCF automatically? yes

 and run the service

/etc/init.d/openimscore-icscf start

Configuration of the ICSCF

We do not need it as was done for PCSCF.

Modify the MySql

Default icscf.sql script is used to inject data into the Mysql and it define the destination port of the serving CSCF to 6060, so we will modify it to use default 5060 as it is usual for SIP. So login to the icscf database and modify the entry

mysql -uroot -p icscf
UPDATE `icscf`.`s_cscf` SET `s_cscf_uri` = 'sip:scscf.ims2.sip.uniza.sk:5060' WHERE `s_cscf`.`id` =1;

and restart the icscf service.

Installing S-CSCF

 Solve the dependences and install:

apt-get install libcurl3-gnutls libmysqlclient16 mysql-common

then install main openimscore packages:

 dpkg -i openimscore_1064_i386.deb openimscore-scscf_1064_i386.deb

 package will ask you for some parameters so provide them correctly for your installation, in our case:

domain name: ims2.sip.uniza.sk
public IP address for this machine: 158.193.139.32
IP address for your Domain Name Server: 158.193.152.2
What debug level do you want: default
Do you want to start I-CSCF automatically? yes

now open the cscf.cfg in /etc/openimscore/ and change port numbers from 6060 to 5060

and run the service

/etc/init.d/openimscore-scscf start

Installing HSS

Enable in your sources.list non-free packages to allow java installation (edit your sources.list), in my case:

deb http://ftp.antik.sk/debian/ squeeze main non-free
deb-src http://ftp.antik.sk/debian/ squeeze main non-free

Solve the dependences and install:

apt-get install sun-java6-jre mysql-server mysql-client mysql-common

then we are able to install main hss packages:

apt-get install openimscore-fhoss

During the installation of the package we are asked to provide some parameters so provide them correctly for your installation, in our case:

What is the domain name ?
What is the IP address for this domain name ? 158.193.139.33
What is the public IP address for your Domain Name Server ? 158.193.152.2
Do you want to configure MySQL ? yes
You can add user to the HSS database. If no more user to add, left empty. Separate different users by <space>. Users name ? palo timeos
What is the MySQL password for root ?
Do you want to start HSS automatically yes

make the HSS configuration dir as is usual in linux, in /etc/

ln -s /usr/share/java/fhoss-0.2 /etc/fhoss

and start the HSS service

/etc/init.d/openimscore-fhoss start

Configuration of the HSS

 

HSS tricks

Look at the article about kamailio IMS, part about the HSS tricks.

 

Notes

Log files are located in /var/log/OpenIMSCore automatically after the packages installation.

Test

Connect your preferred IMS client to your OpenIMSCore platform. I will use Boghe

Registration

Client (158.193.139.235), PCSCF (158.193.139.30), ICSCF (158.193.139.31), SCSCF (158.193.139.32)

    158.193.139.235     158.193.139.30      158.193.139.31      158.193.139.32
    |                   |                   |                   |
1 : |U-----REGISTER---->|                   |                   |
2 : |                   |U-----REGISTER---->|                   |
3 : |                   |                   |U-----REGISTER---->|
4 : |                   |                   |<-401 Unauthorize-U|
5 : |                   |<-401 Unauthorize-U|                   |
6 : |<-401 Unauthorize-U|                   |                   |
7 : |U-----REGISTER---->|                   |                   |
8 : |                   |U-----REGISTER---->|                   |
9 : |                   |                   |U-----REGISTER---->|
10: |                   |                   |<-200 OK - SAR su-U|
11: |                   |<-200 OK - SAR su-U|                   |
12: |<-200 OK - SAR su-U|                   |                   |

Audio call

The final call flow when one PCSCF (158.193.139.30) and SCSCF (158.193.139.32) are deployed, clients are associated with PCSCF and served SCSCF should look like:

   158.193.139.235     158.193.139.30      158.193.139.32      158.193.139.192
    |                   |                   |                   |
1 : |U------INVITE----->|                   |                   |
2 : |<-100 trying -- y-U|                   |                   |
3 : |                   |U------INVITE----->|                   |
4 : |                   |<-100 trying -- y-U|                   |
5 : |                   |<------INVITE-----U|                   |
6 : |                   |U-100 trying -- y->|                   |
7 : |                   |U----------------INVITE--------------->|
8 : |                   |<----183 Session in|Progress/INVITE---U|
9 : |                   |U-183 Session in ->|                   |
10: |                   |<-183 Session in -U|                   |
11: |<-183 Session in -U|                   |                   |
12: |U------PRACK------>|                   |                   |
13: |                   |U------PRACK------>|                   |
14: |                   |<------PRACK------U|                   |
15: |                   |U----------------PRACK---------------->|
16: |                   |<-------------200 OK/PRACK------------U|
17: |                   |<----------180 Ringing/INVITE---------U|
18: |                   |U---200 OK/PRACK-->|                   |
19: |                   |U-180 Ringing/INV->|                   |
20: |                   |<---200 OK/PRACK--U|                   |
21: |                   |<-180 Ringing/INV-U|                   |
22: |<---200 OK/PRACK--U|                   |                   |
23: |<-180 Ringing/INV-U|                   |                   |
24: |U------PRACK------>|                   |                   |
25: |                   |U------PRACK------>|                   |
26: |                   |<------PRACK------U|                   |
27: |                   |U----------------PRACK---------------->|
28: |                   |<-------------200 OK/PRACK------------U|
29: |                   |U---200 OK/PRACK-->|                   |
30: |                   |<---200 OK/PRACK--U|                   |
31: |<---200 OK/PRACK--U|                   |                   |
32: |                   |<------------200 OK/INVITE------------U|
33: |                   |U--200 OK/INVITE-->|                   |
34: |                   |<--200 OK/INVITE--U|                   |
35: |<--200 OK/INVITE--U|                   |                   |
36: |U-------ACK------->|                   |                   |
37: |                   |U-------ACK------->|                   |
38: |                   |<-------ACK-------U|                   |
39: |                   |U-----------------ACK----------------->|
40: |U-------BYE------->|                   |                   |
41: |                   |U-------BYE------->|                   |
42: |                   |<-------BYE-------U|                   |
43: |                   |U-----------------BYE----------------->|
44: |                   |<--------------200 OK/BYE-------------U|
45: |                   |U----200 OK/BYE--->|                   |
46: |                   |<----200 OK/BYE---U|                   |
47: |<----200 OK/BYE---U|                   |                   |

 

AttachmentSize
File intradomain-call.txt49.96 KB
File registration.txt15.57 KB
Groups: