This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
features:new-in-5.5.x [2021/04/30 22:45] henningw |
features:new-in-5.5.x [2021/05/01 10:56] henningw |
||
---|---|---|---|
Line 18: | Line 18: | ||
===== New Modules ===== | ===== New Modules ===== | ||
- | ==== 1111 ==== | + | ==== sworker |
- | aaaa | + | New module to delegate sip message processing to a group of workers |
- | * https:// | + | * https:// |
+ | |||
+ | ==== lrkproxy ==== | ||
+ | |||
+ | New rtp relay module, use kernel based forwarding controlled via an external application | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | ==== jwt ==== | ||
+ | |||
+ | New module providing json web token generation and validation functions | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | ==== stirshaken ==== | ||
+ | |||
+ | New module adding support to implement STIR-Shaken authentication and verification functions (STI-AS/ | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | ==== lwsc ==== | ||
+ | |||
+ | New module adding websocket client connector for interaction with external system, not for usual SIP forwarding | ||
+ | |||
+ | * https:// | ||
===== New in existing Modules ===== | ===== New in existing Modules ===== | ||
Line 30: | Line 54: | ||
* add to-tag for locally generated replies | * add to-tag for locally generated replies | ||
* use sent reason phrase for locally generated replies | * use sent reason phrase for locally generated replies | ||
+ | * 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 | ||
+ | |||
+ | ==== 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 38: | 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/ | ||
==== cfgutils ==== | ==== cfgutils ==== | ||
* export route check functions to kemi | * export route check functions to kemi | ||
+ | |||
+ | ==== cfgt ==== | ||
+ | |||
+ | * logging improvements | ||
==== crypto ==== | ==== crypto ==== | ||
Line 49: | Line 95: | ||
==== corex ==== | ==== corex ==== | ||
- | * add rpc command shm.info | + | * add rpc command shm.info |
- | * add rpc command shm.stats | + | * add is_socket_name(sockname) config function |
==== ctl ==== | ==== ctl ==== | ||
- | * skip handling rpc commands if kamilio | + | * skip handling rpc commands if kamailio |
+ | |||
+ | ==== cplc ==== | ||
+ | |||
+ | * permanent contacts are not skipped by lookup anymore | ||
+ | |||
+ | ==== db_postgres ==== | ||
+ | |||
+ | * added parameter to control postgresql database connection parameters | ||
+ | |||
+ | ==== dmq ==== | ||
+ | |||
+ | * new parameter notification_channel to set the channel id for peer notifications | ||
+ | * 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 64: | Line 125: | ||
* logging improvements | * logging improvements | ||
* internal locking improvements | * internal locking improvements | ||
+ | * skip CSEQ updates for certain messages | ||
==== dispatcher ==== | ==== dispatcher ==== | ||
Line 71: | Line 133: | ||
* internal refactoring | * internal refactoring | ||
* add an attribute to preset the latency estimator | * add an attribute to preset the latency estimator | ||
- | * congestion control logic refactoring, | + | * congestion control logic refactoring, |
+ | * add test no-dns flag to skip ip matching for hostnames | ||
+ | * dispatcher add new algorithm 13, latency optimized round-robin with failover | ||
+ | |||
+ | ==== drouting ==== | ||
+ | |||
+ | * enable SRV DNS queries | ||
==== evapi ==== | ==== evapi ==== | ||
- | * export async_unicast() to kemi | + | * export async_unicast() and async_multicast() to kemi |
+ | |||
+ | ==== htable ==== | ||
+ | |||
+ | * improve DMQ synchronisation for hash table operations | ||
+ | |||
+ | ==== http_client ==== | ||
+ | |||
+ | * 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 ==== | ||
* set curl memory callbacks in module initialization | * set curl memory callbacks in module initialization | ||
+ | * add http_time pseudovariable | ||
+ | * disable HTTP/2 multiplexing | ||
+ | * fix build with older versionss of libcurl | ||
+ | * add curl_follow_redirect parameter | ||
==== imc ==== | ==== imc ==== | ||
Line 118: | Line 200: | ||
* internal refactoring | * internal refactoring | ||
+ | |||
+ | ==== jsonrpcs ==== | ||
+ | |||
+ | * export dispatch() function to kemi | ||
+ | |||
+ | ==== kemix ==== | ||
+ | |||
+ | * export function get_rcvadvip() and get_rcvadvport() | ||
+ | * export functions to get socket string and name | ||
+ | * add functions to get contact header uri | ||
+ | * export functions to get define values | ||
+ | * export get_srcuri() to kemi | ||
==== kex ==== | ==== kex ==== | ||
Line 130: | Line 224: | ||
* improvements in internal data structure passing to other modules | * improvements in internal data structure passing to other modules | ||
* prevent race condition when deleting a destination | * prevent race condition when deleting a destination | ||
+ | * improve module initialization logic | ||
==== log_custom ==== | ==== log_custom ==== | ||
* 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 143: | 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 157: | 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 | + | * export |
+ | * enforce limit in reload interval time, add reload_delta parameter to configure rate limit | ||
==== pike ==== | ==== pike ==== | ||
Line 166: | 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), | * add pike_check_ip(ipaddr), | ||
+ | |||
+ | ==== pipelimit ==== | ||
+ | |||
+ | * added pl_active() - return true if pipe is active | ||
==== pua ==== | ==== pua ==== | ||
Line 178: | Line 294: | ||
* new transformation {uri.saor} to get the sip aor (sip: | * new transformation {uri.saor} to get the sip aor (sip: | ||
* add xavp_slist_explode(), | * add xavp_slist_explode(), | ||
+ | * new variable $Rn - return receiving socket name | ||
+ | * new variable $defn(name), | ||
+ | * add $fsp, return send socket port, or 0 if $fs not set | ||
+ | * new transformations {s.after, | ||
+ | * new transformation class urialias, encode/ | ||
==== p_usrloc ==== | ==== p_usrloc ==== | ||
Line 186: | Line 307: | ||
* documentation improvements | * documentation improvements | ||
- | * add functionality to store advertised address instead of bind address in socket field, default is existing | + | * add functionality to store advertised address instead of bind address in socket field, default is existing |
+ | * allow taking expires value from xavp_cfg expires field | ||
==== rtpengine ==== | ==== rtpengine ==== | ||
* 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 | ||
+ | * 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 ==== | ||
- | * new function loose_route_mode(vmode), | + | * new function loose_route_mode(vmode), |
* use safer msg_ctx_id_t checks for asserting validity of cached param value | * use safer msg_ctx_id_t checks for asserting validity of cached param value | ||
Line 205: | Line 332: | ||
* extended check 4 (required headers) for uniqueness, Call-ID, CSeq, From and To have to present only once | * extended check 4 (required headers) for uniqueness, Call-ID, CSeq, From and To have to present only once | ||
+ | |||
+ | ==== secsipid ==== | ||
+ | |||
+ | * add parameter to set url file cache options | ||
+ | * add secsipid_check_identity_pubkey(pubkeyVal) function to check the identity header validity with a public key | ||
+ | * new function secsipid_get_url(url, | ||
+ | * improve build process by using pkg-config | ||
+ | * redesign to use per-process API functions | ||
+ | |||
+ | ==== sl ==== | ||
+ | |||
+ | * add new function send_reply_mode() to control the execution mode | ||
+ | |||
+ | ==== smsops ==== | ||
+ | |||
+ | * use proper length for concatenated SMS according to TS 23.040, section 9.2.3.16 | ||
+ | * fix parsing of validity period | ||
==== sipdump ==== | ==== sipdump ==== | ||
Line 221: | Line 365: | ||
==== textops ==== | ==== textops ==== | ||
- | * correct behaviour for append_hf, adds header after last header | + | * correct behaviour for append_hf, adds header after last header |
+ | * added functions to manipulate the message body in the exported api | ||
+ | * add ends_with() function | ||
+ | * add search_str(), | ||
+ | * added str_find and str_ifind() functions to find a string inside another one | ||
==== topoh ==== | ==== topoh ==== | ||
Line 231: | Line 379: | ||
==== topos ==== | ==== topos ==== | ||
- | * update to-tag and rr on reply even to-tag is already set | + | * update to-tag and record-route |
* 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 ==== | ||
* support compilation without deprecated OpenSSL APIs | * support compilation without deprecated OpenSSL APIs | ||
+ | * export function KSR.tls.cget(aname) to kemi | ||
+ | * add ca_path config option to configure tls certificate paths | ||
==== tm ==== | ==== tm ==== | ||
Line 242: | Line 399: | ||
* logging improvements | * logging improvements | ||
* do not add duplicate headers in local requests | * do not add duplicate headers in local requests | ||
- | * Instead of passing the to be evaluated reply as the " | + | * Instead of passing the to be evaluated reply as the " |
+ | * fix ordering of contact loading after proportional loading extensions | ||
+ | * export t_relay_to_xxx protocol functions to kemi | ||
+ | * export t_relay_to_< | ||
+ | * correct 200 OK processing by proxy after a final non-2xx reply | ||
+ | * implemented t_uac_wait_block rpc command | ||
+ | * new parameter reply_relay_mode, | ||
==== tmx ==== | ==== tmx ==== | ||
Line 264: | Line 427: | ||
* allow empty contact addr in rpc add command for uacreg, it has to be set to . | * allow empty contact addr in rpc add command for uacreg, it has to be set to . | ||
* logging and documentation improvements | * logging and documentation improvements | ||
+ | * new rpc command uac.reg_unregister to unregister records | ||
+ | |||
+ | ==== uac_redirect ==== | ||
+ | |||
+ | * Make default q-value configurable, | ||
==== usrloc ==== | ==== usrloc ==== | ||
Line 274: | 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 282: | Line 455: | ||
* add support for histogram metrics | * add support for histogram metrics | ||
+ | |||
+ | ==== xmlrpc ==== | ||
+ | |||
+ | * use < | ||
===== New in Core ===== | ===== New in Core ===== | ||
Line 288: | 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 | ||
==== SIP parser ==== | ==== SIP parser ==== | ||
Line 304: | Line 477: | ||
==== Command line arguments ==== | ==== Command line arguments ==== | ||
- | * aaa | + | * 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 | + | * export |
+ | * 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: | ||
+ | * add $envn(name) - return environment variable as int number | ||
+ | * add selval(evalexpr, | ||
+ | * new core directive modparamx() alternative, | ||
- | ==== 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 316: | Line 495: | ||
* new parameter ipv6_hex_style, | * new parameter ipv6_hex_style, | ||
* new parameter sip_parser_mode, | * new parameter sip_parser_mode, | ||
+ | * 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 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, | * add kemi function hdr.match_content(hname, | ||
+ | * 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 333: | 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 ==== | ||
* set load_backends to 1 for permissions module, the config uses only address table | * set load_backends to 1 for permissions module, the config uses only address table | ||
+ | * improve checks related to SIP scanning tools | ||
===== Tools ===== | ===== Tools ===== | ||
* pdbt: use more relaxed permission when creating files | * pdbt: use more relaxed permission when creating files | ||
+ | * misc/ | ||
+ | * support for fuzzing integration based on oss-fuzz | ||
+ | * use github worker for continous integration instead of travis-ci | ||
==== kamcmd ==== | ==== kamcmd ==== | ||
Line 346: | 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 ==== |