This is an old revision of the document!
Previous devel, current stable, version was 5.2.x (released on November, 2018), see what was new in that release at:
This is a draft of new features added in this version, manually updated, thus not always synchronized with what is new in source code repository.
Old sr module exported to Lua scripting.
HELD (RFC6155) and LOST (RFC5222) location-based routing.
KEMI specific extensions.
Embedded RTP and media processing functionalities for Kamailio, like playing media or bridging in a B2BUA manner. Includes support for different codecs (including Opus).
Filters to allow/block using whitelists/blacklist based on user agents, IP addresses, countries, domains and users. SQL injection attacks prevention. Blacklist of destinations where the called number is not allowed.
Generates suitable metrics for a Prometheus monitoring platform, answering to Prometheus pull requests (HTTP requests to /metrics URL).
Add support for leg_info fields to the acc_json module
New functionality to sleep for milli-seconds and also schedule a asynchronous route execution with milli-seconds delay
Added a new param in the cnxcc_set_max_credit() function to set the connect cost of a call.
Add new rpc commands dlg.list_match and dlg.list_match_ctx to the dialog module. They will list dialogs matching the expression given via parameters
Add new parameter keep_proxy_rr to loop BYE through proxy. When in use, sending locally generated in-dialog requests will loop back to the proxy with a proper Record-Route header, including any parameters.
Add reload_delta parameter to make the rate limit of maximum allowed dialplan reload configurable.
Added rpc command evrexec.run to run an event_route: kamctl rpc evrexec.run evname [evdata]. First parameter is the event route name (or KEMI function), second parameter (optional, string) is an arbitrary data that becomes available inside the event route via $evr(data).
Extend module functionality significantly, several new commands (e.g. #rooms, #add) were added. Internal refactoring and protocol extensions were done as well. For details have a look to the commit messages for this module.
Add support for multiple TCP connections to the ims_registrar_pcscf module.
Add support for multiple TCP connections to the ims_usrloc_pcscf module.
Add functionality to a add-on to third party registration in S-CSCF. The feature assumes two new flags in HSS database, where additional to the “Service Info XML” an “insertRegisterRequest” flag or an “insertRegisterResponse” flag can be set. These flags are sent with the SAR/SAA exchange to the S-CSCF. More information can be found in the commit message (99b2cfaf4151968a62) and the module documentation.
Add-on to third party registration in S-CSCF to the ims_usrloc_scscf module.
Add-on to third party registration in S-CSCF to the ims_registrar_scscf module.
Add a new rpc command mqueue.fetch
Add new parameter “keep_alive”, send periodic tcp keepalive packets to server in order to prevent connection from closing.
New rpc command mod.mem_statsx, to print also the count of allocated chunks in summary.
A new rpc command presence.updateWatchers
New parameter lookup_filter_mode to control what filters should be applied for lookup(…) operations. Filter values are specified via filed of xavp_cfg.
Add new return value for preloaded route set to loose_route(). Now it is possible to detect from the script if a preloaded Route header was removed that pointed at the local proxy.
Add a new rpc command rls.update_subs.
Added new sdp_get_ddress_family() function to extract the IP address family from the SDP body
Add transaction and dialog level tracing to the module function sip_trace
Add a new parameter connect_mode, option to start even when connecting to db fails.
Add a new function regex_substring(itext, regex, index, mcount, dpv). Return a substring extracted by matching with a regular expression and the index of matched token.
Add a new function t_drop([rcode])
Added check mechanism based on tcp connection - type 3 (KEEPALIVE_MECHANISM_CONCHECK)
Adding support for long option names, to kamailio. This makes it easier to deploy Kamailio in dynamic environments like containers. Examples:
More information: https://www.kamailio.org/w/2019/05/kamailio-command-line-arguments/
Many extensions to the KEMI scripting language support in core and modules were added.
Refactoring and unification of memory allocation error logging infrastructure. Completed in the core, major modules were migrated as well. The #define are called PKG_MEM_ERROR, PKG_MEM_CRITICAL, SHM_MEM_ERROR, SHM_MEM_CRITICAL, SYS_MEM_ERROR and SYS_MEM_CRITICAL error. Additional #define for variable log messages for special cases were added as well.
Changes to the default kamailio.cfg
Added tool to generate code for KEMI modules to misc/tools/kemi/kemi-code-gen.py - can generate typedefs for functions and the large if-else blocks for variants of parameters.