User Tools

Site Tools


features:new-in-5.5.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 Both sides next revision
features:new-in-5.5.x [2021/05/01 09:50]
henningw
features:new-in-5.5.x [2021/05/01 10:56]
henningw
Line 23: Line 23:
  
   * https://www.kamailio.org/docs/modules/5.5.x/modules/sworker.html   * https://www.kamailio.org/docs/modules/5.5.x/modules/sworker.html
 +
 +==== lrkproxy ====
 +
 +New rtp relay module, use kernel based forwarding controlled via an external application
 +
 +  * https://www.kamailio.org/docs/modules/5.5.x/modules/lrkproxy.html
 +
 +==== jwt ====
 +
 +New module providing json web token generation and validation functions
 +
 +  * https://www.kamailio.org/docs/modules/5.5.x/modules/jwt.html
 +
 +==== stirshaken ====
 +
 +New module adding support to implement STIR-Shaken authentication and verification functions (STI-AS/VS)
 +   
 +  * https://www.kamailio.org/docs/modules/5.5.x/modules/stirshaken.html
 +   
 +==== lwsc ====
 +
 +New module adding websocket client connector for interaction with external system, not for usual SIP forwarding
 +
 +  * https://www.kamailio.org/docs/modules/5.5.x/modules/lwsc.html
  
 ===== New in existing Modules ===== ===== New in existing Modules =====
Line 32: Line 56:
   * new parameter acc_extra_nullable to set NULL for variables that are $null   * new parameter acc_extra_nullable to set NULL for variables that are $null
   * adapt database scheme to support for acc_extra_nullable and cdr_extra_nullable   * adapt database scheme to support for acc_extra_nullable and cdr_extra_nullable
 +
 +==== app_lua ====
 +
 +  * improve support for functions with many parameter
 +
 +==== app_python3 ====
 +
 +  * improve thread handling related to deprecated APIs
 +
 +==== app_jsdt ====
 +
 +  * duktape interpreter upgraded to v2.6.0
  
 ==== auth_radius ==== ==== auth_radius ====
Line 40: Line 76:
  
   * fix async_ms_route and export it to kemi   * fix async_ms_route and export it to kemi
 +
 +==== carrierroute ====
 +
 +  * replace existing warning mechanism related to carrier/domain probabilities
  
 ==== cfgutils ==== ==== cfgutils ====
Line 55: Line 95:
 ==== corex ==== ==== corex ====
  
-  * add rpc command shm.info +  * add rpc command shm.info and shm.stats 
-  * add rpc command shm.stats+  * add is_socket_name(sockname) config function
  
 ==== ctl ==== ==== ctl ====
  
   * skip handling rpc commands if kamailio is in shutdown phase   * skip handling rpc commands if kamailio is in shutdown phase
 +
 +==== cplc ====
 +
 +  * permanent contacts are not skipped by lookup anymore
 +
 +==== db_postgres ====
 +
 +  * added parameter to control postgresql database connection parameters
  
 ==== dmq ==== ==== dmq ====
Line 66: Line 114:
   * new parameter notification_channel to set the channel id for peer notifications   * new parameter notification_channel to set the channel id for peer notifications
   * use more standard terms in documentation   * use more standard terms in documentation
 +  * add support for additional transport protocols for DMQ, like TCP or TLS
 +  * add support to specify a notification address multiple times, to be able to specify multiple servers in the configuration
  
 ==== dmq_usrloc ==== ==== dmq_usrloc ====
Line 102: Line 152:
  
   * add http_client_get() function to do explicit GET request with headers (and body)   * add http_client_get() function to do explicit GET request with headers (and body)
 +  * improve http_client_request to include default clientcert, clientkey etc..
 +  * http_client_request (api) content-type header support, including a content-type argument implemented as new function 
  
 ==== http_async_client ==== ==== http_async_client ====
Line 107: Line 159:
   * set curl memory callbacks in module initialization   * set curl memory callbacks in module initialization
   * add http_time pseudovariable   * add http_time pseudovariable
 +  * disable HTTP/2 multiplexing
 +  * fix build with older versionss of libcurl
 +  * add curl_follow_redirect parameter
  
 ==== imc ==== ==== imc ====
Line 148: Line 203:
 ==== jsonrpcs ==== ==== jsonrpcs ====
  
