Are you trying to install Kamailio sip proxy server on centos 7?
This article is for you.
Kamailio is an open source implementation of a SIP Signaling Server. SIP is an open standard protocol specified by the IETF.
The IETF is an open international community of network designers, operators, vendors and researchers concerned with the evolution of the Internet architecture and the smooth operation of the Internet. The IETF was established in 1986 to coordinate the operation, management and evolution of the Internet.
Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to install and configure packages on CentOS 7 Server.
In this context, we shall look into the steps to install phpIPAM on CentOS.
Kamailio is an Open Source SIP Server for large VoIP and real-time communication platforms. It is a distribution of SER which provides a scalable SIP server suitable for small through to carrier-grade installations.
It can basically handle over 5000 call setups per second. Also, it can serve up to 300,000 active subscribers with just a 4GB Ram System.
Additionally, it functions as a Registrar server, Location server, Proxy server, SIP Application server, and Redirect server.
Now, we will look into the steps to install Kamailio sip proxy server;
To set the SELinux to permissive mode, execute the commands;
$ sudo setenforce 0
$ sudo sed -i ‘s/^SELINUX=.*/SELINUX=permissive/g’ /etc/selinux/config
Alternatively, you can permanently disable it by rebooting the CentOS system. To do this, execute;
$ sudo setenforce 0
$ sudo sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
$ sudo reboot
After rebooting, confirm SELinux status by running the command and you will get a similar output:
$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
Kamailio requires a database server to function. For this, install the MariaDB database server by running the following commands;
$ sudo yum -y install mariadb-server
$ sudo systemctl enable –now mariadb
$ sudo mysql_secure_installation
For CentOS 8, execute:
$ sudo wget -O /etc/yum.repos.d/kamailio.repo http://download.opensuse.org/repositories/home:/kamailio:/v5.3.x-rpms/CentOS_8/home:kamailio:v5.3.x-rpms.repo
Some packages are not on CentOS 8 repository. We have to use Fedora 29 repository on CentOS 8. If the same issue happens to you, change the repository by running the commands below.
$ sudo wget -O /etc/yum.repos.d/kamailio.repo http://download.opensuse.org/repositories/home:/kamailio:/v5.3.x-rpms/Fedora_29/home:kamailio:v5.3.x-rpms.repo
For CentOS 7, run:
$ sudo wget -O /etc/yum.repos.d/kamailio.repo http://download.opensuse.org/repositories/home:/kamailio:/v5.3.x-rpms/CentOS_7/home:kamailio:v5.3.x-rpms.repo
Once we add the repository, install the Kamailio SIP Server on CentOS 8/CentOS 7 Linux by executing;
$ sudo yum install vim kamailio kamailio-presence kamailio-ldap kamailio-mysql kamailio-debuginfo kamailio-xmpp kamailio-unixodbc kamailio-utils kamailio-tls kamailio-outbound kamailio-gzcompress
Dependency tree will be shown. In that we enter the 'Y' key to begin installation.
Then, confirm Kamailio version by running the following command and you will get a similar output if everything is fine with the installation;
$ kamailio -version
version: kamailio 5.3.3 (x86_64/linux) c918a3
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: c918a3
compiled on 14:32:52 Mar 16 2020 with gcc 8.2.1
Now, modify the file "/etc/kamailio/kamctlrc" and make sure the DBENGINE variable is set to MySQL. Then, remove the pound symbol to uncomment it.
$ sudo vi /etc/kamailio/kamctlrc
After that, we set the database engine to MySQL.
DBENGINE=MYSQL
DBHOST=localhost
We run the below command to create users and tables required by Kamailio (Schema).
$ sudo kamdbctl create
MySQL password for root:
INFO: test server charset
INFO: creating database kamailio …
INFO: granting privileges to database kamailio …
INFO: creating standard tables into kamailio …
INFO: Core Kamailio tables succesfully created.
Install presence related tables? (y/n): y
INFO: creating presence tables into kamailio …
INFO: Presence tables succesfully created.
Install tables for imc cpl siptrace domainpolicy carrierroute
drouting userblacklist htable purple uac pipelimit mtree sca mohqueue
rtpproxy rtpengine secfilter? (y/n): y
INFO: creating extra tables into kamailio …
INFO: Extra tables succesfully created.
Install tables for uid_auth_db uid_avp_db uid_domain uid_gflags
uid_uri_db? (y/n): y
INFO: creating uid tables into kamailio …
INFO: UID tables succesfully created.
When asked for a root password, we enter the MySQL root user password as configured through mysql_secure_installation
Then we answer all the questions that follow. Next we edit /etc/kamailio/kamailio.cfg to configure Kamailio:
$ sudo vi /etc/kamailio/kamailio.cfg
Then we add the following lines just below #!KAMAILIO.
#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_NAT
#!define WITH_PRESENCE
#!define WITH_ACCDB
After that, we start Kamailio
$ sudo systemctl restart kamailio
Then we enable the service to start on boot.
$ sudo systemctl enable kamailio
Finally, now we have a running Kamailio SIP server on CentOS.
$ systemctl status kamailio
● kamailio.service - Kamailio (OpenSER) - the Open Source SIP Server
Loaded: loaded (/usr/lib/systemd/system/kamailio.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-12-05 16:35:23 EAT; 12s ago
Main PID: 9648 (kamailio)
Tasks: 41 (limit: 24003)
Memory: 50.0M
CGroup: /system.slice/kamailio.service
├─9648 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
├─9649 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
├─9650 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
├─9651 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
├─9652 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
├─9653 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
├─9654 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
├─9655 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
├─9656 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
├─9658 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
├─9659 /usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f /etc/kamailio/kamailio.cfg -m 64 -M 4
......
This article will guide you on the steps to install and configure Kamailio sip proxy on CentOS.