Kamailio 5.4.0 release


Kamailio 5.4.0 has been released!

Overview of new features in v5.4.0

I am really happy with the result of the Kamailio 5.4 release period. Our new major release 5.4.0 was released on 29th July 2020. It was a bit shorter development cycle as in the previous major release, due to summer vacation.

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


  • new modules have been added (pv_headers, kafka, secsipid, systemdops, dlgs)
  • over 70 modules have been extended, many of them substantially (dispatcher, pv, tls, 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

  • five new modules:
    • dlgs – track active calls in stateless mode and export corresponding statistics
    • kafka – connector to Kafka server
    • pv_headers – flexible SIP header management with variables, simplifying configuration file
    • secsipid – implementation of STIR and SHAKEN IETF extensions, see RFC 8224 and RFC 8588 for details
    • systemdops – facilitate integration with systemd
  • dialog-based CDRs in JSON format
  • updates to JavaScript and Squirrel interpreters
  • several RPC commands to carrierroute modules to facilitate runtime management
  • corex module provides parameters to insert records in DNS cache at startup (e.g., add your own A or AAAA records, without needing a real DNS server)
  • encryption and decryption of SIP traffic using a shared key via crypto module
  • per gateway keepalive interval for drouting using keepalive module API
  • asynchronous insert support for db_cluster module
  • control SSL mode for db_mysql connection via modparam
  • many extensions added to Diamemter and IMS-related modules
  • database persistency for mqueue (the internal message queuing module)
  • several new variables and enhancements in the pv module
    • $xavu() – XAVPs with unique value (single value XAPVs)
    • $xavi() – XAVPs with case insensitive name
    • $fsn – send socket management using the name
    • variables to get the length for username in O-URI/R-URI/From/To addresses
    • functions to return xavp values in an array or dictionary to KEMI scripts
    • transformations to encode/decode base64 values with optional trailing padding
    • transformations to encode/decode base64url values
    • transformation to remove white spaces in a value
    • variable to return the message type as string value
  • TLS support for mqtt and exposure of QoS via variable
  • major enhancements for siptrace module to automatically track SIP traffic to database, or mirroring to a SIP address or HEP/Homer SIP capture server
  • usrloc module can send keepalive OPTIONS to all contacts and track the round trip for QoS monitoring
  • dispatcher module enhancements
    • new variable to get keepalive response attributes
    • ability to set outbound proxy per destination address
    • insert attributes per records via RPC add command
    • set destination address state using RPC command and the unique id
  • option to set the network interface to be used by http_client module
  • ability to load address records from a text file for permissions module
  • new features in the dialog module
    • dump all the details of active calls to a file upon an RPC command
    • new RPC command to get a summary of active dialogs
    • ability to set the dialog state via RPC command config functions to reset the dialog properties
  • RPC commands to list and clean in-memory reports for cfgt module
  • rtpengine module enhancements:
    • play DTMF functions
    • kemi support for block/unblock media/dtmf, and play/stop media functions
    • support for new T.38 options
  • new Contact address encoding/decoding functions – replace/restore Contact address with SIP server address, by encoding/decoding old address in a parameter
  • run event route on received/sent messages for sipdump module
  • additions to htable module:
    • function for atomic increment/decrement of htable values
    • RPC command to trigger saving of htable content to database
    • KEMI exports to test null values and get the timestamps
  • significant additions to tls module: new variables and selects, options to control random number generator engine, new very_client parameter for fine control on checking the peer-presented certificate
  • presence module can work in memory-only mode, with no database needed at all, with RPC command to dump the memory records
  • rr and path modules can store the local socket name in a SIP URI parameter to be used for routing subsequent requests
  • weight-based call routing distribution for t_load_contacts()/t_next_contacts() functions in tm module
  • RPC command to trigger transactions cleanup and ability to drop local requests in tm module
  • many new config functions and RPC commands for keepalive module for runtime management of addresses in the list for seending keepalives
  • more core parameters for more elasticity on containerised environments:
    • load modules with –loadmodule parameter
    • set module parameter with –modparam parameter
    • specify integer debug level with –debug parameter
    • specify the log engine with –log-engine parameter
  • new global parameter to specify additional characters allowed in SIP URI host part
  • details of the previous fragment on tail overwritten case
  • relocated the small very used internal libraries to the core
  • option to use rtpengine instead of rtpproxy with default kamailio.cfg
  • new subcommands in kamctl and kamli tools

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.4.0 - more information here.

Vorheriger Beitrag Nächster Beitrag