November 28, 2018: Kamailio SIP Server v5.2.0 has been released – this is a major release, meaning that it is introducing a consistent number of new features as well as improvements to existing components.
Overview of new features in v5.2.0
(for more details see the wiki page)
Highlights
- Kamailio Embedded Interface (KEMI) framework has been developed further to offer more functions exported by Kamailio. A tutorial is available:
- Besides the old options for native scripting, Lua, Python2, JavaScript, Squirrel, the SIP Routing Logic can be now also written in Python3 and Ruby
- Many of the conditions with core keywords are available as functions exported by KEMI, optimizing the execution time for some common use cases
- dispatcher – the load balancer module – had some internal refactoring to leverage modern XAVP for more flexibility and performances, as well as new functions to enable using of several destination groups and algorithms in the same routing step
- Redis can be used as a database backend for most of the modules (e.g., to replace MySQL or Postgres backends)
- RTPEngine introduced transcoding capability
Summary Of New Features
- six new modules:
- acc_json – accounting with records exported in JSON format
- app_python3 – Python3 scripting interpreter
- app_ruby – track active calls with integer ids
- db_redis – database backend with Redis server
- ims_ipsec_pcscf – diameter server implementation
- pua_json – presence user agent implementation with JSON messages
- execute Python3 scripting code embedded in kamailio.cfg
- write configuration file routing blocks in Python3 scripting
- option to reload updating Python3 routing script without restarting Kamailio by issuing a RPC command
- execute Ruby scripting code embedded in kamailio.cfg
- write configuration file routing blocks in Ruby scripting
- option to reload updating Ruby routing script without restarting Kamailio by issuing a RPC command
- rtp transcoding capabilities through rtpengine module
- option to use LuaJIT as an embedded interpreter for app_lua
- flexibility to build local Via with values from XAVPs
- ability to load dialog records from database on demand
- ability to load dialog records from database if they are not yet in memory cache
- load balancer using many destination groups and different algorithms at the same time
- load balancer can do congestion control based dispatching
- distributed message queue (dmq) continous monitoring of the nodes and startup option with no active nodes
- a substantial set of enhancements for IMS/VoLTE extensions
- more statistics made available for types of requests and classes of responses
- distribution of presence states using dmq
- many new pseudo-variables and transformations exported to kamailio.cfg scripting language
- flexibility in record routing processing to select outgoing socket and ignore sips uri schema
- major enhancements to RTP processing via RTPEngine, including transcoding, blocking/unblocking media or dtmf
- more sanity checks to detect broken SIP request in early phase of processing
- HEP (sipcapture) message forwarding (proxy)
- new functions for faster string operations over parts of SIP message (headers, body, …)
- TLS configuration enhancements, including options to set more profiles for any local address with different SNI
- TLS support for OpenSSL engine and private keys in HSM
- simplified transaction management with option to create the transaction when the reply is generated
- event routes to decide whether to do or not the topology hiding with topoh or topos
- enhancements to the remote registration support and mid registrar capabilities inside the uac module
- extensive number of functions made available to KEMI interpreters
- kamcli can generated tls configuration from a database table
- kamcli is packaged for Debian and Ubuntu distributions by deb.kamailio.org
- new commands for kamctl tool
Project achievements during v5.2.0 development cycle
- the development of the project continued along the 18th year of activity
- it is the 20th public major release in the history of project (SER project went out first with v0.8.x)
- the project is about to organize the 7th edition of its own conference, Kamailio World, (May 6-8, 2019, in Berlin)
- many presentations at events world wide: Astricon, Cluecon, Fosdem, ITExpo, TAD Hack, Mobile World Congress, FUSECO Forum, Berlin5GWeek, KazooCon, Call Center World
- continuous development at high pace – the project has over 28500 commits to the master branch (about 2000 commits done for v5.2.0 alone from more than 50 different contributors)
- the project organized a developer meetup in Dusseldorf, September 27-28, 2018 – more that 10 developers spent two days coding for Kamailio, one of the major achievements was unifying the modules exports interface
Downloading v5.2.0
You can download the tarball of the released sources at:
Binary packages for several distributions can be found at:
- https://www.kamailio.org/pub/kamailio/latest-5.2.x/bin/
- https://www.kamailio.org/pub/kamailio/latest-5.2.x/packages/
- https://www.kamailio.org/wiki/packages/debs
- https://www.kamailio.org/wiki/packages/rpms
Packages will be uploaded as soon as they are built by developers (Debian and Ubuntu debs as well as RPMs for Centos, RedHat, Fedora and OpenSUSE) or submitted by community for other operating systems.
A step by step installation tutorial is available at:
Documentation
- Modules’ documentation: https://www.kamailio.org/docs/modules/5.2.x/
- Cookbooks and more wiki docs: https://www.kamailio.org/wiki/
- Migration guide: https://www.kamailio.org/wiki/install/upgrade/5.1.x-to-5.2.0
- Alphabetic indexes: for modules’ functions, parameters and control commands
Useful links:
- Install and maintain Kamailio 5.2.x from GIT repository
- Commit ChangeLog for Kamailio 5.2.0
- Kamailio 5.1.x Release Notes – the previous major release
Many thanks to those contributing with code, helping testing or advocating the project!
We are looking forward to meeting many of you at events around the world, of course, Kamailio World 2019 among them, and invite you to join the efforts to improve Kamailio!
Note: Kamailio is the continuation of the former OpenSER project, name changed on July 28, 2008, due to trademark issues. First version under Kamailio name was 1.4.0. Older versions continued to use OpenSER name. Project site and SVN repository on SourceForge.net still use the old name OpenSER. Source code since release 3.0.0 (when the merge of source code trees of Kamailio and SER was completed) is hosted on GIT repository at https://github.com/kamailio. Starting with version 4.0.0, SER has been absorbed in Kamailio flavour, which became the default distribution of the project.