User Tools

Site Tools


features:new-in-4.3.x

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
features:new-in-4.3.x [2015/06/02 14:34]
miconda
features:new-in-4.3.x [2016/05/12 15:28] (current)
mslehto [Kamailio SIP Server (SER) - New Features in v4.3.x] wordsmithing on the version
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 is numbered 4.3.x and it was released in June 2015**.+**First release in this series is numbered 4.3.x and it was released in June 10, 2015**.
  
 <fc #0000FF> <fc #0000FF>
-**Previous version was 4.2.x (released on October 16, 2014), see what was new in that release at:**+**Previous stable version was 4.2.x (released on October 16, 2014), see what was new in that release at:**
 </fc> </fc>
   * <fc #0000FF>http://www.kamailio.org/wiki/features/new-in-4.2.x</fc>   * <fc #0000FF>http://www.kamailio.org/wiki/features/new-in-4.2.x</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://kamailio.org/docs/modules/devel/modules/auth_xkeys.html+  * http://kamailio.org/docs/modules/4.3.x/modules/auth_xkeys.html
  
 ==== 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://kamailio.org/docs/modules/devel/modules/dmq_usrloc.html+  * http://kamailio.org/docs/modules/4.3.x/modules/dmq_usrloc.html
  
 ==== erlang ==== ==== erlang ====
  
   * connector to Erlang node   * connector to Erlang node
-  * http://kamailio.org/docs/modules/devel/modules/erlang.html+  * http://kamailio.org/docs/modules/4.3.x/modules/erlang.html
  
 ==== 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://kamailio.org/docs/modules/devel/modules/geoip2.html+  * http://kamailio.org/docs/modules/4.3.x/modules/geoip2.html
  
 ==== 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://kamailio.org/docs/modules/devel/modules/jansson.html+  * http://kamailio.org/docs/modules/4.3.x/modules/jansson.html
  
 ==== janssonrpc-c ==== ==== janssonrpc-c ====
  
   * JSON-RPC over netstrings client using Jansson library   * JSON-RPC over netstrings client using Jansson library
-  * http://kamailio.org/docs/modules/devel/modules/janssonrpc-c.html+  * http://kamailio.org/docs/modules/4.3.x/modules/janssonrpc-c.html
  
 ==== 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://kamailio.org/docs/modules/devel/modules/statsd.html+  * http://kamailio.org/docs/modules/4.3.x/modules/statsd.html
  
 ==== rtjson ==== ==== rtjson ====
  
   * SIP routing based on JSON API   * SIP routing based on JSON API
-  * http://kamailio.org/docs/modules/devel/modules/rtjson.html+  * http://kamailio.org/docs/modules/4.3.x/modules/rtjson.html
  
 ==== 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://kamailio.org/docs/modules/devel/modules/tcpops.html+  * http://kamailio.org/docs/modules/4.3.x/modules/tcpops.html
  
 ===== 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 ====
 +
 +  * 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 ==== ==== cdp ====
  
   * added support for incoming and outgoing trunk-group AVPs   * 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 ==== ==== cdpavp ====
  
   * added support for incoming and outgoing trunk-group AVPs   * added support for incoming and outgoing trunk-group AVPs
 +
 +==== cfgutils ====
 +
 +  * rpc commands for gflags management
  
 ==== cnxcc ==== ==== cnxcc ====
  
   * added Redis support for distributed cnxcc nodes   * added Redis support for distributed cnxcc nodes
 +
 +==== ctl ====
 +
 +  * default path for ctl socket file is: /var/run/kamailio/kamailio_ctl
  
 ==== db_mysql ==== ==== db_mysql ====
Line 83: 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/foudn rows as opposed to the number of updated rows     * when enabled will return the number of matched/foudn rows as opposed to the number of updated rows
 +  * set back tick as quoting char for table and column names
 +
 +==== db_postgres ====
 +
 +  * new module parameters "timeout" and "tcp_keepalive"
 +
 +==== 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 98: 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 "multi_notify"
 +    * includes addresses from DNS SRV records, A and AAAA records
 +
 +==== geoip ====
 +
 +  * return continent id via contid attribute
  
 ==== ims_charging ==== ==== ims_charging ====
Line 103: 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 ====
  
   * new module param use_preferred_scscf_uri - allows ICSCF to have a preferred S-CSCF is HSS returns a list   * 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 ==== ==== ims_registrar_scscf ====
Line 113: Line 173:
   * new parameter user_data_always - if set S-CSCF always requests user data from HSS   * 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 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 ==== ==== ims_qos ====
  
