IMS

Note: This document is now (2021) outdated, as the IMS packages have been integrated into the common Kamailio repository

Note: This document is work in progress and yet unfinished!

This is a short installation howto for Debian Wheezy (stable).

This installation howto has been derived from here: http://uctimsclient.berlios.de/openimscore_on_ubuntu_howto.html

General preparations

We recommend, you install all components into a dedicated virtual machine. In our lab we use OpenVz-Containers, but you can also use any other virtual environment.

If you are not familiar with OpenVz or any other, please try Proxmox or similar.

Installation of the DNS-Server

Important note: A properly configured DNS-Server is mandatory for IMS, just adding according entries in your /etc/hosts/ will not be enough!

If you are running the DNS on your own machine then edit the file /etc/dhcp3/dhclient.conf and uncomment this line:

prepend domain_name_servers 127.0.0.1;

Copy the open-ims-DNS file to the bind folder and add these lines to /etc/bind/named.conf.local:

zone "kamailio-ims.org" {
            type master;
            file "/etc/bind/kamailio-ims.org.dnszone";
};

You can find a very basic dnszone-file in "examples/ims_dnszone"-folder of the Kamailio repository

You will need to restart bind for these changes to take effect.

/etc/init.d/bind9 restart

Check that this all works. Try a ping and see if you get a response:

ping pcscf.kamailio-ims.org

If you can not ping by DNS address, try:

host pcscf.kamailio-ims.org

If the DNS address resolved to IP address currectly. You may need to update your "/etc/nsswitch.conf" file according to this question on SO.. After that modification you should be able to ping by DNS address.

Installation of the Kamailio-IMS-Packages

Configuration of the repository (All nodes)

First, install the Key for our repository:

wget -O - http://repository.ng-voice.com/PublicKey | apt-key add -

Then add the repository to your "/etc/apt/sources.list":

echo "deb http://repository.ng-voice.com jessie ims rtpproxy" >> /etc/apt/sources.list

NOTE:

  • The repository is 64 Bit only
  • we do have packages for Debian 7, Debian 8 (jessie) and Ubuntu LTS (trusty)
  • the packages are updated regularly from trunk

And update the available packets:

apt-get update

Installation of Proxy-/Interrogating-/Serving-CSCF Binary packages

Install the modules:

apt-get install kamailio kamailio-ims-modules kamailio-presence-modules kamailio-tls-modules kamailio-xml-modules kamailio-xmlrpc-modules

If you want to have an RTP-Proxy/RTP-Relay, you find the "mediaproxy-ng" from Sipwise in that repository as well,

apt-get install ngcp-mediaproxy-ng

For I-CSCF you will also need a database structure:

mysql -uroot -p < icscf.sql

(on the database server)

Configuration of the network entities

You find the according configs in the examples folder of Kamailio (Trunk). For the Proxy-CSCF, use the configurations in examples/pcscf, for the Interrogating-CSCF in examples/icscf/, for the Serving-CSCF in examples/scscf/.

The configuration for each server consists of minimum two files:

  • kamailio.cfg - the main configuration-file (general for each entity)
  • pcscf.cfg / icscf.cfg / scscf.cfg - inidividual configurations for the P-/I-/S-CSCF (everything, that's individual per server)
  • pcscf.xml / icscf.xml / scscf.xml - Diameter configurations

Copy the required config files to your /etc/kamailio/-folder, adapt the config in the pcscf.cfg/pcscf.xml to your needs (change "ng-voice.com" and the IP to your domain/IP, please remember also the escaped versions of the domain and the IP, e.g. "pcscf\.ng-voice\.com). For components with Diameter-Interface (e.g. I-/S-CSCF) you will need to modify the according XML-files, e.g. "pcscf.xml").

Finally, you should edit the "/etc/default/kamailio"-File, in order to run the component.

Now the Component should be able to start:

pcscf:/# /etc/init.d/kamailio start
Starting kamailio: kamailioloading modules under /usr/lib/kamailio/modules:/usr/lib/kamailio/modules_s:/usr/lib/kamailio/modules_k
Listening on
         udp: 109.239.50.67:5060
         tcp: 109.239.50.67:5060
Aliases:
         tcp: pcscf:5060
         udp: pcscf:5060
         *: pcscf.ng-voice.com:5060
         *

And voila: Your component is running!

Installation of the Fraunhofer HSS

The Fraunhofer HSS (FHoSS) requires the original Java from Oracle/Sun. Using OpenJDK won't work.

Install Sun Java (on Lenny)

Note: You will need to add the “non-free” packages to your repository:

deb http://ftp.de.debian.org/debian lenny main non-free
deb http://security.debian.org/ lenny/updates main non-free

Install Oracle Java (on Squeeze)

Oracle Java is no longer available in the official repository. However, there are several ways to install Oracle Java, here is one possible way:

* http://www.webupd8.org/2012/06/how-to-install-oracle-java-7-in-debian.html

Install the FHoSS-Packages

Add our repository to your "/etc/apt/sources.list":

echo "deb http://repository.ng-voice.com wheezy fhoss" >> /etc/apt/sources.list

Install the FHoSS from our repository:

apt-get install openimscore-fhoss

Create the data in the database:

mysql -uroot -p < /etc/fhoss/sql_files/hssdb.sql

Add some sample data, if you like:

mysql -uroot -p < /etc/fhoss/sql_files/userdata.sql

The Webinterface should be reachable on port “8080″.

The following config files (/etc/fhoss) may be of interest:

  • DiameterPeerHSS.xml: The Diameter Interconnects and listening IP definition
  • hss.properties: The listening IP definition for the Web-Interface
  • hibernate.properties: The database interconnection for the HSS
  • conf/tomcat-users.xml: Usernames and Passwords for the Web-User (default Username is: “hssAdmin” and password “hss”)
  • Note: You will need to restart the FHoSS (“/etc/init.d/openimscore-fhoss restart”) in order to apply changes.