features:new-in-devel
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
features:new-in-devel [2016/02/28 17:14] – miconda | features:new-in-devel [2020/11/05 11:25] (current) – [New in existing Modules] linuxmaniac | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Kamailio SIP Server | + | ====== Kamailio SIP Server - New Features in Devel Version ====== |
- | **Current devel version will be numbered | + | **Current devel version will be numbered |
<fc #0000FF> | <fc #0000FF> | ||
- | **Previous devel version was 4.3.x (released | + | **Previous devel, current stable, |
</fc> | </fc> | ||
- | * <fc # | + | * <fc # |
<fc # | <fc # | ||
Line 12: | Line 12: | ||
===== New Modules ===== | ===== New Modules ===== | ||
- | ==== cfgt ==== | + | ===== New in existing |
- | + | ||
- | * reports config execution for unit test evaluation | + | |
- | * http:// | + | |
- | + | ||
- | ==== crypto ==== | + | |
- | + | ||
- | * cryptographic functions for use in config file | + | |
- | * http:// | + | |
- | + | ||
- | ==== http_async_client ==== | + | |
- | + | ||
- | * async http queries using curl library | + | |
- | * http:// | + | |
- | + | ||
- | ==== http_client ==== | + | |
- | + | ||
- | * http queries using curl library | + | |
- | * http:// | + | |
- | + | ||
- | ==== ims_dialog ==== | + | |
- | + | ||
- | * rename of dialog_ng | + | |
- | * http:// | + | |
- | + | ||
- | ==== log_custom ==== | + | |
- | + | ||
- | * send log messages to custom backend | + | |
- | * http:// | + | |
- | + | ||
- | ==== log_systemd ==== | + | |
- | + | ||
- | * send log messages to systemd journal | + | |
- | * http:// | + | |
- | + | ||
- | ==== smsops ==== | + | |
- | + | ||
- | * sms operations for sip messages | + | |
- | * http:// | + | |
- | + | ||
- | ==== statsc ==== | + | |
- | + | ||
- | * statistics collector providing reports | + | |
- | * http:// | + | |
- | + | ||
- | ===== New in Old Modules ===== | + | |
- | + | ||
- | ==== acc ==== | + | |
- | + | ||
- | * new **acc_prepare_always** parameter to allow preparation of the request no matter if the acc_prepare_flag is set at the moment of the transaction creation. See [[http:// | + | |
- | + | ||
- | ==== acc_radius ==== | + | |
- | + | ||
- | * added radius time mode parameter: rad_time_mode - format can be set to seconds.microseconds | + | |
- | + | ||
- | ==== app_lua ==== | + | |
- | + | ||
- | * export registrar.lookup_to_dset to app_lua interface | + | |
- | * export many sdpops functions to LUA | + | |
- | + | ||
- | ==== async ==== | + | |
- | + | ||
- | * module timer processes based on workers parameter | + | |
- | + | ||
- | === auth_radius === | + | |
- | + | ||
- | * append_realm_to_username parameter - allows the unmolested digest username to be passed to RADIUS in the User-Name attribute | + | |
- | + | ||
- | ==== carrierroute ==== | + | |
- | + | ||
- | * addind db_load_description parameter | + | |
- | * toggle on/off loading in memory the description column in the carrierroute/ | + | |
- | + | ||
- | ==== cdp ==== | + | |
- | + | ||
- | * added class of auth session to know more info about auth session - for example: ims_qos can now report Rx session for Reg or for media | + | |
- | * CER/CEA retry if send/ | + | |
- | * evaluate the supported_vendor_id-AVP during CER/CEA | + | |
- | * load balancing timer has millisecond resolution | + | |
- | + | ||
- | ==== cfgutils ==== | + | |
- | + | ||
- | * sleep() and usleep() accept vars as parameter | + | |
- | + | ||
- | ==== cnxcc ==== | + | |
- | + | ||
- | * locks re-entrant for simplifying the upper layer APIs | + | |
- | + | ||
- | ==== corex ==== | + | |
- | + | ||
- | * added file_read() and file_write() functions | + | |
- | * file_read(fpath, | + | |
- | * file_write(fpat, | + | |
- | * added corex.pkg_summary command | + | |
- | * dump pkg usage summary to syslog for a specific pid or process index | + | |
- | < | + | |
- | kamcmd corex.pkg_summary pid 12345 | + | |
- | kamcmd corex.pkg_summary idx 1 | + | |
- | </ | + | |
- | + | ||
- | ==== ctl ==== | + | |
- | + | ||
- | * increased default buffers size for rpc responses | + | |
- | * binrpc_max_body_size = 32 | + | |
- | * binrpc_struct_max_body_size = 8 | + | |
- | * support for u specifier (unsigned int) | + | |
- | + | ||
- | ==== db_text ==== | + | |
- | + | ||
- | * support 'order by' in raw query | + | |
- | * flexibility for column type comparison - compare DB1_STR, DB1_STRING, DB1_BLOB as equal | + | |
- | * add support for replace - implements replace with update/ | + | |
- | * implemented raw query for UPDATE/ | + | |
- | + | ||
- | ==== debugger ==== | + | |
- | + | ||
- | * add support for static and dynamic, module specific, logging facility | + | |
- | * new dbg_sip_msg() config function, which prints how the sip message would look like if it were to be sent out at that point in config | + | |
- | * added mi commands for module level/ | + | |
- | * added rpc commands for module level/ | + | |
- | + | ||
- | ==== dialog ==== | + | |
- | + | ||
- | * re-entrant mutex for dialogs hash table slots | + | |
- | * run event_route[dialog: | + | |
- | * make dialog context available in event route tm: | + | |
- | * new parameter db_skip_load to skip loading dialogs on startup | + | |
- | * safety bump of cseq for bye if prack was involved in call setup | + | |
- | + | ||
- | ==== dialog_ng ==== | + | |
- | + | ||
- | * renamed to ims_dialog | + | |
- | + | ||
- | ==== dispatcher ==== | + | |
- | + | ||
- | * relative weight distribution added - it is possible to assign " | + | |
- | * added new probing_mode=3 to always probe flagged gateways | + | |
- | * ds_timer_mode - new param to specify the timer proc | + | |
- | * if set to 0 (default), main timer is used | + | |
- | * if set to 1, secondary timer is used | + | |
- | * rpc command dispatcher.ping_active | + | |
- | * manage global pinging state (send or not the keepalive to destinations) | + | |
- | * kamcmd dispatcher.ping_active 0 - don't send keepalive requests | + | |
- | * kamcmd dispatcher.ping_active 1 - send keepalive requests | + | |
- | * default value is 1 | + | |
- | + | ||
- | ==== dmq_usrloc ==== | + | |
- | + | ||
- | * implement deleted contact replication | + | |
- | * new param sync - control sync' | + | |
- | * default 1 - require sync' | + | |
- | * support for throttling sync of all usrloc records | + | |
- | * batch_size and batch_usleep parameters can control how many records can be sent out at once, after that sleep for batch_usleep microseconds before sending the next batch | + | |
- | + | ||
- | ==== domain ==== | + | |
- | + | ||
- | * allow ' | + | |
- | + | ||
- | ==== drouting ==== | + | |
- | + | ||
- | * support for symbols "# | + | |
- | + | ||
- | ==== evapi ==== | + | |
- | + | ||
- | * implemented receive buffering per connected client | + | |
- | + | ||
- | ==== htable ==== | + | |
- | + | ||
- | * improved error message when loading from database | + | |
- | * htable.dump - added the type of the value to the result | + | |
- | * allow specifying column names per hash table | + | |
- | * at least two columns must be specified, first is the one corresponding to key_name | + | |
- | * the values of following columns are concatenated with a comma delimiter | + | |
- | * columns can be specified with cols attribute in htable definition and they must be enclosed in quotes in order to be a valid sip parameter value and be separated by comma | + | |
- | * don't sync back to db when cols per htable is set | + | |
- | + | ||
- | < | + | |
- | modparam(" | + | |
- | " | + | |
- | </ | + | |
- | + | ||
- | ==== ims_auth ==== | + | |
- | + | ||
- | * added option to set destination host for MAR requests | + | |
- | * allow different qop setting for INVITE | + | |
- | + | ||
- | ==== ims_charging ==== | + | |
- | + | ||
- | * added Multiple-Services Indicator | + | |
- | * allow ro session id to be used from cfg file as avp | + | |
- | * added the possibility to omit the rating-group | + | |
- | * added ability to send vendor-specific charge information | + | |
- | * added ability to retrieve the Diameter-Status-Code for the Charging-Session | + | |
- | + | ||
- | ==== ims_qos ==== | + | |
- | + | ||
- | * make Release-Reason from QoS configurable | + | |
- | * option to add Extra-Header, | + | |
- | * added Rx-Specific-Action AVPs to work with some PCRFs | + | |
- | * new mod param terminate_dialog_on_rx_failure - terminate_dialog_on_rx_failure this parameter determines if a dialog is torn down if a media Rx session is terminated | + | |
- | + | ||
- | ==== ims_registrar_pcscf ==== | + | |
- | + | ||
- | * added functionality to unREGISTER a contact, eg. based on a failed network ping | + | |
- | * set received host, proto and port when searching for pcontact | + | |
- | + | ||
- | ==== ims_registrar_scscf ==== | + | |
- | + | ||
- | * new function to pass extra argument to lookup (ue_type) - useful if looking for a specific type of UE ie VoLTE vs SIP for example | + | |
- | + | ||
- | ==== ims_usrloc_scscf ==== | + | |
- | + | ||
- | * added counters for reporting hashtable usage - collision slot count for contacts and subscriptions | + | |
- | * implemented overwrite oldest contact behaviour | + | |
- | * added support for UE types required by registrar | + | |
- | + | ||
- | ==== janssonrpc-c ==== | + | |
- | + | ||
- | * allow null json error property in rpc response | + | |
- | + | ||
- | ==== jsonrpc-c ==== | + | |
- | + | ||
- | * add max_conn_attempt parameter to control max number of reconnections | + | |
- | + | ||
- | ==== kazoo ==== | + | |
- | + | ||
- | * support alternative federated exchanges | + | |
- | * allow multiple simultaneous servers | + | |
- | * add async query feature - suspend the transaction on send and continue on return or timeout | + | |
- | + | ||
- | ==== kex ==== | + | |
- | + | ||
- | * support VERSION_NODATE and VERSION_DATE for reproducible builds | + | |
- | * per module memory statistics when in debugging mode | + | |
- | * return details about memory used by each module via rpc commands | + | |
- | + | ||
- | ==== lcr ==== | + | |
- | + | ||
- | * added priority_ordering module parameter - allows ordering of matched gateways only by priority and weight | + | |
- | + | ||
- | ==== mtree ==== | + | |
- | + | ||
- | * allow for larger (max 64) prefix values to be used (e.g., case of uuid, ipv6) | + | |
- | * allow specifying column names per tree | + | |
- | * at least two columns must be specified, first is the one corresponding to tprefix | + | |
- | * if more than two, then the values of those columns are concatenated with a comma delimiter | + | |
- | * columns can be specified with cols attribute in mtree definition and they must be enclosed in quotes in order to be a valid sip parameter value and be separated by comma | + | |
- | + | ||
- | < | + | |
- | modparam(" | + | |
- | " | + | |
- | </ | + | |
- | + | ||
- | ==== nathelper ==== | + | |
- | + | ||
- | * support filter contacts by server_id | + | |
- | + | ||
- | ==== p_usrloc ==== | + | |
- | + | ||
- | * added path and +instance support | + | |
- | + | ||
- | ==== pdb ==== | + | |
- | + | ||
- | * new protocol between pdb_server and kama pdb module | + | |
==== permissions ==== | ==== permissions ==== | ||
- | | + | * RPC reload limit controlled via **reload_delta** module parameter |
- | | + | |
- | | + | |
- | | + | |
- | * if there are more subnet records in address tables than the value of max_subnets, | + | |
- | + | ||
- | ==== presence ==== | + | |
- | + | ||
- | * added presence: | + | |
- | * implemented $notify_reply for handling in presence: | + | |
- | * added flags, user_agent columns to active_watchers | + | |
- | * extended $subs to other subscription properties | + | |
- | + | ||
- | ==== presence_xml ==== | + | |
- | + | ||
- | * added optional param force_dummy_presence | + | |
- | | + | |
- | + | ||
- | ==== pua_dialoginfo ==== | + | |
- | + | ||
- | * support for sending " | + | |
- | * implemented callee_trying parameter in pua_dialoginfo which causes a " | + | |
- | + | ||
- | ==== pua_reginfo ==== | + | |
- | + | ||
- | * added support for custom params as contact parameters (e.g. < | + | |
- | + | ||
- | ==== pv ==== | + | |
- | + | ||
- | * **pv_var_to_xavp** script function to copy $var values to $xavp | + | |
- | * transformation to remove all non-numeric parts of a string | + | |
- | * add auth digest pseudo variables | + | |
- | * $adn - auth nonce | + | |
- | * $adc - auth cnonce | + | |
- | * $adr - auth response | + | |
- | * $ado - auth opaque | + | |
- | * pv_var_to_xavp() - copy script variables values to xavps | + | |
- | * added $utime and $utimef pv's to retrieve time in UTC | + | |
- | * $utime is the UTC equivalent to $time for localtime | + | |
- | * $utimef is the UTC equivalent to $timef for localtime | + | |
- | * $snd(sproto) returns sending protocol as string | + | |
==== registrar ==== | ==== registrar ==== | ||
- | * add **contact** and **recieved** values to xavp_rcd | + | ===== New in Core ===== |
- | * set xavp_rcd on registered() | + | |
- | * export lookup_to_dset with uri to config | + | |
- | * allow registered() | + | |
- | * send 400 response if the reg-id value is invalid | + | |
- | ==== rr ==== | + | ==== Command |
- | + | ||
- | * add enable_double_rr_always option | + | |
- | + | ||
- | ==== rtppengine ==== | + | |
- | + | ||
- | * new fifo command, namely nh_ping_rtpp, | + | |
- | * try the next media relay available if the limit reached reply is received | + | |
- | * unset " | + | |
- | * new read_sdp_pv parameter - this parameter allows to specify a script var or AVP for rtpengine to get the SDP from, instead of the SIP message body | + | |
- | * hash table to keep the selected nodes | + | |
- | * added rtpengine_allow_op modparam - when the param is enabled, allow current sessions to finish and deny new sessions for manually deactivated rtpengine nodes via kamctl i.e. " | + | |
- | * added setid_default modparam - option to change the default set id. | + | |
- | * if setid_avp is configured, the active set used is the avp value. | + | |
- | * if setid_avp is not configured, the active set used is setid_default value | + | |
- | * added kamctl nh_reload_rtpp - mi command to allow reload from database node table | + | |
- | + | ||
- | ==== sipcapture ==== | + | |
- | + | ||
- | * insert From URI domain, To URI domain and request URI domain to database | + | |
- | * added homer5 functionality to sipcapture module | + | |
- | * accept a list of headers for callid_aleg_header | + | |
- | * added async support for storing in asynchronous mode if supported by database backend | + | |
- | * new parameter topoh_unmask - if set to 1, call-id will be unmasked using topoh module api | + | |
- | + | ||
- | ==== siptrace ==== | + | |
- | + | ||
- | * new parameter trace_mode | + | |
- | * if set to 1, is using the SREV_NET_DATA_SEND event for sending HEP packets to sipcapture server for packets sent to the network | + | |
- | + | ||
- | ==== sipt ==== | + | |
- | + | ||
- | * added ability to check charging indicator | + | |
- | + | ||
- | ==== siputils ==== | + | |
- | + | ||
- | * exported $pcv(name) variable for P-Charging-Vectore header and sip_p_charing_vector() function | + | |
- | * $pcv(all) = whole field | + | |
- | * $pcv(value) = icid-value field (see RFC3455 section 5.6) | + | |
- | * $pcv(genaddr) = icid-generated-at field (see RFC3455 section 5.6) | + | |
- | + | ||
- | ==== sst ==== | + | |
- | + | ||
- | * add **refresher** parameter in order to follow RFC 4028 | + | |
- | + | ||
- | ==== statsd ==== | + | |
- | + | ||
- | * can use IPv6 as server address | + | |
- | + | ||
- | ==== tcpops ==== | + | |
- | + | ||
- | * keepalive functions enabled on BSD | + | |
- | * add tcp_conid_state function to check connection state | + | |
- | * framework to execute event_route[tcp: | + | |
- | * per-connection control over execution of event route tcp: | + | |
- | * added " | + | |
- | + | ||
- | ==== textops ==== | + | |
- | + | ||
- | * new functions to get part of a multipart body | + | |
- | * get_body_part() - return only the body part content | + | |
- | * get_body_part_raw() - get body part with headers and boundary | + | |
- | + | ||
- | ==== textopsx ==== | + | |
- | + | ||
- | * if no param is given to keep_hf(re), | + | |
- | + | ||
- | ==== tls ==== | + | |
- | + | ||
- | * option to match TLS client config profile based on server_id | + | |
- | * server_id can be any string that uniquely identifies a client config profile, overriding the attempt to match on ip:port (+sni). This makes it easier to select the desired config profile, because the port is hard to guess for stream connections | + | |
- | * prameter xavp_cfg has to be enabled and inner xavp ' | + | |
- | + | ||
- | ==== tm ==== | + | |
- | + | ||
- | * use xavps for t_load_contacts/ | + | |
- | * execute the onsend_route for responses forwarded by tm module - not executed for local generated sip responses | + | |
- | * enable drop in onsend_route for tm replies | + | |
- | * support to add text in Reason header for local generated CANCEL | + | |
- | * use core sip routing api callid generator if available | + | |
- | * added t_is_request_route() config function | + | |
- | + | ||
- | ==== tmx ==== | + | |
- | + | ||
- | * added $T(ruid) - return current branch ruid attribute | + | |
- | * new counter/ | + | |
- | * consistent naming of counters - simplify the names of the tmx counters to " | + | |
- | + | ||
- | ==== tsilo ==== | + | |
- | + | ||
- | * added module specific satistics | + | |
- | * t_store(...) accepts uri as parameter | + | |
- | * ts_append_to() can take uri as parameter | + | |
- | * removed usrloc dependency | + | |
- | * added use_domain parameter | + | |
- | + | ||
- | ==== uac ==== | + | |
- | + | ||
- | * uac.reg_dump returns an array rpc result | + | |
- | * uacreg table has two new columns - flags, reg_delay | + | |
- | * store the flags for runtime behavior | + | |
- | * delay intial registration (allow to spread registrations over an interval of time, not to flood the registrar at the same time) | + | |
- | + | ||
- | ==== usrloc ==== | + | |
- | + | ||
- | * support filter by server_id at get_all_ucontacts | + | |
- | * new module option to support preload using server_id as filter | + | |
- | * new matching mode: CALLID_ONLY | + | |
- | * new param to skip non-local location record - yf set, kamailio will skip record if socket value doesn' | + | |
- | * option to clean up database on write back/ | + | |
- | * enabled by db_timer_clean parameter | + | |
- | + | ||
- | ==== utils ==== | + | |
- | + | ||
- | * added optional parameter for setting additional http headers | + | |
- | * option to trim leading and trailing white spaces in http response - new parameter http_response_trim to control it; default is 0 - don't trim (backward compatible); | + | |
- | * new parameter http_response_mode to control what response part is returned | + | |
- | * if http_response_mode=0, | + | |
- | * if http_response_mode=1, | + | |
- | + | ||
- | ==== websocket ==== | + | |
- | + | ||
- | * added support for SIP message fragmentation | + | |
- | * websocket connections are created with a BUF_SIZE (64K) buffer used for concatenating frames | + | |
- | * continuation frames (fragments) are supported for the SIP sub-protocol | + | |
- | + | ||
- | ==== xlog ==== | + | |
- | + | ||
- | * convenience functions for various log levels | + | |
- | * xinfo(), xnotice(), xwarn(), xerr(), xbug(), xcrit(), xalert() | + | |
- | + | ||
- | ===== New in Core ===== | + | |
==== Interpreter ==== | ==== Interpreter ==== | ||
- | |||
- | * new feature to execute event_route[core: | ||
- | * cast operator (int) converts hex strings as well - in addition to dec string | ||
- | * name of the structure exported by a module can be prefixed with module name | ||
- | * added framework to allow replacing logging to syslog | ||
- | * this enables a module to replace all logging to syslog with another logging mechanism | ||
- | * it is not enabled when log_stderror=yes or the system is detected as __SUNPRO_C | ||
- | * trigger event_route execution for unexpectedly-closed and client-closed tcp connections | ||
==== Parameters ==== | ==== Parameters ==== | ||
- | |||
- | * new parameter async_usleep - add option to do usleep() before processing async tasks | ||
- | * could help saving cpu usage on vms with immediate interruptions triggered to recvfrom() | ||
- | * added parameters log_engine_type and log_engine_data | ||
- | * can be used to specify what logging engine to be used and its initialization data | ||
- | * see readme of log_custom module for a same of usage | ||
==== Functions ==== | ==== Functions ==== | ||
==== Memory Managers ==== | ==== Memory Managers ==== | ||
- | |||
- | * display the 2 levels matrix in TLSF status | ||
- | * shared (shm) memory manager can be selected with -x command line parameter at startup | ||
- | * private (pkg) memory manager can be selected with -X command line parameter at startup. If this parameter is omitted, the value of -x is used | ||
==== Architecture ==== | ==== Architecture ==== | ||
- | |||
- | * wheel timer implementation | ||
- | * shared by modules needing to execute timer tasks, don't want to interfere with main core timers, but don't do lots of operations to create own timer | ||
- | * wheel timer is advertised as secondary timer | ||
==== kamailio.cfg ==== | ==== kamailio.cfg ==== | ||
- | |||
- | * use flag ' | ||
- | * skip learning mode, advertised media ip is routable | ||
===== Tools ===== | ===== Tools ===== | ||
==== kamcmd ==== | ==== kamcmd ==== | ||
- | |||
- | * support VERSION_NODATE and VERSION_DATE for reproducible builds | ||
==== kamctl ==== | ==== kamctl ==== | ||
- | * added mongodb schema files | + | ==== kamdbctl ==== |
- | * custom json format specifying structure of collections/ | + | |
- | * version-create.mongo - a script with mongo commands to fill the version collection/ | + | ==== kamcli ==== |
features/new-in-devel.1456679651.txt.gz · Last modified: 2016/02/28 17:14 by miconda