-  * exported dispatch() function to kemi+  * export dispatch() function to kemi
  
 ==== kemix ==== ==== kemix ====
  
-  * exported function get_rcvadvip() and get_rcvadvport() +  * export function get_rcvadvip() and get_rcvadvport() 
-  * exported functions to get socket string and name+  * export functions to get socket string and name
   * add functions to get contact header uri   * add functions to get contact header uri
-  * exported functions to get define values+  * export functions to get define values 
 +  * export get_srcuri() to kemi
  
 ==== kex ==== ==== kex ====
Line 173: Line 229:
  
   * print to stderror if sending log message fails   * print to stderror if sending log message fails
 +
 +==== lost ====
 +
 +  * add Geolocation header value list support
 +  * new features and attributes for LoST redirect, dynamic HELD url resolving and LoST NAPTR
 +
  
 ==== nathelper ==== ==== nathelper ====
  
   * fix_nated_sdp added support for a=rtcp param RFC3605   * fix_nated_sdp added support for a=rtcp param RFC3605
 +  * improve logging
  
 ==== ndb_redis ==== ==== ndb_redis ====
Line 182: Line 245:
   * fix cluster support   * fix cluster support
   * logging improvements   * logging improvements
 +  * add result check when reconnecting
 +
 +==== mohqueue ====
 +
 +  * add support for ptime matching
  
 ==== misc_radius ==== ==== misc_radius ====
Line 196: Line 264:
   * add rpc mqueue.sizes to return queue sizes   * add rpc mqueue.sizes to return queue sizes
   * add more rpc features   * add more rpc features
 +
 +==== path ====
 +
 +  * add option to set received parameter name
  
 ==== permissions ==== ==== permissions ====
  
-  * exported allow_trusted() to kemi+  * export allow_trusted() to kemi
   * enforce limit in reload interval time, add reload_delta parameter to configure rate limit   * enforce limit in reload interval time, add reload_delta parameter to configure rate limit
  
Line 206: Line 278:
   * add rpc function pike.top, support for case insensitive match of parameter   * add rpc function pike.top, support for case insensitive match of parameter
   * add pike_check_ip(ipaddr), check the parameter ipaddr in the pike tree   * add pike_check_ip(ipaddr), check the parameter ipaddr in the pike tree
 +
 +==== pipelimit ====
 +
 +  * added pl_active() - return true if pipe is active
  
 ==== pua ==== ==== pua ====
Line 220: Line 296:
   * new variable $Rn - return receiving socket name   * new variable $Rn - return receiving socket name
   * new variable $defn(name), return the value of a define converted to number   * new variable $defn(name), return the value of a define converted to number
 +  * add $fsp, return send socket port, or 0 if $fs not set
 +  * new transformations {s.after,char} and {s.before,char}
 +  * new transformation class urialias, encode/decode uri alias values (addr~port~proto)
  
 ==== p_usrloc ==== ==== p_usrloc ====
Line 235: Line 314:
   * support new codec flags, adds explicit support for codec-set and codec-except.   * support new codec flags, adds explicit support for codec-set and codec-except.
   * add CRC32 hash algorithm for message hashing   * add CRC32 hash algorithm for message hashing
-  * query round-trip-time per call leg +  * query round-trip-time per call leg 
 +  * improve IPv6 handling for database mode and in other situations 
 +  * improve node fallback if node ran out of ports 
 +  * improve node connection for any skipped nodes due to dns or connection issues on kamailio startup
  
 ==== rr ==== ==== rr ====
Line 256: Line 338:
   * add secsipid_check_identity_pubkey(pubkeyVal) function to check the identity header validity with a public key   * add secsipid_check_identity_pubkey(pubkeyVal) function to check the identity header validity with a public key
   * new function secsipid_get_url(url, ovar), convenience function to get the content of an URL and store the result   * new function secsipid_get_url(url, ovar), convenience function to get the content of an URL and store the result
 +  * improve build process by using pkg-config
 +  * redesign to use per-process API functions
  
 ==== sl ==== ==== sl ====
Line 264: Line 348:
  
   * use proper length for concatenated SMS according to TS 23.040, section 9.2.3.16   * use proper length for concatenated SMS according to TS 23.040, section 9.2.3.16
 +  * fix parsing of validity period
  
 ==== sipdump ==== ==== sipdump ====
