User Tools

Site Tools


features:new-in-5.4.x

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
features:new-in-5.4.x [2020/07/09 13:14]
henningw update new for 5.4.x doc
features:new-in-5.4.x [2020/07/09 14:00]
henningw
Line 7: Line 7:
  
 <fc #800000>//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.//</fc> <fc #800000>//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.//</fc>
 +
 +===== Documentation =====
 +
 +Many fixes were done to the modules, missing parameter were added, wrong parameter or function names fixed and explanation or clarifications added. Furthermore many debug messages in the core and modules were extended, to help analyzing problems or bugs. The full details can be found in the release Changelog or with the "git log" command.
 +
 +===== Bugfixes =====
 +
 +Countless bugfixes were implemented for this release in core, tools and modules. Furthermore the code base was scanned with several static analyzers, to detect otherwise hard to find bugs. The full details can be found in the release Changelog or with the "git log" command.
  
 ===== New Modules ===== ===== New Modules =====
Line 24: Line 32:
 ==== secsipid ==== ==== secsipid ====
  
-  * new module implementing STIR and SKAKEN IETF extensions, see RFC 8224 and RFC 8588 for details+  * new module implementing STIR and SHAKEN IETF extensions, see RFC 8224 and RFC 8588 for details
  
 ==== systemdops ==== ==== systemdops ====
Line 31: Line 39:
  
   * https://kamailio.org/docs/modules/devel/modules/systemdops.html   * https://kamailio.org/docs/modules/devel/modules/systemdops.html
 +
 +==== dlgs ====
 +
 +New module to enable lightwight, stateless dialog tracking and statistics
 +
 +  * https://kamailio.org/docs/modules/devel/modules/dlgs.html
  
 ===== New in existing Modules ===== ===== New in existing Modules =====
Line 37: Line 51:
  
   * adding CDR engine functionality, to allows the extension of the acc module for other formats or backends   * adding CDR engine functionality, to allows the extension of the acc module for other formats or backends
 +  * new skip_cdr modparam to prevent cdr generation for certain calls
  
 ==== auth_db ==== ==== auth_db ====
Line 44: Line 59:
 ==== avpops ==== ==== avpops ====
  
-  * add avp_subst_pv(), same functionality as avp_subst() but second parameter will be evaluated before calling subst.+  * add avp_subst_pv(), same functionality as avp_subst() but second parameter will be evaluated before calling subst 
 +  * export avp_check and avp_copy functions to KEMI
  
 ==== app_python ==== ==== app_python ====
Line 57: Line 73:
  
   * option to use internal KSR::PV module and skip returning xval str, controlled with the xval_mode parameter   * option to use internal KSR::PV module and skip returning xval str, controlled with the xval_mode parameter
 +
 +==== app_jsdt ====
 +
 +  * internal duktape interpreter upgraded to v2.5.0
  
 ==== acc_json ==== ==== acc_json ====
Line 71: Line 91:
   * organize and add new RPC commands, cr.add_host, cr.delete_host, cr.activate_host, cr.deactivate_host and cr.replace_host   * organize and add new RPC commands, cr.add_host, cr.delete_host, cr.activate_host, cr.deactivate_host and cr.replace_host
   * remove obselete FIFO commands implementation   * remove obselete FIFO commands implementation
 +
 +==== cdt ====
 +
 +  * better compatiblity with certain Diameter servers that lacks Supported-Vendor-Id in their reply
  
 ==== cfgt ==== ==== cfgt ====
Line 84: Line 108:
   * add functions to set socket by name   * add functions to set socket by name
   * new function is_faked_msg()   * new function is_faked_msg()
 +  * new param dns_cache to add values to the internal dns cache
 +  * export file read/write functions to kemi
  
 ==== ctl ==== ==== ctl ====
  
   * switch from deprecated /var/run to /run   * switch from deprecated /var/run to /run
 +
 +==== crypto ====
 +
 +  * add event route to allow encrypting/decrypting net I/O traffic
  
 ==== drouting ==== ==== drouting ====
Line 100: Line 130:
  
   * switch from deprecated /var/run to /run   * switch from deprecated /var/run to /run
 +  * new parameter opt_ssl_mode - allow controling ssl mode, can disable or enforce use of SSL
 +
  
 ==== db_redis ==== ==== db_redis ====
Line 114: Line 146:
   * add new parameter ds_default_sockname, to set the send socket by name   * add new parameter ds_default_sockname, to set the send socket by name
   * add new gateway attribute "obproxy"   * add new gateway attribute "obproxy"
