Setup Kamailio SIP Server and Siremis for Voice call

SIP is Session Initial Protocol for starting an interactive user session that involves multimedia elements. It usually use for VoIP (Voice over Internet Protocol) communication which let user to make voice and video calls. SIP is a popular protocol that let mobile application much more easy to setup incoming and outgoing voice call. In this tutorial, I will teach you how to setup kamailio sip server in your computer and also install siremis web management to manage the kamailio server with GUI interface so it can be easy to maintain.


Setup Kamailio SIP Server


Note : Required Ubuntu Operating System

Pre-install package

Open a terminal to install the following package to proceed to the next steps.

Note: You should gain root access to install packages.

$ apt-get install git (Git client)

$ apt-get install gcc (gcc compiler)

$ apt-get install flex (flex)

$ apt-get install bison (bison)

$ apt-get install libmysqlclient-dev (libmysqlclient)

$ apt-get install make (make)

$ apt-get install libssl-dev

$ apt-get install libcurl4-openssl-dev

$ apt-get install libxml2-dev

$ apt-get install libpcre3-dev

$ apt-get install mysql-server (mysql server)

$ apt-get install rtpproxy (To travel NAT)


Get the source by using Git

$ mkdir -p /usr/local/src/kamailio-4.4

$ cd /usr/local/src/kamailio-4.4

$ git clone –depth 1 –no-single-branch git:// kamailio

$ cd kamailio

$ git checkout -b 4.4 origin/4.4



$ make cfg

$ make include_modules=”db_mysql dialplan” cfg


Compile the source

$ make all

$ make install


Create a MYSQL database

$ nano -w /usr/local/etc/kamailio/kamctlrc



$ /usr/local/sbin/kamdbctl create


Edit configuration file

$ nano –w /usr/local/etc/kamailio/kamailio.cfg

#!define WITH_MYSQL

#!define WITH_AUTH


#!define WITH_NAT

***(No need to edit listen if you are configure only private network, because it will automatic point to your private network)

listen=udp: private_ip :5060 advertise public_ip :5060


Add user

$ kamctl add 1001 1001

$ kamctl add 1002 1002

(password: kamailiorw)

password can be modify in this path /usr/local/etc/kamailio/kamctlrc


Start rtpproxy 1st after that start server

***(If you are configure only private network can skip this)

$ rtpproxy –l (public ip) –s udp:localhost:7722 –F

$ kamctl start



Kamailio commands

Start Server – $ kamctl start

Restart server -$ kamctl restart

Stop server – $ kamctl stop

Print log – $ tail -f /var/log/syslog

Track port – $ ngrep -d any -qt -W byline . port 5060

Monitor – $ kamctl moni

Check listen- $ kamailio -c kamailio.cfg

Registered users – $ kamctl db show subscriber


Official Tutorial :


Install Siremis Web Management For Kamailio (Optional)



$ apt-get install apache2

$ a2enmod rewrite

$ apt-get install php5 php5-mysql php5-gd php5-curl


Download Siremis

$ cd /var/www

$ wget

$ tar xvfz siremis-4.2.0.tgz

$ cd siremis-4.2.0


Setup Web Server

$ make apache-conf (and copy the source code)

Below is example

# siremis apache conf snippet …

Alias /siremis “/var/www/siremis-4.2.0/siremis”

<Directory “/var/www/siremis-4.2.0/siremis”>

Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

Allow from all

<FilesMatch “\.xml$”>

Order deny,allow

Deny from all


<FilesMatch “\.inc$”>

Order deny,allow

Deny from all



$ nano –w /etc/apache2/sites-available/000-default.conf

Paste into VirtualHost


Local Configuration

$ make prepare

$ make chrown


Database Configuration

$ mysql –u(user) –p

mysql > GRANT ALL PRIVILEGES ON siremis.* TO siremis@localhost IDENTIFIED BY ‘siremisrw’;


Web Installation Wizard

-Refer to official website

Note :  Tick “Create Siremis DB” in Step 3, Otherwise you will not able to login.


Official Tutorial :

Official Website :

(Visited 4,637 times, 5 visits today)

Yong Loon Ng

Ng Yong Loon, better known as Kristofer is a software engineer and computer scientist who doubles up as an entrepreneur.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *