features:new-in-4.3.x
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
features:new-in-4.3.x [2015/06/04 10:45] – 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 ==== | ||
Line 36: | Line 36: | ||
* 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 ==== | ==== app_lua ==== | ||
Line 66: | Line 70: | ||
* sr.tm.t_next_contatcs | * sr.tm.t_next_contatcs | ||
* sr.tm.t_on_branch_failure | * sr.tm.t_on_branch_failure | ||
+ | * exported the APIs from uac and ndb_mongodb modules | ||
==== auth_radius ==== | ==== auth_radius ==== | ||
Line 78: | Line 83: | ||
* added custom AVP to transport Call-ID in diameter request | * 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 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 ==== | ==== cdpavp ==== | ||
Line 90: | Line 96: | ||
* added Redis support for distributed cnxcc nodes | * added Redis support for distributed cnxcc nodes | ||
+ | |||
+ | ==== ctl ==== | ||
+ | |||
+ | * default path for ctl socket file is: / | ||
==== db_mysql ==== | ==== db_mysql ==== | ||
Line 95: | Line 105: | ||
* added parameter to change affected rows value for UPDATE queries | * added parameter to change affected rows value for UPDATE queries | ||
* when enabled will return the number of matched/ | * when enabled will return the number of matched/ | ||
+ | * set back tick as quoting char for table and column names | ||
==== db_postgres ==== | ==== db_postgres ==== | ||
Line 102: | Line 113: | ||
==== db_text ==== | ==== db_text ==== | ||
- | * added affected rows capability | + | * added affected rows capability |
+ | * support for OP_NEQ | ||
+ | * simple raw query support for select operation | ||
==== dialog ==== | ==== dialog ==== | ||
* option to add custom headers for local requests to callee | * option to add custom headers for local requests to callee | ||
+ | * don't send keepalive if dialog not in confirmed state | ||
==== dialog_ng ==== | ==== dialog_ng ==== | ||
Line 126: | Line 140: | ||
* new function ds_list_exist() to check if a dispatcher set exists | * new function ds_list_exist() to check if a dispatcher set exists | ||
* added per gateway and global send socket configuration | * 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 ==== | ==== ims_charging ==== | ||
Line 131: | Line 155: | ||
* added realtime DB support for Ro sessions | * added realtime DB support for Ro sessions | ||
* added support for trunk ID in Ro CCR | * 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 ==== | ==== ims_icscf ==== | ||
Line 140: | Line 166: | ||
* use separate process to manage reginfo subscribes and publishes | * use separate process to manage reginfo subscribes and publishes | ||
* new pseude-variable to get username of Contact that was used during registration | * 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 ==== | ==== ims_registrar_scscf ==== | ||
Line 148: | Line 175: | ||
* new parameter notification_list_size_threshold | * new parameter notification_list_size_threshold | ||
* new function term_impu_has_contact - use this function to check if an IMPU has a valid contact | * 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 ==== | ==== ims_qos ==== | ||
Line 154: | Line 182: | ||
* Rx_AAR - new parameters that let you set sub-id and sub-id-type | * Rx_AAR - new parameters that let you set sub-id and sub-id-type | ||
* new parameter cdp_event_list_size_threshold | * new parameter cdp_event_list_size_threshold | ||
+ | * added stats framework and basic stats | ||
+ | * added new statistic aar_replies_received | ||
==== ims_usrloc_pcscf ==== | ==== ims_usrloc_pcscf ==== | ||
Line 163: | Line 193: | ||
* added database support for subscriptions | * added database support for subscriptions | ||
* callback when contact is deleted/ | * 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 ==== | ==== nathelper ==== | ||
* add append_sdp_oldmediaip parameter | * 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(" | |
- | modparam(" | + | * optionally allow starting without a connection to Redis server |
==== pipelimit ==== | ==== pipelimit ==== | ||
Line 189: | Line 241: | ||
* 1 - RC compliant, return "423 Interval Too Brief" | * 1 - RC compliant, return "423 Interval Too Brief" | ||
* 2 - force min_expires in the subscription | * 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 ==== | ==== pua ==== | ||
Line 209: | Line 272: | ||
* $sut - new variable that returns full uri for source address | * $sut - new variable that returns full uri for source address | ||
* added 7Bit encoding/ | * 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 ==== | ==== registrar ==== | ||
Line 214: | Line 294: | ||
* add optional check for local path during lookup() | * 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 | * 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 232: | Line 319: | ||
* new modparam force_send_interface | * new modparam force_send_interface | ||
* rtp_inst_pvar: | * 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 | ||
==== sdpops ==== | ==== sdpops ==== | ||
Line 249: | Line 338: | ||
* options to set TLS versions lower limit | * options to set TLS versions lower limit | ||
* example: if method is set to TLSv1.1+, then the connection must be TLSv1.1 or newer | * 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 ==== | ==== tm ==== | ||
Line 259: | Line 353: | ||
* $T_branch(uri) - return uri of the branch when processing a reply in tm onreply_route | * $T_branch(uri) - return uri of the branch when processing a reply in tm onreply_route | ||
+ | |||
==== tsilo ==== | ==== tsilo ==== | ||
* new MI and RPC commands | * new MI and RPC commands | ||
+ | * use use_domain inherited from usrloc | ||
- | ==== usrloc | + | ==== uac ==== |
- | * new parameter: '' | + | |
+ | | ||
+ | * 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 289: | Line 408: | ||
* the upper limit is 31, it has to be at least 1 | * the upper limit is 31, it has to be at least 1 | ||
* preprocessor subst rules are applied to pv names | * 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 300: | Line 421: | ||
==== Default Config ==== | ==== Default Config ==== | ||
+ | * parameters with the paths to fifo and unixsocket control file are pointing to / | ||
===== Tools ===== | ===== Tools ===== | ||
features/new-in-4.3.x.1433414732.txt.gz · Last modified: 2015/06/04 10:45 by miconda