-  * add rpc command dispatcher.hash+  * add RPC command dispatcher.hash, compute the hash id of the value and do modulo operation if first parameter is not 0 
 +  * new RPC command dispatcher.set_duid_state, to set the state of a destination by matching on duid attribute 
 +  * add attrs param to RPC 'add' call
  
 ==== dialog ==== ==== dialog ====
Line 126: Line 160:
  
 ==== dmq ==== ==== dmq ====
 +
   * set 202 response for empty_peer_callback() handling   * set 202 response for empty_peer_callback() handling
  
Line 131: Line 166:
  
   * replicate_socket_info using dmq, useful for anycast scenarios   * replicate_socket_info using dmq, useful for anycast scenarios
 +  * add new parameter `usrloc_delete` to disable synchronizing delete actions
  
 ==== htable ==== ==== htable ====
  
   * export sht_is_null() function to KEMI   * export sht_is_null() function to KEMI
-  * exported functions to inc and dec hash table values to KEMI +  * export functions to inc and dec hash table values to KEMI 
-  * exported function to get timestamp to KEMI+  * export function to get timestamp to KEMI
   * new RPC command htable.store, to save the content of a hash table to DB   * new RPC command htable.store, to save the content of a hash table to DB
  
Line 155: Line 191:
   * add civic address parsing via xpath, with fallback to point or circle attributes   * add civic address parsing via xpath, with fallback to point or circle attributes
   * new module parameters to set HeLD request attributes, parameters are exact_type, response_time, and location_type   * new module parameters to set HeLD request attributes, parameters are exact_type, response_time, and location_type
 +
 +==== mqueue ====
 +
 +  * add support for db persistency
  
 ==== mqtt ==== ==== mqtt ====
Line 201: Line 241:
   * new config variable $fsn - forced send socket name   * new config variable $fsn - forced send socket name
   * add KEMI functions pvx.xavp_get_keys and pvx.xavp_getd   * add KEMI functions pvx.xavp_get_keys and pvx.xavp_getd
 +  * add $xavi(...) config variables implementation, same as $xavp but case insensitive for keys
 +  * new var $mts, return msg type as string
 +  * add vars to get the length for o-uri/r-uri/f-uri/t-uri username, $oUl, $rUl, $fUl, $tUl
  
 ==== p_usrloc ==== ==== p_usrloc ====
Line 227: Line 270:
 ==== rr ==== ==== rr ====
  
-  * exported record_route_preset_one() to KEMI+  * export record_route_preset_one() to KEMI
   * new function rr_next_hop_route(), return true if there is a route header for next hop address   * new function rr_next_hop_route(), return true if there is a route header for next hop address
   * new param sockname_mode, socket name is add to Path URI in 'sn' param   * new param sockname_mode, socket name is add to Path URI in 'sn' param
Line 240: Line 283:
   * add support for new T.38 options   * add support for new T.38 options
   * enable handling of PRACK requests   * enable handling of PRACK requests
 +  * add kemi support for block/unblock media/dtmf, and play/stop media functions
  
 ==== sdpops ==== ==== sdpops ====
  
-  * exported sdp with transport variants to KEMI+  * export sdp with transport variants to KEMI
  
 ==== siputils ==== ==== siputils ====
  
-  * contact encoding functions exported to KEMI+  * contact encoding functions export to KEMI 
 +  * new function contact_param_rm("param-name"), remove parameter by name from Contact header URI 
 +  * new function uri_param_rm(pname), remove parameter from request URI 
 +  * new function uri_param_any(param), check if r-uri has the param, with or without value 
  
 ==== sipcapture ==== ==== sipcapture ====
Line 273: Line 321:
   * export sql_result_get() to KEMI   * export sql_result_get() to KEMI
   * add functions to get null result value as empty or zer   * add functions to get null result value as empty or zer
 +
 +==== textops ====
 +
 +  * addfunctions to remove or test headers with var parameters
  
 ==== tcpops ==== ==== tcpops ====
Line 298: Line 350:
     - new selects: @tls.peer.raw_cert, @tls.peer.urlencoded_cert, @tls.my.raw_cert, @tls.my.urlencoded_cert     - new selects: @tls.peer.raw_cert, @tls.peer.urlencoded_cert, @tls.my.raw_cert, @tls.my.urlencoded_cert
   *  add select for tls verified cert chain (requires OpenSSL 1.1+)   *  add select for tls verified cert chain (requires OpenSSL 1.1+)
 +  * add support to link against static libraries in Makefile
 +
 +==== ims_charging ====
 +
 +  * add support for Application-Provided-Called-Party-Address AVP
 +  * add support for destination_host parameter, implementation was incomplete
  
 ==== ims_usrloc_pcscf ==== ==== ims_usrloc_pcscf ====
