features:new-in-4.3.x
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
features:new-in-4.3.x [2015/06/02 12:01] – created miconda | features:new-in-4.3.x [2016/05/12 13:28] (current) – [Kamailio SIP Server (SER) - New Features in v4.3.x] wordsmithing on the version mslehto | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Kamailio SIP Server (SER) - New Features in v4.3.x ====== | ====== Kamailio SIP Server (SER) - New Features in v4.3.x ====== | ||
- | **Current stable version | + | **First release in this series |
<fc #0000FF> | <fc #0000FF> | ||
- | **Previous version was 4.2.x (released on October 16, 2014), see what was new in that release at:** | + | **Previous |
</fc> | </fc> | ||
* <fc # | * <fc # | ||
Line 15: | Line 15: | ||
* API-like shared key peer-to-peer authentication using SHA hashing | * API-like shared key peer-to-peer authentication using SHA hashing | ||
- | * http:// | + | * http:// |
==== dmq_usrloc ==== | ==== dmq_usrloc ==== | ||
* distribute user location (usrloc) records between Kamailio servers using distributed message queue (dmq) | * distribute user location (usrloc) records between Kamailio servers using distributed message queue (dmq) | ||
- | * http:// | + | * http:// |
==== erlang ==== | ==== erlang ==== | ||
* connector to Erlang node | * connector to Erlang node | ||
- | * http:// | + | * http:// |
==== geoip2 ==== | ==== geoip2 ==== | ||
* GeoIP API for configuration file using the new library with support for IPv6 | * GeoIP API for configuration file using the new library with support for IPv6 | ||
- | * http:// | + | * http:// |
==== jansson ==== | ==== jansson ==== | ||
* JSON document management using Jansson library | * JSON document management using Jansson library | ||
* it has support for JSON-PATH | * it has support for JSON-PATH | ||
- | * http:// | + | * http:// |
==== janssonrpc-c ==== | ==== janssonrpc-c ==== | ||
* JSON-RPC over netstrings client using Jansson library | * JSON-RPC over netstrings client using Jansson library | ||
- | * http:// | + | * http:// |
==== statsd ==== | ==== statsd ==== | ||
* enables sending data to the statsd framework directly from kamailio.cfg | * enables sending data to the statsd framework directly from kamailio.cfg | ||
- | * http:// | + | * http:// |
==== rtjson ==== | ==== rtjson ==== | ||
* SIP routing based on JSON API | * SIP routing based on JSON API | ||
- | * http:// | + | * http:// |
==== tcpops ==== | ==== tcpops ==== | ||
* enables control of the TCP options (such as the keepalive mechanism), on demand, and on a per-socket basis | * enables control of the TCP options (such as the keepalive mechanism), on demand, and on a per-socket basis | ||
- | * http:// | + | * http:// |
===== New in Old Modules ===== | ===== New in Old Modules ===== | ||
+ | |||
+ | ==== acc ==== | ||
+ | |||
+ | * new parameter cdr_on_failed to control writing cds for failed dialogs | ||
+ | |||
+ | ==== app_lua ==== | ||
+ | |||
+ | * exported additional tm functions | ||
+ | * sr.tm.t_load_contacts | ||
+ | * sr.tm.t_next_contatcs | ||
+ | * sr.tm.t_on_branch_failure | ||
+ | * exported the APIs from uac and ndb_mongodb modules | ||
+ | |||
+ | ==== auth_radius ==== | ||
+ | |||
+ | * added modparam radius_avps_mode parameter (int, true if not null) | ||
+ | * reading all RADIUS AV-pairs to kamailio avp (not only SIP-AVP, if radius_avps_mode set to true) | ||
+ | |||
+ | ==== cdp ==== | ||
+ | |||
+ | * added support for incoming and outgoing trunk-group AVPs | ||
+ | * new module parameter: workerq_length_threshold_percentage | ||
+ | * added custom AVP to transport Call-ID in diameter request | ||
+ | * added new counter(stat) for worker queue lenght - this will give an indication that workers are not keeping up with load if it gets too big | ||
+ | * added stickiness to loadbalancing of diameter peers | ||
+ | |||
+ | ==== cdpavp ==== | ||
+ | |||
+ | * added support for incoming and outgoing trunk-group AVPs | ||
+ | |||
+ | ==== cfgutils ==== | ||
+ | |||
+ | * rpc commands for gflags management | ||
+ | |||
+ | ==== cnxcc ==== | ||
+ | |||
+ | * added Redis support for distributed cnxcc nodes | ||
+ | |||
+ | ==== ctl ==== | ||
+ | |||
+ | * default path for ctl socket file is: / | ||
+ | |||
+ | ==== db_mysql ==== | ||
+ | |||
+ | * added parameter to change affected rows value for UPDATE queries | ||
+ | * when enabled will return the number of matched/ | ||
+ | * set back tick as quoting char for table and column names | ||
+ | |||
+ | ==== db_postgres ==== | ||
+ | |||
+ | * new module parameters " | ||
+ | |||
+ | ==== db_text ==== | ||
+ | |||
+ | * added affected rows capability | ||
+ | * support for OP_NEQ | ||
+ | * simple raw query support for select operation | ||
+ | |||
+ | ==== dialog ==== | ||
+ | |||
+ | * option to add custom headers for local requests to callee | ||
+ | * don't send keepalive if dialog not in confirmed state | ||
+ | |||
+ | ==== dialog_ng ==== | ||
+ | |||
+ | * added support for active and early dialog stats | ||
==== dialplan ==== | ==== dialplan ==== | ||
Line 66: | Line 134: | ||
* ^(00|\+)? | * ^(00|\+)? | ||
* See https:// | * See https:// | ||
+ | * option to allow variables in match and substitution expressions - new parameter: match_dynamic to enable this feature | ||
+ | |||
+ | ==== dispatcher ==== | ||
+ | |||
+ | * new function ds_list_exist() to check if a dispatcher set exists | ||
+ | * added per gateway and global send socket configuration | ||
+ | |||
+ | ==== dmq ==== | ||
+ | |||
+ | * resolve multiple IPv4/IPv6 addresses for a single notification address | ||
+ | * optionally enabled by new parameter " | ||
+ | * includes addresses from DNS SRV records, A and AAAA records | ||
+ | |||
+ | ==== geoip ==== | ||
+ | |||
+ | * return continent id via contid attribute | ||
+ | |||
+ | ==== ims_charging ==== | ||
+ | |||
+ | * added realtime DB support for Ro sessions | ||
+ | * added support for trunk ID in Ro CCR | ||
+ | * added access-network-information data to CCR - allows OCS to know location of UE when charge was made | ||
+ | * added extra statistic: replies received for CCRs | ||
+ | |||
+ | ==== ims_icscf ==== | ||
+ | |||
+ | * new module param use_preferred_scscf_uri - allows ICSCF to have a preferred S-CSCF is HSS returns a list | ||
+ | |||
+ | ==== ims_registrar-pcscf ==== | ||
+ | |||
+ | * use separate process to manage reginfo subscribes and publishes | ||
+ | * new pseude-variable to get username of Contact that was used during registration | ||
+ | * added optinal extra parameter for lookup_transport - allows avp,pv,etc to be used as URI in search for lookup_transport | ||
+ | |||
+ | ==== ims_registrar_scscf ==== | ||
+ | |||
+ | * use dedicated process to send notifies | ||
+ | * new parameter user_data_always - if set S-CSCF always requests user data from HSS | ||
+ | * new mod_param subscription_expires_range - if set this parameter randomises the subscription expiry | ||
+ | * new parameter notification_list_size_threshold | ||
+ | * new function term_impu_has_contact - use this function to check if an IMPU has a valid contact | ||
+ | * added support to receive RTR on Cx/Dx interface | ||
+ | |||
+ | ==== ims_qos ==== | ||
+ | |||
+ | * Rx_reg - use received IP for framed_ip_address AVP | ||
+ | * Rx_AAR - new parameters that let you set sub-id and sub-id-type | ||
+ | * new parameter cdp_event_list_size_threshold | ||
+ | * added stats framework and basic stats | ||
+ | * added new statistic aar_replies_received | ||
+ | |||
+ | ==== ims_usrloc_pcscf ==== | ||
+ | |||
+ | * added new parameter to contact match using only URI host and port | ||
+ | |||
+ | ==== ims_usrloc_scscf ==== | ||
+ | |||
+ | * added database support for subscriptions | ||
+ | * callback when contact is deleted/ | ||
+ | |||
+ | ==== ipops ==== | ||
+ | |||
+ | * added function to perform dns srv query in config | ||
+ | * new config variable $srvquery(key) gives access to result | ||
+ | |||
==== jsonrpc-s ==== | ==== jsonrpc-s ==== | ||
* support to receive RPC commands via FIFO file | * support to receive RPC commands via FIFO file | ||
+ | * JSON-RPC commands can be sent now via a FIFO file, as alternative to (or together with) HTTP/S | ||
+ | |||
+ | ==== mi_fifo ==== | ||
+ | |||
+ | * default path to fifo file is / | ||
+ | |||
+ | ==== msilo ==== | ||
+ | |||
+ | * new parameter skip_notification_flag | ||
+ | * set to a flag value to be used to mark when the notification back to sender shouldn' | ||
+ | |||
+ | ==== nathelper ==== | ||
+ | |||
+ | * add append_sdp_oldmediaip parameter | ||
+ | * use always contact to build ruri and received field if available to send the ping | ||
+ | |||
+ | ==== ndb_mongodb ==== | ||
+ | |||
+ | * added mongodb_find_one() | ||
+ | * find first matching document and return it | ||
+ | * faster when knowing it is supposed to be only one, or needing only one | ||
==== ndb_redis ==== | ==== ndb_redis ==== | ||
* Redis authentication is now supported: | * Redis authentication is now supported: | ||
+ | * modparam(" | ||
+ | * optionally allow starting without a connection to Redis server | ||
+ | |||
+ | ==== pipelimit ==== | ||
+ | |||
+ | * take in consideration number of cpus for load | ||
+ | |||
+ | ==== presence ==== | ||
+ | |||
+ | * configurable matching criteria to remove subscriptions from memory | ||
+ | * added min_expires parameter | ||
+ | * added min_expires_action parameter - action to take when min_expires > 0, possible values are: | ||
+ | * 1 - RC compliant, return "423 Interval Too Brief" | ||
+ | * 2 - force min_expires in the subscription | ||
+ | * option to set priority for presentity documents | ||
+ | * xavp_cfg - new parameter to specify the name of xavp use to store attributes for publish processing | ||
+ | * priority can be set inside xavp_cfg with $xavp(xavp_cfg=> | ||
+ | * priority is stored in a new column inside database table presentity for each publish that has the xavp set | ||
+ | * retrieve_order - new parameter to specify the order to retrieve the records from database. Default value is 0 (retrieve by received_time like so far). If set to 1, retrieve by priority value | ||
+ | * if xavp_cfg parameter is set but priority field inside it is not, then inside the database is stored a value based on timestamp so the newest records will have a higher value, preserving the old behaviour even the retrieve_order=1 | ||
+ | * added sip_uri_match module parameter | ||
+ | * 0 - case sensitive (default) | ||
+ | * 1 - case insensitive | ||
+ | * added $subs(uri) - retrieve subscription uri, useful when handling subscribe updates | ||
+ | |||
+ | |||
+ | ==== pua ==== | ||
+ | |||
+ | * added outbound_proxy for publishing info | ||
+ | * new parameter db_table_lock_write: | ||
+ | |||
+ | ==== pua_dialoginfo ==== | ||
+ | |||
+ | * load dialogs for dialoginfo event upon restart | ||
+ | * store pubruri for caller and callee in dlg vars | ||
- | modparam(" | ||
- | |||
==== pv ==== | ==== pv ==== | ||
Line 84: | Line 271: | ||
* $vz(name) aliased to $var(name) | * $vz(name) aliased to $var(name) | ||
* $sut - new variable that returns full uri for source address | * $sut - new variable that returns full uri for source address | ||
+ | * added 7Bit encoding/ | ||
+ | * new function xavp_params_explode(p, | ||
+ | * convert a string formatted as SIP params in xavp attribute | ||
+ | * e.g., xavp_params_explode(" | ||
+ | <code c> | ||
+ | $xavp(x=> | ||
+ | $xavp(x=> | ||
+ | $xavp(x=> | ||
+ | </ | ||
+ | * new config var - $sbranch(key) | ||
+ | * a static branch structure that can be used for config operations | ||
+ | * the key can be like for $branch(key) | ||
+ | * the static branch is not used for outbound routing, it is just a local container | ||
+ | * functions to manage ruri and branches using $sbranch(key) | ||
+ | * sbranch_set_ruri() -- use the $sbranch(key) attributes to update first branch fields (corresponding to r-uri) | ||
+ | * sbranch_append() -- use the $sbranch(key) attributes to append a branch (alternative to append_branch() which is not affecting r-uri branch) | ||
+ | * sbranch_reset() -- reset the attributes of $sbranch(key) | ||
+ | |||
+ | |||
+ | ==== registrar ==== | ||
+ | |||
+ | * add optional check for local path during lookup() | ||
+ | * when performing a lookup the Path (if present) is evaluated and if the first hop is local we skip it to avoid looping | ||
+ | * add optional params to registered function | ||
+ | * 3rd parameter as flag is used to optionally restrict contacts when searching values are: | ||
+ | * 1 - match_callid | ||
+ | * 2 - match_received | ||
+ | * 3 - match_contact | ||
+ | * 4th parameter as flag to optionally perform action on positive match values are: | ||
+ | * 1 - set xavp_rcd with value from matched contact | ||
==== rr ==== | ==== rr ==== | ||
Line 100: | Line 317: | ||
* rtpengine tout param is now expressed in milliseconds and renamed | * rtpengine tout param is now expressed in milliseconds and renamed | ||
* new '' | * new '' | ||
+ | * new modparam force_send_interface | ||
+ | * rtp_inst_pvar: | ||
+ | * added queried_nodes_limit parameter - configure the total number of nodes inside a set to be tried before giving up selecting a rtpengine | ||
+ | * support for IPv6 force_send_interface | ||
- | ==== usrloc | + | ==== sdpops |
- | * New parameter: '' | + | |
+ | * new function sdp_with_active_media | ||
+ | * return true of the SDP has ' | ||
+ | * active media means the port is non-zero and the direction is not " | ||
- | ==== dispatcher | + | ==== siputils |
- | * new function | + | * new function |
+ | * returns true if the parameter is a telephone number (optional leading + followed by digits) | ||
+ | * new function is_numeric(val) | ||
+ | |||
+ | ==== tls ==== | ||
+ | |||
+ | * options to set TLS versions lower limit | ||
+ | * example: if method is set to TLSv1.1+, then the connection must be TLSv1.1 or newer | ||
+ | * reintroduced server side SNI support | ||
+ | * added server_name to module parameter | ||
+ | * set SNI for outbound connections via xavp | ||
+ | * new parameter: xavp_cfg to set the name of the xavp that holds attributes for tls connections | ||
+ | * server_name attribute can be used to specify SNI for outbound connections | ||
+ | |||
+ | ==== tm ==== | ||
+ | |||
+ | * new function t_is_retr_async_reply | ||
+ | * handle r-uri alias parameter for local generated requests within a dialog | ||
+ | * default value for failure_reply_mode | ||
+ | |||
+ | ==== tmx ==== | ||
+ | |||
+ | * $T_branch(uri) - return uri of the branch when processing a reply in tm onreply_route | ||
+ | |||
+ | ==== tsilo ==== | ||
+ | |||
+ | * new MI and RPC commands | ||
+ | * use use_domain inherited from usrloc | ||
+ | |||
+ | ==== uac ==== | ||
+ | |||
+ | * counters for active, disabled and total number of registrations | ||
+ | * new fields in $uac_req() to allow execution of event route on reply | ||
+ | * attributes: | ||
+ | * evroute - set to 1 to enable execution of event route | ||
+ | * evparam - generic string value that will be available in event route | ||
+ | * evcode - sip reply code, available in event route | ||
+ | * evtype - type of the reply - received or local generated (e.g., timeout) | ||
+ | * option to execute event_route[uac: | ||
+ | * $uac(evroute) has to be set to 1 and event_route[uac: | ||
+ | * inside event_route[uac_reply] the $uac_req(...) variable is restored back as before uac_req_send(), | ||
+ | * $uac_req(evcode) is set to the reply code | ||
+ | * $uac_req(evtype) is set to 1 if the reply was received or to 2 if the reply was self generated (e.g., case of transmission timeout) | ||
+ | * if $uac_req(evtype)==1, | ||
+ | |||
+ | |||
+ | ==== userblacklist ==== | ||
+ | |||
+ | * adding new fifo commands | ||
+ | * dump_blacklist, | ||
+ | |||
+ | ==== usrloc ==== | ||
+ | |||
+ | * new parameter: '' | ||
+ | * store server_id, connection id and keepalive values for location records | ||
+ | * fetching of records for nat keepalives in db only is done using new partition column | ||
==== xlog ==== | ==== xlog ==== | ||
Line 115: | Line 393: | ||
* new parameter methods_filter - a bitmask with internal sip method ids to be skipped from printing logs. Default -1 (skip all) | * new parameter methods_filter - a bitmask with internal sip method ids to be skipped from printing logs. Default -1 (skip all) | ||
* parameter can be set at runtime via cfg reload framework kamcmd cfg.set_now_int xlog methods_filter 15 | * parameter can be set at runtime via cfg reload framework kamcmd cfg.set_now_int xlog methods_filter 15 | ||
- | * alternative implementation of FS#81 | ||
===== New in Core ===== | ===== New in Core ===== | ||
==== Code ==== | ==== Code ==== | ||
+ | |||
+ | * execute onsend_route for replies before sending out | ||
+ | * control execution of onsend_route block for replies via parameter onsend_route_reply | ||
+ | * default tcp read buffer size set to 16kB | ||
+ | * pv print default buffer size set to 8kB | ||
+ | * default size for shared memory is 64MB | ||
+ | * new parameter - max_branches | ||
+ | * the maximum number of uac branches can be set via config | ||
+ | * default value is 12 (old static value for MAX_BRNACHES) | ||
+ | * the upper limit is 31, it has to be at least 1 | ||
+ | * preprocessor subst rules are applied to pv names | ||
+ | * add support for per-TCP connection lifetime | ||
+ | * libsrdb1: mechanism to be able to quote table and column names | ||
=== TLSF Memory Manager === | === TLSF Memory Manager === | ||
Line 128: | Line 418: | ||
* malloc and free operations always done in O(1) | * malloc and free operations always done in O(1) | ||
* build with '' | * build with '' | ||
+ | |||
==== Default Config ==== | ==== Default Config ==== | ||
+ | * parameters with the paths to fifo and unixsocket control file are pointing to / | ||
===== Tools ===== | ===== Tools ===== | ||
==== Kamctl ==== | ==== Kamctl ==== | ||
+ | |||
+ | * support of fnmatch operator for dialplan | ||
+ | * do not reload rules in memory after each change in database to allow batch updates. Reload command has to be done explicitely | ||
+ | * parameters of addrule after match expression are optional | ||
===== Build Process ===== | ===== Build Process ===== |
features/new-in-4.3.x.1433246497.txt.gz · Last modified: 2015/06/02 12:01 by miconda