Line 282: Line 367:
   * correct behaviour for append_hf, adds header after last header occurrence   * correct behaviour for append_hf, adds header after last header occurrence
   * added functions to manipulate the message body in the exported api   * added functions to manipulate the message body in the exported api
 +  * add ends_with() function
 +  * add search_str(), similar to search(), but performs the regex match over the parameter
 +  * added str_find and str_ifind() functions to find a string inside another one
  
 ==== topoh ==== ==== topoh ====
Line 291: Line 379:
 ==== topos ==== ==== topos ====
  
-  * update to-tag and rr on reply even to-tag is already set+  * update to-tag and record-route on reply even to-tag is already set
   * store branch record before dialog record   * store branch record before dialog record
 +  * added rr_update modparam, to control if record-route should be updated for requests within dialog
 +  * handle 100 response completely, as they might be needed from other modules
 +
 +==== topos_redis ====
 +
 +  * do record-route update for requests within dialog based of flags
 +  * support SUBSCRIBE dialogs
  
 ==== tls ==== ==== tls ====
Line 298: Line 393:
   * support compilation without deprecated OpenSSL APIs   * support compilation without deprecated OpenSSL APIs
   * export function KSR.tls.cget(aname) to kemi   * export function KSR.tls.cget(aname) to kemi
 +  * add ca_path config option to configure tls certificate paths
  
 ==== tm ==== ==== tm ====
Line 308: Line 404:
   * export t_relay_to_<proto>(host, port) functions to kemi   * export t_relay_to_<proto>(host, port) functions to kemi
   * correct 200 OK processing by proxy after a final non-2xx reply   * correct 200 OK processing by proxy after a final non-2xx reply
 +  * implemented t_uac_wait_block rpc command
 +  * new parameter reply_relay_mode, default is 1, new behavior
  
 ==== tmx ==== ==== tmx ====
Line 330: Line 428:
   * logging and documentation improvements   * logging and documentation improvements
   * new rpc command uac.reg_unregister to unregister records   * new rpc command uac.reg_unregister to unregister records
 +
 +==== uac_redirect ====
 +
 +  * Make default q-value configurable, default value is the existing one
  
 ==== usrloc ==== ==== usrloc ====
Line 340: Line 442:
   * set last keepalive value to current time on new records   * set last keepalive value to current time on new records
   * also send keepalive over ws and wss connections   * also send keepalive over ws and wss connections
 +  * new parameter load_rank, allow to set the rank of the child to load the location records, default is current behavior
 +
 +==== xhttp ====
 +
 +  * add kemi funtion to return $hu, http uri
  
 ==== xhttp_server ==== ==== xhttp_server ====
Line 348: Line 455:
  
   * add support for histogram metrics   * add support for histogram metrics
 +
 +==== xmlrpc ====
 +
 +  * use <nil/> for null string values
  
 ===== New in Core ===== ===== New in Core =====
Line 354: Line 465:
   * several build infrastructure improvements for MacOS with clang compiler   * several build infrastructure improvements for MacOS with clang compiler
   * support for gcc 10.x compiler in build infrastructure   * support for gcc 10.x compiler in build infrastructure
-  * add a global flag in shared memory to detect server shutdown 
   * build improvements for FreeBSD   * build improvements for FreeBSD
   * remove internal abort() calls in certain lump handling related functions   * remove internal abort() calls in certain lump handling related functions
   * improve http/2 support, support also requests, internal refactoring   * improve http/2 support, support also requests, internal refactoring
   * logging improvements for core utility functions, DB1 API and other   * logging improvements for core utility functions, DB1 API and other
-  * relocation and refactoring on core ip addr handling code 
-  * Zero terminate str copies made with pkg_str_dup() and shm_str_dup() 
-  * Refactor tcp flags to enum, add more typedefs 
-  * Improvements in DNS support for NAPTR records 
-  * add helper function to parse all contact headers to parser 
-  * add functionality to delegate sip processing to a group of workers 
-  * improve signal handling from system 
  
 ==== SIP parser ==== ==== SIP parser ====
Line 375: Line 478:
  
   * new command line parameter --cfg-print to output the config file by evaluating includes ifdefs, subst and define pre-processor directive   * new command line parameter --cfg-print to output the config file by evaluating includes ifdefs, subst and define pre-processor directive
 +  * add --atexit=val cli parameter, to skip atexit callbacks execution from external libraries, default is existing behavior
  