Line 332: Line 390:
  
   * KEMI function to get the RPCcommand response, shortcut to skip the pv get layer, can be useful for large values   * KEMI function to get the RPCcommand response, shortcut to skip the pv get layer, can be useful for large values
 +
 +==== kazoo ====
 +
 +  * add basic kemi support
  
 ==== keepalive ==== ==== keepalive ====
Line 346: Line 408:
 ==== kemix ==== ==== kemix ====
  
-  * exported functions to get dst-uri variants to KEMI +  * export functions to get dst-uri variants to KEMI 
-  * exported function to get next hop URI to KEMI+  * export function to get next hop URI to KEMI
   * convenience function KS.is_proto() to test many transport protocols with KEMI   * convenience function KS.is_proto() to test many transport protocols with KEMI
-  * exported get_conid() function to retrieve tcp connection id to KEMI+  * export get_conid() function to retrieve tcp connection id to KEMI
  
 ==== nathelper ==== ==== nathelper ====
Line 355: Line 417:
   * add new function set_alias_to_avp   * add new function set_alias_to_avp
   * add new parameter nat_addr_mode, to include/exlude reserved addresses in nat_uac_test()   * add new parameter nat_addr_mode, to include/exlude reserved addresses in nat_uac_test()
 +  * add optional set_contact_alias([trim]) parameter
  
 ==== nat_traversal ==== ==== nat_traversal ====
Line 408: Line 471:
 ==== Command line arguments ==== ==== Command line arguments ====
  
-  * new command line parameter --loadmodule=name, enable the option to load a module from command line +  * add --loadmodule=name, enable the option to load a module from command line 
-  * new command line parameter --modparam, to allow setting a module parameter via command line +  * add --modparam, to allow setting a module parameter via command line 
-  * new command line parameter --log-engine, to allow setting the log engine from command line+  * add --log-engine, to allow setting the log engine from command line 
 +  * add --debug=val command line parameter to control the value for debug global parameter as alternative to -d switch 
  
 ==== Interpreter ==== ==== Interpreter ====
Line 442: Line 507:
   * add core support to assign names to listen sockets   * add core support to assign names to listen sockets
   * KEMI suport for ARRAY and DICT types   * KEMI suport for ARRAY and DICT types
 +  * implementation for executing route blocks on send out events moved to onsend.c
  
 ==== kamailio.cfg ==== ==== kamailio.cfg ====
Line 449: Line 515:
     - define WITH_NAT     - define WITH_NAT
     - define WITH_RTPENGINE     - define WITH_RTPENGINE
-  * update IMS kamailio.cfg examples+  * set disable_sctp to yes 
 +  * update IMS kamailio.cfg examples (in other folder)
  
 ===== Tools ===== ===== Tools =====
Line 457: Line 524:
   * Makefile: add better support for EMACS   * Makefile: add better support for EMACS
   * Makefile: use pgk-config if xml2-config can not be found for certain modules   * Makefile: use pgk-config if xml2-config can not be found for certain modules
 +  * kemi: add script to generate mock api for kemi python testing
 +  * kemi: add support for invoking function pointers in tool
  
 ==== kamcmd ==== ==== kamcmd ====
Line 466: Line 535:
   * adjustment to RPC fifo file to match default naming   * adjustment to RPC fifo file to match default naming
   * try to locate RPC fifo file in /var/run/ or /run/ folders, to cope better with old or non-linux systems   * try to locate RPC fifo file in /var/run/ or /run/ folders, to cope better with old or non-linux systems
 +  * added pstrap command, use ps to get list of PIDs for Kamailio instance, instead of RPC core.psx
  
 ==== kamdbctl ==== ==== kamdbctl ====
Line 475: Line 545:
 ==== kamcli ==== ==== kamcli ====
  
-===== Documentation ===== 
- 
-Many fixes were done to the modules, missing parameter were added, wrong parameter or function names fixed and explanation or clarifications added. Furthermore many debug messages in the core and modules were extended, to help during analysing problems or bugs. The full details can be found in the Changelog or with the "git log" command. 
- 
-===== Bugfixes ===== 
- 
-Countless bugfixes were implemented for this release in core, tools and modules. Furthermore the code base was scanned with several static analyzers, to detect otherwise hard to find bugs. The full details can be found in the Changelog or with the "git log" command. 
features/new-in-5.4.x.txt · Last modified: 2020/07/09 14:00 by henningw