-  * Rx_reg use received IP for framed_ip_address AVP+  * 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 ==== ==== ims_usrloc_pcscf ====
Line 126: Line 193:
   * added database support for subscriptions   * added database support for subscriptions
   * callback when contact is deleted/removed   * callback when contact is deleted/removed
 +
 +==== 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 /var/run/kamailio/kamailio_fifo
 +
 +==== msilo ====
 +
 +  * new parameter skip_notification_flag
 +    * set to a flag value to be used to mark when the notification back to sender shouldn't be sent
 +
 +==== 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("ndb_redis", "server", "name=srvX;addr=127.0.0.2;port=6379;db=4;pass=mypassword")
 +  * 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)
 +    * 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
  
- modparam("ndb_redis", "server", "name=srvX;addr=127.0.0.2;port=6379;db=4;pass=mypassword") 
  
 ==== pua ==== ==== pua ====
  
   * added outbound_proxy for publishing info   * added outbound_proxy for publishing info
 +  * new parameter db_table_lock_write: enable (=1) or disable (=0) the locks for table during an transaction
 +
 +==== pua_dialoginfo ====
 +
 +  * load dialogs for dialoginfo event upon restart
 +  * store pubruri for caller and callee in dlg vars
  
 ==== pv ==== ==== pv ====
Line 150: 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/decoding transformations   * added 7Bit encoding/decoding transformations
 +  * new function xavp_params_explode(p, x)
 +    * convert a string formatted as SIP params in xavp attribute
 +    * e.g., xavp_params_explode("a=b;c=d;e=d", "x") results in:
 +<code c>
 +      $xavp(x=>a) = "b";
 +      $xavp(x=>c) = "d";
 +      $xavp(x=>e) = "f";
 +</code>
 +  * 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 166: Line 317:
        * rtpengine tout param is now expressed in milliseconds and renamed        * rtpengine tout param is now expressed in milliseconds and renamed
    * new ''write_sdp_pv'' parameter, to return the new SDP in a $var() or $avp() instead of message body    * new ''write_sdp_pv'' parameter, to return the new SDP in a $var() or $avp() instead of message body
 +   * new modparam force_send_interface
 +   * rtp_inst_pvar: pseudo variable to store the chosen RTP engine address
 +   * 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 172: Line 327:
     * return true of the SDP has 'media=type ...' line and the media is active.     * return true of the SDP has 'media=type ...' line and the media is active.
     * active media means the port is non-zero and the direction is not "inactive"     * active media means the port is non-zero and the direction is not "inactive"
 +
 +==== siputils ====
 +
 +  * new function is_tel_number(val)
 +    * 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 ==== ==== tm ====
Line 178: Line 349:
    * handle r-uri alias parameter for local generated requests within a dialog    * handle r-uri alias parameter for local generated requests within a dialog
    * default value for failure_reply_mode set to 3 - discard previous replies if a new serial forking step is done    * default value for failure_reply_mode set to 3 - discard previous replies if a new serial forking step is done
 +
 +==== tmx ====
 +
 +  * $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''close_expired_tcp''. When set to 1, usrloc will close the corresponding TCP connection for expired entries.+  * 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:reply] for uac_req_send() replies 
 +    * $uac(evroute) has to be set to 1 and event_route[uac:reply] defined 
 +      * inside event_route[uac_reply] the $uac_req(...) variable is restored back as before uac_req_send(), having the values from that time, excepting: 
 +        * $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, the message processed inside the event route is the received reply, otherwise is a faked request with no relation to the request sent out by uac_req_send() 
 + 
 + 
 +==== userblacklist ==== 
 + 
 +  * adding new fifo commands 
 +    * dump_blacklist, check_blacklist, check_whitelist, check_userblacklist, check_userwhitelist commands 
 + 
 +==== usrloc ====
  
 +  * new parameter: ''close_expired_tcp''. When set to 1, usrloc will close the corresponding TCP connection for expired entries
 +  * 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 194: 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 =====
Line 209: Line 407:
     * default value is 12 (old static value for MAX_BRNACHES)     * default value is 12 (old static value for MAX_BRNACHES)
     * 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
 +  * 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 220: Line 421:
 ==== Default Config ==== ==== Default Config ====
  
 +  * parameters with the paths to fifo and unixsocket control file are pointing to /var/run/kamailio/
 ===== Tools ===== ===== Tools =====
  
features/new-in-4.3.x.1433248444.txt.gz · Last modified: 2015/06/02 14:34 by miconda