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.5.x [2021/04/30 20:34] henningw created |
features:new-in-5.5.x [2021/05/01 10:56] henningw |
||
---|---|---|---|
Line 18: | Line 18: | ||
===== New Modules ===== | ===== New Modules ===== | ||
- | ==== 111 ==== | + | ==== 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 ===== | ||
- | ==== 111 ==== | + | ==== acc ==== |
- | * aaa | + | * add to-tag for locally generated replies |
- | * bbb | + | * 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 ==== | ||
+ | |||
+ | * add VENDOR() definition if the freeradius-client library does not contain one already | ||
+ | |||
+ | ==== async ==== | ||
+ | |||
+ | * fix async_ms_route and export it to kemi | ||
+ | |||
+ | ==== carrierroute ==== | ||
+ | |||
+ | * replace existing warning mechanism related to carrier/ | ||
+ | |||
+ | ==== cfgutils ==== | ||
+ | |||
+ | * export route check functions to kemi | ||
+ | |||
+ | ==== cfgt ==== | ||
+ | |||
+ | * logging improvements | ||
+ | |||
+ | ==== crypto ==== | ||
+ | |||
+ | * add crypto_hmac_sha256() function | ||
+ | |||
+ | ==== corex ==== | ||
+ | |||
+ | * add rpc command shm.info and shm.stats | ||
+ | * add is_socket_name(sockname) config function | ||
+ | |||
+ | ==== ctl ==== | ||
+ | |||
+ | * 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 ==== | ||
+ | |||
+ | * 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 ==== | ||
+ | |||
+ | * do not replicate socket if the field is not set | ||
+ | |||
+ | ==== dialog ==== | ||
+ | |||
+ | * logging improvements | ||
+ | * internal locking improvements | ||
+ | * skip CSEQ updates for certain messages | ||
+ | |||
+ | ==== dispatcher ==== | ||
+ | |||
+ | * update state if sending keepalive OPTIONS fails | ||
+ | * sync on updating last used fields | ||
+ | * internal refactoring | ||
+ | * add an attribute to preset the latency estimator | ||
+ | * 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 ==== | ||
+ | |||
+ | * 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 ==== | ||
+ | |||
+ | * 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 ==== | ||
+ | |||
+ | * jump over printing error log messages when list commands are ok | ||
+ | |||
+ | ==== ims_charging ==== | ||
+ | |||
+ | * use correct default User-Equipment-Info-Type AVP format | ||
+ | |||
+ | ==== ims_usrloc_scscf ==== | ||
+ | |||
+ | * add a new contact state, udomain/ | ||
+ | * add a new parameter for reverse search in get_pcontact | ||
+ | |||
+ | ==== ims_registrar_scscf ==== | ||
+ | |||
+ | * added a new registrar event, notification improvements | ||
+ | * update_contacts, | ||
+ | * fix extraction of received host in save() | ||
+ | |||
+ | ==== ims_ipsec_pcscf ==== | ||
+ | |||
+ | * add a new function parameter to delete unused tunnels before creation of new ipsec connection | ||
+ | * add new global parameters for ipsec listen addresses. | ||
+ | * extension related to reverse search functionality | ||
+ | |||
+ | ==== ims_qos ==== | ||
+ | |||
+ | * extension related to reverse search functionality | ||
+ | |||
+ | ==== jansson ==== | ||
+ | |||
+ | * Add en-/decode to/from xavp function | ||
+ | * internal refactoring | ||
+ | |||
+ | ==== janssonrpcc ==== | ||
+ | |||
+ | * 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 ==== | ||
+ | |||
+ | * use mutex to sync the mod mem stats rpc commands | ||
+ | * add pkg.info rpc command, to get details about pkg manager | ||
+ | * internal refactoring and optimization | ||
+ | |||
+ | ==== keepalive ==== | ||
+ | |||
+ | * logging improvements | ||
+ | * improvements in internal data structure passing to other modules | ||
+ | * prevent race condition when deleting a destination | ||
+ | * improve module initialization logic | ||
+ | |||
+ | ==== log_custom ==== | ||
+ | |||
+ | * 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 ==== | ||
+ | |||
+ | * fix_nated_sdp added support for a=rtcp param RFC3605 | ||
+ | * improve logging | ||
+ | |||
+ | ==== ndb_redis ==== | ||
+ | |||
+ | * fix cluster support | ||
+ | * logging improvements | ||
+ | * add result check when reconnecting | ||
+ | |||
+ | ==== mohqueue ==== | ||
+ | |||
+ | * add support for ptime matching | ||
+ | |||
+ | ==== misc_radius ==== | ||
+ | |||
+ | * add VENDOR() definition if the freeradius-client library does not contain one already | ||
+ | |||
+ | ==== msrp ==== | ||
+ | |||
+ | * proper parsing ipv6 host part in uri | ||
+ | |||
+ | ==== mqueue ==== | ||
+ | |||
+ | * use HTTP status codes for rpc | ||
+ | * add rpc mqueue.sizes to return queue sizes | ||
+ | * add more rpc features | ||
+ | |||
+ | ==== path ==== | ||
+ | |||
+ | * add option to set received parameter name | ||
+ | |||
+ | ==== permissions ==== | ||
+ | |||
+ | * export allow_trusted() to kemi | ||
+ | * enforce limit in reload interval time, add reload_delta parameter to configure rate limit | ||
+ | |||
+ | ==== pike ==== | ||
+ | |||
+ | * add rpc function pike.top, support for case insensitive match of parameter | ||
+ | * add pike_check_ip(ipaddr), | ||
+ | |||
+ | ==== pipelimit ==== | ||
+ | |||
+ | * added pl_active() - return true if pipe is active | ||
+ | |||
+ | ==== pua ==== | ||
+ | |||
+ | * update_version_puadb() use pres_id to select record | ||
+ | * fix send_publish() behavior on PUA_DB_ONLY | ||
+ | |||
+ | ==== pv ==== | ||
+ | |||
+ | * new transformation {uri.suri} to get the simple routing uri, keep only transport parameter, if exists | ||
+ | * new transformation {uri.duri} to get the uri needed for destination address (e.g., sip: | ||
+ | * new transformation {uri.saor} to get the sip aor (sip: | ||
+ | * 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 ==== | ||
+ | |||
+ | * reworking of mdb_availability_control functionality | ||
+ | |||
+ | ==== registrar ==== | ||
+ | |||
+ | * documentation improvements | ||
+ | * add functionality to store advertised address instead of bind address in socket field, default is existing behavior | ||
+ | * allow taking expires value from xavp_cfg expires field | ||
+ | |||
+ | ==== rtpengine ==== | ||
+ | |||
+ | * 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 ==== | ||
+ | |||
+ | * new function loose_route_mode(vmode), | ||
+ | * use safer msg_ctx_id_t checks for asserting validity of cached param value | ||
+ | |||
+ | ==== rtp_media_server ==== | ||
+ | |||
+ | * update to mediastreamer 4.4.0 | ||
+ | * state transition improvement, | ||
+ | |||
+ | ==== sanity ==== | ||
+ | |||
+ | * 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 ==== | ||
+ | |||
+ | * if drop executed in event route, skip writing to file | ||
+ | * refactoring to support more storage engines, like writing UDP pcap files or adding P-KSR-SIPDump header | ||
+ | |||
+ | ==== siptrace ==== | ||
+ | |||
+ | * exec event_route[siptrace: | ||
+ | |||
+ | ==== sqlops ==== | ||
+ | |||
+ | * new modparam results_maxsize, | ||
+ | |||
+ | ==== textops ==== | ||
+ | |||
+ | * correct behaviour for append_hf, adds header after last header occurrence | ||
+ | * 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 ==== | ||
+ | |||
+ | * remove the Via cookie when skipping topoh via event route | ||
+ | * event route is now executed with parsed sip message to be sent out | ||
+ | * execute msg-outgoing and msg-sending event routes, similar to topos module | ||
+ | |||
+ | ==== topos ==== | ||
+ | |||
+ | * update to-tag and record-route on reply even to-tag is already set | ||
+ | * 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 ==== | ||
+ | |||
+ | * 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 ==== | ||
+ | |||
+ | * logging improvements | ||
+ | * do not add duplicate headers in local requests | ||
+ | * 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 ==== | ||
+ | |||
+ | * safety check of expected route blocks for using $T_*() variables | ||
+ | * Allow $T_branch(flags) in onreply_route | ||
+ | |||
+ | ==== textops ==== | ||
+ | |||
+ | * added change_reply_status_code() function to change only the status code for non-2xx replies | ||
+ | |||
+ | ==== topos ==== | ||
+ | |||
+ | * add two new modes for topology hiding to preserve Contact user necessary for certain interconnection providers | ||
+ | |||
+ | ==== uac ==== | ||
+ | |||
+ | * added uac_event_callback for kemi | ||
+ | * restore first display name then uri with dialog callback | ||
+ | * support to set contact address in uacreg database record, enable per registration contact address | ||
+ | * allow empty contact addr in rpc add command for uacreg, it has to be set to . | ||
+ | * logging and documentation improvements | ||
+ | * new rpc command uac.reg_unregister to unregister records | ||
+ | |||
+ | ==== uac_redirect ==== | ||
+ | |||
+ | * Make default q-value configurable, | ||
+ | |||
+ | ==== usrloc ==== | ||
+ | |||
+ | * export ka_logmsg parameter to kemi | ||
+ | * print Route header name in keepalive when Path is present | ||
+ | * export modparam to set keepalive timeout | ||
+ | * use unsigned int for rpc output for the fields having this type | ||
+ | * do keepalive-based contact expire on internal callback | ||
+ | * set last keepalive value to current time on new records | ||
+ | * 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 ==== | ||
+ | |||
+ | * internal improvements for xpath search function | ||
+ | |||
+ | ==== xhttp_prom ==== | ||
+ | |||
+ | * add support for histogram metrics | ||
+ | |||
+ | ==== xmlrpc ==== | ||
+ | |||
+ | * use < | ||
===== New in Core ===== | ===== New in Core ===== | ||
- | * aaa | + | * add websocket event support |
- | * bbb | + | * several build infrastructure improvements for MacOS with clang compiler |
+ | * support for gcc 10.x compiler in build infrastructure | ||
+ | * build improvements for FreeBSD | ||
+ | * remove internal abort() calls in certain lump handling related functions | ||
+ | * improve http/2 support, support also requests, internal refactoring | ||
+ | * logging improvements for core utility functions, DB1 API and other | ||
+ | |||
+ | ==== SIP parser ==== | ||
+ | |||
+ | * simplify implementation, | ||
+ | * logging improvements | ||
==== 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 | ||
+ | |||
+ | ==== Config interpreter ==== | ||
+ | |||
+ | * 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 event_route[core: | ||
+ | * add $envn(name) - return environment variable as int number | ||
+ | * add selval(evalexpr, | ||
+ | * new core directive modparamx() alternative, | ||
- | ==== Interpreter | + | ==== Config parameters |
- | ==== Parameters ==== | + | * add sip_parser_log core parameter to log parser error with a certain log level |
+ | * add hdr_name_extra_chars parameter to allow specific characters in header names | ||
+ | * new parameter ipv6_hex_style, | ||
+ | * 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 | ||
- | * aaa | + | ==== Internal functions ==== |
- | ==== Functions ==== | + | * add utility helper functions to search variants of str in another str |
+ | * add parser wrapper function to parse str header name | ||
+ | * 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 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 ==== | ||
- | * aaa | + | * |
==== Architecture ==== | ==== Architecture ==== | ||
- | * aaa | + | * 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 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 ==== | ||
- | * aaa | + | * set load_backends to 1 for permissions module, the config uses only address table |
+ | * improve checks related to SIP scanning tools | ||
===== Tools ===== | ===== Tools ===== | ||
- | * aaa | + | * 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 68: | 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 ==== | ||
- | * aaa | + | * proper id format for dbtext records |
+ | * increased contact_addr_len entity to 255, e.g. for IMS use-cases | ||
==== kamcli ==== | ==== kamcli ==== | ||