October 17, 2019Kamailio SIP Server v5.3.0 has been released – this is a major release, meaning that it is introducing a considerable number of new features as well as improvements to existing components.

Overview of new features in v5.3.0

(for more details see the wiki page)

Highlights

  • new command line parameters to have more flexibility for orchestration when running in containerised or virtual environments
  • exporting functions to Kamailio Embedded Interpreter (KEMI) interface continued for more modules and a dedicated module was added to offer KEMI specific extensions
  • dynamic management (add/remove) of load balancer routes (dispatcher module) via RPC commands, allowing to control routes without reloading all the records from backend
  • support for haproxy protocol, enabling use of Kamailio behind TCP/HTTP load balancers offered by various cloud providers
  • a new module (rtp_media_server) that can be used to answer a call and play media/audio files from Kamailio
  • extensions for next generation emergency services – HELD (RFC6155) and LOST (RFC5222) location-based routing

Summary Of New Features

  • six new modules:
    • app_lua_sr – old Lua API before introduction of KEMI
    • lost – HELD (RFC6155) and LOST (RFC5222) location-based routing
    • kemix – KEMI specific extensions
    • rtp_media_server – embedded RTP and media processing functionalities for Kamailio (like playing media or bridging in a B2BUA manner, includes support for different codecs, including Opus)
    • secfilter – filters to allow/block using whitelists/blacklist based on user agents, IP addresses, countries, domains and users
    • xhttp_prom – generates suitable metrics for a Prometheus monitoring platform, answering to Prometheus pull requests
  • ability to execute async routes with a millisecond accuracy
  • support for connect cost in the prepaid cnxcc engine
  • rpc commands in dialog module to get active dialogs based on various filters
  • options to loop the BYE requests generated by dialog module
  • rpc commands in dispatcher module to add/remove a single destination record
  • evrexec ability to execute an event route via rpc command
  • options for http client module to set the size limit of the result or retrieve the entire data
  • significant extensions to imc module, including new commands like #room or #add
  • many extensions added to IMS-related modules
  • option to retrieve an item from internal message queue (mqueue) via rpc command
  • several new variables in the pv module
    • formatted time with millisecond precision
    • received info attributes
    • transformation to count characters
  • new rpc commands for presence module for more flexible external control
  • options for siptrace module to track SIP traffic per message, transaction or dialog
  • options to set filters for lookup location to fetch contacts only with specific branch flags set
  • rtpengine module enhancements
    • new functions play_media() and stop_media()
    • new functions start_forwarding() and stop_forwarding()
    • support for trickle ICE SDP fragments
  • option to add Path parameter to redirect contacts
  • ability to get in config script the value of the local To-tag to be generated by Kamailio
  • ability to start sqlops module even when initial connection to database server fails
  • function in textops to extract tokens from string based on regex substitution rules
  • new variables to access attributes from TLS connections and certificates
  • several enhancements to work smooth with libssl 1.1.x
  • many new features in the uac module
    • support for HA1 passwords for remote registrations
    • ability to specify the local socket for remote registrations
    • replace From/To using dialog module with restart capability
  • new core parameters for more elasticity on containerised environments:
    • add domain aliases with –alias
    • set advertised address to listen sockets specificied with -l socket/advertise
    • set server id with –server-id
    • set a subst, substdef or substdefs preprocessor expression with –subst, –substdef or –substdefs
  • support for haproxy protocol – both the v1 (human-readable) and v2 (binary) versions of the protocol are supported
  • new options for matching accepted tcp connections to prevent duplicates due to IP-layer load balancers
  • improvements to track execution latency and deployments on IPv6
  • new subcommands in kamctl tool

Project achievements during v5.3.0 development cycle

  • the development of the project entered the 19th year of activity
  • it is the 21th public major release in the history of project (SER project went out first with v0.8.x)
  • the project is about to organize the 8th edition of its own conference, Kamailio World, (April 27-29, 2020, in Berlin)
  • many presentations at events world wide: Astricon, Cluecon, Fosdem, CommCon, ITExpo, TAD Hack, Mobile World Congress, FUSECO Forum, Berlin5GWeek, KazooCon, Call Center World
  • continuous development at high pace – the project has over 30000 commits to the master branch (over 1500 commits done for v5.3.0 alone from more than 60 different contributors)
  • the project is about to organise the 2nd edition of Kamailio Developers Meetup in Dusseldorf, November 14-15, 2019 – more than 10 developers already registered to come and spend two days of coding for Kamailio

Downloading v5.3.0

You can download the tarball of the released sources at:

Binary packages for several distributions can be found at:

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

Useful links:

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 2020 among them, and invite you to join the efforts to improve Kamailio!