-==== Interpreter ====+==== Config interpreter ====
  
-  * exported core route function to kemi+  * export core route function to kemi
   * new preprocessor directive #!defenv ID=ENVVAR, define an ID to the value of an environment variable with the name ENVVAR, also possible to use #!defenv ENVVAR   * new preprocessor directive #!defenv ID=ENVVAR, define an ID to the value of an environment variable with the name ENVVAR, also possible to use #!defenv ENVVAR
   * new event_route[core:pre-routing], executed before running config script for SIP messages, if received from the network     * new event_route[core:pre-routing], executed before running config script for SIP messages, if received from the network  
 +  * add $envn(name) - return environment variable as int number
 +  * add selval(evalexpr, valexp1, valexpr2) to return second or third parameter depending on first parameter evaluation
 +  * new core directive modparamx() alternative, where all its parameters are evaluated for config script variables
  
-==== Parameters ====+==== Config parameters ====
  
   * add sip_parser_log core parameter to log parser error with a certain log level   * add sip_parser_log core parameter to log parser error with a certain log level
Line 390: Line 497:
   * add local_rport parameter, similar to add_local_rport() but set globally   * add local_rport parameter, similar to add_local_rport() but set globally
   * new parameter async_workers_group to define groups of async worker processes   * new parameter async_workers_group to define groups of async worker processes
 +  * new parameters to enable waiting for child one worker initialization
  
-==== Functions ====+==== Internal functions ====
  
   * add utility helper functions to search variants of str in another str   * add utility helper functions to search variants of str in another str
   * add parser wrapper function to parse str header name   * add parser wrapper function to parse str header name
   * add kemi function hdr.match_content(hname, op, mval, hidx)   * add kemi function hdr.match_content(hname, op, mval, hidx)
 +  * add helper function to parse all contact headers
 +  * add functionality to delegate sip processing to a group of workers
   * add tcp helper function to send data over ws/wss connection   * add tcp helper function to send data over ws/wss connection
   * add utility helper function to search a token before an end pointer   * add utility helper function to search a token before an end pointer
 +  * add xavu_serialize_fields function
 +  * add functions to shm-duplicate str in a block
 +  * add module version control function
  
 ==== Memory Managers ==== ==== Memory Managers ====
Line 407: Line 520:
   * further migration of many modules to use core SHM_MEM_ERROR and PKG_MEM_ERROR defines   * further migration of many modules to use core SHM_MEM_ERROR and PKG_MEM_ERROR defines
   * add CAP_CHOWN capability to Kamailio systemd service files to allow chown needed for some modules   * add CAP_CHOWN capability to Kamailio systemd service files to allow chown needed for some modules
 +  * add a global flag in shared memory to detect server shutdown
 +  * relocation and refactoring on core ip addr handling code
 +  * Zero terminate str copies made with pkg_str_dup() and shm_str_dup()
 +  * Refactor tcp flags to enum, add more typedefs
 +  * Improvements in DNS support for NAPTR records
 +  * improve signal handling from system
 +  * increase network interface handling buffer from 8kb to 32kb, improve logging
 +  * improve automatic binding for IPv6 addresses
 +  * new option BUILD_NEW_LOCAL_VIA to recreate the local via
 +  * improve to tag suffix generation to use more input values for randomness
  
 ==== kamailio.cfg ==== ==== kamailio.cfg ====
Line 417: Line 540:
   * pdbt: use more relaxed permission when creating files   * pdbt: use more relaxed permission when creating files
   * misc/tools/kemi: lua tools useful for using Kamailio with KEMI Lua scripts   * misc/tools/kemi: lua tools useful for using Kamailio with KEMI Lua scripts
 +  * support for fuzzing integration based on oss-fuzz
 +  * use github worker for continous integration instead of travis-ci
  
 ==== kamcmd ==== ==== kamcmd ====
Line 422: Line 547:
 ==== kamctl ==== ==== kamctl ====
  
-  * aaa+  * option for rpc command to replace tokens in parameters 
 +  * use tm.t_uac_wait_block rpc for ping command 
 +  * added srv debug subcommand to control server debug level
  
 ==== kamdbctl ==== ==== kamdbctl ====
features/new-in-5.5.x.txt · Last modified: 2021/05/05 16:22 by miconda