Kamailio 5.5.0 release

kamailio

Kamailio 5.5.0 has been released!

Overview of new features in v5.4.0

I am really happy with the result of the Kamailio 5.5 release period. Our new major release 5.5.0 was released on 5th May 2021. The development cycle had the usual length of about 10 month.

I am exited to see all this extensions which were contributed many different individuals and companies in production soon. Our project has now over 32800 commits to the master branch. Almost 1350 commits were done for 5.5.0 from more than 70 different individual contributors.

Highlights

  • six new modules have been added (jwt, lwsc, lrkproxy, secsipid_proc, stirshaken, sworker)
  • over 80 modules have been extended, many of them substantially (dispatcher, rtpengine,dmq, topos, presence etc..)
  • countless bugfixes and documentation extensions/fixes have been added as well
  • many refactorings, extensions and architectural improvements were done in Kamailio core, tooling and modules

Summary of new Features

  • six new modules:
    • jwt – JSON Web Token generation and validation
    • lwsc – websocket client connector
    • lrkproxy – RTP relaying using kernel forwarding rules controlled by external application
    • secsipid_proc – pseudo-module offering per process API for secsipid module (STIR/SHAKEN implementation)
    • stirshaken – implementation of STIR/SHAKEN IETF extensions using libstirshaken
    • sworker – tasks management for specialized workers
    • sipdump module can write traffic in pcap files
  • accounting of locally generated response code and reason
  • acc_json accepts pre-encoded JSON values
  • updates to JavaScript and Squirrel interpreters
  • crypto support for hmac sha256 and more interoperability
  • added rpc commands shm.info and shm.stats in corex module and ability to check a local socket by name
  • handle permanent contacts by cplc and options to ignore 3xx replies
  • postgres connection parameters can be set in a more flexible format
  • dispatcher latency optimised round robin algorithm
  • DNS SRV support for drouting module
  • dedicated function to do HTTP GET requests with extra headers (and body)
  • use of client certificates for HTTP requests
  • parameter to control following redirects for http_async_client module
  • substantial improvements and new features to IMS/VoLTE modules (ims_charging, ims_qos, ims_ipsec_pcscf, …)
  • several new variables, transformations and enhancements in the pv module
    • $defn() – defined value as number
    • $Rni() – received socket name
    • $fsn – send socket management using the name
    • new {uri} transformations to get address of record and destination URI variants
    • transformations to get the parts of the string before or after a character
    • new transformation class {urialias} – encode/decode uri alias values (addr~port~proto)
    • xavp_slist_explode() to break a string in tokens by separators, storing them in xavp
  • ability to encode or decode XAVPs to JSON documents in the jansson module
  • pkg.info rpc command to get details about pkg manager in the kex module
  • keepalive module improvements for dynamic management of destination addresses during runtime
  • new features and attributes for LoST redirect, dynamic HELD URL resolving and LoST NAPTR
  • pua_dialoginfo module enhancements
    • control whether to publish information for requests within dialog
    • ability to set caller/callee URI when disabling publishing with config flags *option to add caller/callee display attribute in published documents
  • new function to check if a pipe is active in pipelimit module
  • support for a=rtcp param (RFC3605) in nathelper fix sdp function
  • new features in the secsipid module
    • initialise the API per process to cope properly with multi-threading library
    • secsipid_check_identity_pubkey(pubkeyVal) function to check the identity header validity with a public key
    • secsipid_get_url(url, ovar), convenience function to get the content of a URL and store the result
    • verify certificates against trusted CA list or CRL
  • support for ptime matching in mohqueue module
  • rtpengine module enhancements
    • use of websocket (via lwsc module) to control RTPEngine application
    • support for new codec flags and explicit support for codec-set and codec-except
    • added CRC32 hash algorithm for message distribution
    • support for fallback if a node ran out of ports
    • ability to query round-trip-time per call leg
  • registrar ability to store advertised address instead of bind address in socket field
  • option to take expires value from xavp_cfg field in registrar module
  • additions to topos module
    • event routes for incoming traffic allowing to fine tune the topology stripping behaviour
    • grouping of sessions in contexts
    • support for handling spiralled sessions
  • stricter sanity checks for SIP mandatory headers
  • ability to set global client context for outgoing TLS connections
  • more flexibility when connection to Redis clusters using ndb_redis module
  • improved IPv6 support for MSRP relay module
  • option to pass IP address to pike checking via parameter
  • safety protection for reload races for permissions address records
  • more core parameters and cli parameters
    • async_workers_group to define groups of async worker processes
    • –atexit cli parameter to skip atexit callbacks execution from external libraries
    • –cfg-print to output the config file by evaluating includes ifdefs, subst and define pre-processor directive
    • local_rport parameter to always add rport to locally generated Via
    • new global parameter to specify additional characters allowed in the SIP header names
    • load modules and set module parameters with variables
  • tlsf memory manager was synchronised with upstream project
  • major new features in the kamcli tool

Many more details can be found at the wiki page.

Download links and the installation guide can be found in the official release notes.

Enjoy the new release.

We can support you with the update of your infrastructure to Kamailio 5.5.0 - more information here.

Previous Post