This shows you the differences between two versions of the page.
Next revision | Previous revision Next revision Both sides next revision | ||
features:new-in-5.4.x [2020/06/19 08:30] miconda created |
features:new-in-5.4.x [2020/07/09 10:56] henningw update new for 5.4.x doc |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Kamailio SIP Server - New Features in Devel Version | + | ====== Kamailio SIP Server - New Features in v5.4.x |
- | + | ||
- | **Current devel version will be numbered 5.3.0 and it is planned to be released in the autum 2019**. | + | |
<fc #0000FF> | <fc #0000FF> | ||
- | **Previous | + | **Previous version was 5.3.x (released on October, 2019), see what was new in that release at**: |
</fc> | </fc> | ||
* <fc # | * <fc # | ||
- | <fc # | + | <fc # |
===== New Modules ===== | ===== New Modules ===== | ||
Line 14: | Line 12: | ||
==== pv_headers ==== | ==== pv_headers ==== | ||
- | Flexible headers management | + | Flexible headers management $x_hdr exported variables, to offload header processing and to simplify SIP header modifications |
+ | |||
+ | * https:// | ||
+ | |||
+ | ==== kafka ==== | ||
+ | |||
+ | New module to produce and send messages to a Kafka server: | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | ==== secsipid ==== | ||
+ | |||
+ | * new module implementing STIR and SKAKEN IETF extensions, see RFC 8224 and RFC 8588 for details | ||
+ | |||
+ | ==== systemdops ==== | ||
+ | |||
+ | New module to facilitate integration with systemd: | ||
+ | |||
+ | * https:// | ||
- | * https:// | ||
===== New in existing Modules ===== | ===== New in existing Modules ===== | ||
+ | |||
+ | ==== acc ==== | ||
+ | |||
+ | * adding CDR engine functionality, | ||
+ | |||
+ | ==== avpops ==== | ||
+ | |||
+ | * add avp_subst_pv(), | ||
+ | |||
+ | ==== app_ruby ==== | ||
+ | |||
+ | * option to use internal KSR::PV module and skip returning xval str, controlled with the xval_mode parameter | ||
+ | |||
+ | ==== acc_json ==== | ||
+ | |||
+ | * adding CDR as JSON functionality | ||
+ | |||
+ | ==== call_control ==== | ||
+ | |||
+ | * switch from deprecated /var/run to /run | ||
+ | * remove redundant str trim implementation and use the one from core | ||
+ | |||
+ | ==== carrierroute ==== | ||
+ | |||
+ | * organize and add new rpc commands, cr.add_host, | ||
==== cfgt ==== | ==== cfgt ==== | ||
Line 23: | Line 63: | ||
Added new **cfgt.list** and **cfgt.clean** RPC commands | Added new **cfgt.list** and **cfgt.clean** RPC commands | ||
- | * https:// | + | * https:// |
- | * https:// | + | * https:// |
+ | * switch from deprecated /var/run to /run | ||
+ | ==== ctl ==== | ||
+ | |||
+ | * switch from deprecated /var/run to /run | ||
+ | |||
+ | ==== db_mysql ==== | ||
+ | |||
+ | * switch from deprecated /var/run to /run | ||
+ | |||
+ | ==== db_redis ==== | ||
+ | |||
+ | * several performance improvements and fixes | ||
+ | * allow deletion of all rows from DB API | ||
+ | |||
+ | ==== dispatcher ==== | ||
+ | |||
+ | * switch from deprecated /var/run to /run | ||
+ | * add state to mode in ds_list_exists, | ||
+ | * option to set add socket as string in the dst xavp | ||
+ | * new variable $dsv(...) to access attributes related to response code when executing event routes | ||
+ | |||
+ | ==== dialog ==== | ||
+ | |||
+ | * adding dlg.set_state command, which can be used e.g. to force the killing of active dialogs | ||
+ | * dialog: added dlg.briefing rpc command, list fewer details for the dialog records in memory | ||
+ | * new dlg_reset_property() function is added to disable the previously enabled dialog module behaviour, e.g. stop sending keep-alive OPTIONS messages | ||
+ | * export dlg_reset_property() to KEMI | ||
+ | |||
+ | ==== dmq_usrloc ==== | ||
+ | |||
+ | * replicate_socket_info using dmq, useful for anycast scenarios | ||
+ | |||
+ | ==== htable ==== | ||
+ | |||
+ | * export sht_is_null() function to KEMI | ||
+ | * exported functions to inc and dec hash table values to KEMI | ||
+ | * exported function to get timestamp to KEMI | ||
+ | |||
+ | ==== http_client ==== | ||
+ | |||
+ | * new param netinterface to set curl network interface | ||
+ | |||
+ | ==== http_async_client ==== | ||
+ | |||
+ | * remove redundant str trim implementation and use the one from core | ||
+ | |||
+ | ==== log_custom ==== | ||
+ | |||
+ | * send processed logs via UDP | ||
+ | |||
+ | ==== pv ==== | ||
+ | |||
+ | Added new pseudo-variables: | ||
+ | |||
+ | * **[[https:// | ||
+ | * **[[https:// | ||
+ | * add new function xavp_copy | ||
+ | * new transformations s.encode.base64t and s.decode.base64t, | ||
+ | * new transformation {s.rmsw} - remove whitespaces from value, removes all occurences of ' ', ' | ||
+ | |||
+ | ==== mqtt ==== | ||
+ | |||
+ | * add TLS support | ||
+ | * expose received message QOS level over PV | ||
==== registrar ==== | ==== registrar ==== | ||
Line 31: | Line 135: | ||
Added **path** value to xavp_rcd location record | Added **path** value to xavp_rcd location record | ||
- | * https:// | + | * https:// |
Added **xavp_rcd_mask** parameter to control what values to skip | Added **xavp_rcd_mask** parameter to control what values to skip | ||
- | * https:// | + | * https:// |
+ | * control what values to add to xavp_rcd via xavp_rcd_mask parameter | ||
+ | * option to send 423 when expires less than min_expires with the min_expires_mode parameter | ||
+ | |||
+ | ==== rr ==== | ||
+ | |||
+ | * exported record_route_preset_one() to KEMI | ||
+ | * new function rr_next_hop_route(), | ||
+ | |||
+ | ==== rtpengine ==== | ||
+ | |||
+ | * add play_dtmf() command | ||
+ | * update/fix via-branch=next ID generation, via-branch=next should not use a hard-coded branch index of zero, but instead use the actual branch index from the tm module | ||
+ | * adds via-branch=auto-next and via-branch=auto-extra for easier processing in scripts | ||
+ | |||
+ | ==== sdpops ==== | ||
+ | |||
+ | * exported sdp with transport variants to KEMI | ||
+ | |||
+ | ==== sipdump ==== | ||
+ | |||
+ | * switch from deprecated /var/run to /run | ||
+ | * option to run event_route[sipdump: | ||
+ | * KEMI functions to return buf and tag values | ||
+ | * KEMI exports to get src/dst ip of the message | ||
+ | |||
+ | ==== sqlops ==== | ||
+ | |||
+ | * exported sql_result_get() to KEMI | ||
+ | |||
+ | ==== tcpops ==== | ||
+ | |||
+ | * new variabale $tcp(key), return attributes related to tcp connection | ||
+ | |||
+ | ==== tm ==== | ||
+ | |||
+ | * add support for dropping messages in local-request event route | ||
+ | * new weight-based call-termination distribution, | ||
+ | |||
+ | ==== tls ==== | ||
+ | |||
+ | * use internal cryptographic algorithm for pseudo-random number generation, prevent crashes on newer libssl versions | ||
+ | * add fall-back fastrand and kamailio mutex protection pseudo-random number generation as well | ||
+ | * use TLSv1.2 in default configuration | ||
+ | * set default tls method (version) to 1+ | ||
+ | * add verify_client support parameter | ||
+ | |||
+ | ==== ims_ipsec_pcscf ==== | ||
+ | |||
+ | * new parameter in ipsec_forward() to set or not 'send force socket' | ||
+ | * new config param - ipsec_reuse_server_port, | ||
+ | |||
+ | ==== ims_diameter_server ==== | ||
+ | |||
+ | * switch from deprecated /var/run to /run | ||
+ | |||
+ | ==== ims_ocs ==== | ||
+ | |||
+ | * switch from deprecated /var/run to /run | ||
+ | |||
+ | ==== ims_qos ==== | ||
+ | |||
+ | * Rx AAR for Terminating direction get identity from request message if dialog is missing | ||
+ | |||
+ | ==== janssonrpcc ==== | ||
+ | |||
+ | * remove redundant str trim implementation and use the one from core | ||
+ | * replaced str dup wrapers with the functions from core | ||
+ | |||
+ | ==== jsonrpcc ==== | ||
+ | |||
+ | * remove redundant str trim implementation and use the one from core | ||
+ | |||
+ | ==== jsonrpcs ==== | ||
+ | |||
+ | * KEMI function to get the rpc command response, shortcut to skip the pv get layer, can be useful for large values | ||
+ | |||
+ | ==== keepalive ==== | ||
+ | |||
+ | * add new function del_destination and added cfg functions | ||
+ | * added keepalive.add, | ||
+ | |||
+ | ==== kex ==== | ||
+ | |||
+ | *new rpc command stats.fetchn, | ||
+ | |||
+ | ==== kemix ==== | ||
+ | |||
+ | * exported functions to get dst-uri variants to KEMI | ||
+ | * exported function to get next hop URI to KEMI | ||
+ | |||
+ | ==== presence ==== | ||
+ | |||
+ | * new parameter pres_subs_mode, | ||
+ | |||
+ | ==== presence_xml ==== | ||
+ | |||
+ | * adds option to aggregate xml body with priorities | ||
+ | |||
+ | ==== nathelper ==== | ||
+ | |||
+ | * add new function set_alias_to_avp | ||
+ | |||
+ | ==== nat_traversal ==== | ||
+ | |||
+ | * switch from deprecated /var/run to /run | ||
+ | * remove redundant str trim implementation and use the one from core | ||
+ | |||
+ | ==== mediaproxy ==== | ||
+ | |||
+ | * switch from deprecated /var/run to /run | ||
+ | * remove redundant str trim implementation and use the one from core | ||
+ | |||
+ | ==== uac ==== | ||
+ | |||
+ | * extended use of mode param for uac_reg_request_to(), | ||
+ | * optional param for uac_auth() to specify auth mode, to support password in HA1 format | ||
+ | |||
+ | ==== userblacklist ==== | ||
+ | |||
+ | * add KEMI functions | ||
+ | |||
+ | ==== xmpp ==== | ||
+ | |||
+ | * remove redundant str trim implementation and use the one from core | ||
===== New in Core ===== | ===== New in Core ===== | ||
+ | |||
+ | * detect if IPv6 address is between square brackets in internal DB API, to support MySQL cfg group names | ||
+ | * fixup helpers to get dynamic string parameter in own buffer | ||
+ | * function to get the size of the value for strings with vars for PVs | ||
+ | * better evaluation of error return for pv_printf_s() | ||
+ | * add support for parsing http/2 replies parsing | ||
+ | * add two new string handling functions to copy chars and str | ||
+ | * internal flag to mark sip request if there is a route for next hop | ||
==== Command line arguments ==== | ==== Command line arguments ==== | ||
+ | |||
+ | * new command line parameter --loadmodule=name, | ||
+ | * new command line parameter --modparam, to allow setting a module parameter via command line | ||
+ | * new command line parameter --log-engine, | ||
==== Interpreter ==== | ==== Interpreter ==== | ||
==== Parameters ==== | ==== Parameters ==== | ||
+ | |||
+ | * new global parameter uri_host_extra_chars, | ||
==== Functions ==== | ==== Functions ==== | ||
==== Memory Managers ==== | ==== Memory Managers ==== | ||
+ | |||
+ | * qmalloc - print details of prev fragment when its tail is overwritten | ||
==== Architecture ==== | ==== Architecture ==== | ||
+ | |||
+ | * added internal cryptographic algorithm implementation (MD5, SHA, AES, Fortuna PRNG) | ||
+ | * moved lib/srutils functions to core/utils | ||
+ | * further migration of many modules to use core SHM_MEM_ERROR and PKG_MEM_ERROR defines | ||
+ | * events - support for basic void core callbacks, can be used to allow modules execute their code from core for specific needs | ||
+ | * removal of several old core functions which were deactivated since many years | ||
+ | * simplified core log macros (dprint), remove old and unused code | ||
+ | * add support for structured logging, to provide JSON logging format | ||
+ | * add option to print callid as attribute in structure json logging | ||
+ | * log macro to print message without function name (dprint) with LOG_FN(...) | ||
==== kamailio.cfg ==== | ==== kamailio.cfg ==== | ||
+ | |||
+ | * switch from deprecated /var/run to /run | ||
+ | * option to use rtpengine for nat traversal | ||
+ | - define WITH_NAT | ||
+ | - define WITH_RTPENGINE | ||
+ | * update IMS kamailio.cfg examples | ||
===== Tools ===== | ===== Tools ===== | ||
+ | |||
+ | * pdbt: switch from deprecated /var/run to /run | ||
+ | * Makefile: add better support for EMACS | ||
+ | * Makefile: use pgk-config if xml2-config can not be found for certain modules | ||
==== kamcmd ==== | ==== kamcmd ==== | ||
==== kamctl ==== | ==== kamctl ==== | ||
+ | |||
+ | * kamctl: switch from deprecated /var/run to /run | ||
==== kamdbctl ==== | ==== kamdbctl ==== | ||
- | | + | |
+ | * add support for DB creation on MySQL 8 | ||
+ | * new option DBINITASK to control the steps for db init | ||
==== kamcli ==== | ==== kamcli ==== | ||