User Tools

Site Tools


features:new-in-4.1.x

This is an old revision of the document!


Kamailio SIP Server (SER) - New Features in v4.1.x

First release in this series is to be numbered 4.1.0 and it is planned to be released in by end of November 2013.

Previous stable version was 4.0.x (released in March 2013), see what was new in that release at:

This is a draft of new features added for v.4.1.x, manually updated, thus not always synchronized with what is new in source code repository.

New Modules

app_java

auth_ephemeral

cnxcc

dnssec

gzcompress

mohqueue

rtpproxy-ng

sctp

sipt

stun

New in Old Modules

app_lua

  • app_lua.list and app_lua.reload rpc commands
  • added sr.xavp.get_keys function
  • added sr.xavp.get function - get a table with all the values of a xavp

avpops

  • avp_check re operation can now use a pseudo variable as second parameter.
  • avp_check with xavp as second parameter can now be used with [*] index on the second key.

cdp

  • framework for Credit Control Application - initial support for RFC 4006, used for IMS Ro charging interface TS32.299

cfgutils

  • new functions
    • route_if_exists() calls a routing block only if it exists in the configuration script
    • check_route_exists() checks if a routing block exists in the script.

db_mysql

  • new module parameter - insert_delayed - if set to 1, then all INSERT API queries will be converted in INSERT DELAYED (only DB API insert, not for raw queries)
  • sql transaction support

db_postgres

  • handle prepare statements in DB APIv2

debugger

  • new parametes:
    • per module debug level
    • log_assign. Enables the log of every single assign action on config
    • reset_msgid. Enables the ability to reset the msgid ( $mi ) through the RPC command.
  • new functions:
    • dbg_pv_dump() dumps the pv_cache content in json format.
  • new RPC commands:
    • options to enable/disable per module log level as well as set per module log level at runtime.
    • dbg.reset_msg: resets the msgid ( $mi ).

dialog

  • SDP can be passed to MI/RPC dlg_bridge

htable

  • new htable.sets and htable.seti RPC commands
  • new htable.reload rpc command
  • cross-server replication via DMQ module integration

memcached

  • use the newer libmemcached library

misc_radius

  • new parameter - common_response - get the radius response specific attributes in avps

mtree

  • mtree.reload rpc command

nathelper

  • new option - natping_disable_bflag can be set on a per-registration basis to disable NAT pings completely

outbound

  • flow-token key is now automatically generated

path

  • support for variables in add_path*() parameters

permissions

  • DNS domain names in address table - possibility to check also against DNS domain names with allow_address() function.Now in the address table one group can have exact IPs, subnet IPs and DNS domain names

pike

  • counter for blocked IP addresses

presence

  • RPC command presence.cleanup

pv

  • RPC commands shvGet and shvSet to manipulate and list shared variables
  • new transformations - encode.base64 and decode.base64
  • new $conid PV - returns the TCP connection ID that the current message arrived on (for TCP/TLS/WS/WSS) or $null (for UDP/SCTP)
  • PV to provide access to the user-agent string retrieved from usrloc
  • added $_s(format) variable - evaluate the format as a dynamic string ($var(x) = “sip:” + $rU + “@” + $fd; is equivalent of: $var(x) = $_s(sip:$rU@$fd);)

registrar

  • add Supported headers for outbound extensions in replies
  • RFC 5626 section 6 support - behaviour when outbound in use but first edge proxy does not support it
  • added additional unregister() exported function to allow the removal of a specific contact - contact is removed by using the ruid (unique ID for the location record)
  • set_q_override API function - override the value of the q parameter from the Contact header in subsequent calls to the save() function for the current request
  • regid_mode parameter - control if REGISTER contact regid (if present) is used when REGISTER request is saved even if request does not indicate support for outbound

rr

  • use sips to build RR headers if R-URI has sips

rtpproxy

  • database support to rtpproxy
    • if db_url modparam is set rtpproxy sets will be loaded from database
    • if the instance is marked as disabled in database it will be loaded as disabled

sca

  • private hold handling

sdpops

  • new functions:
    • sdp_with_transport(string) - hecks if is a media with the transport string.
    • sdp_remove_transport(string) - emoves the media info from the SDP that matches string transport.
    • sdp_get_line_startswith(avpvar, string)

sipcapture

  • table param for sip_capture() function
  • allow customization for X-CID header

siputils

  • new functions:
    • is_supported(option) that can be used to check if request has a Supported header listing the given option.

snmpstats

  • the SNMPstats module has been extended with a large set of new data, and the KAMAILIO-MIB has been extended with new OIDs
  • the new data reflects the Kamailio server process (memory, configuration at compile time), network transports and modules.

tm

  • new event route to be executed for each branch failure
    • branch failure routes must be named with the format:
      • event_route[tm:branch-failure:myroute]
      • and enabled with the function: t_on_branch_failure(“myroute”)
  • asynchronous processing of SIP responses in configuration file
  • use angle brackets around From/To URI for local generated requests
  • new parameter - failure_exec_mode
    • specify whether to consider or not execution of failure routing blocks for branches that had local delivery error (e.g., no open tcp connection and set_forward_no_connect() used in config)

tmx

  • $T_reply_ruid - pv to return ruid for a branch reply

uac

  • added possibility to authenticate generated requests
    • $uac_req(auser) - specify the authentication username
    • $uac_req(apasswd) - specify the authentication password
    • if both attributes above are set and the request is challenged with 401/407, then the request is resent with auth header
  • ability to set Call-Id through $uac_req(callid)

usrloc

  • new RPC commands:
    • ul.rm
    • ul.rm_contact
    • ul.flush
    • ul.add
  • ul.add RPC and ul_add MI commands modified to be able to set the contact path
  • new option for db_mode - DB_READONLY (4)
    • location records are loaded only at startup
    • no write back to database, not even at shutdown
    • useful when registrations are replicated to another node that does the db storage at runtime
  • new parameter db_obs_ruid - if set to 1, db update/delete operations are done using ruid value
    • if paramter set to 0 (default) the old style using aor, contact and call-id is done
  • added two new rpc commands ul.db_users and ul.db_contacts - for accessing number of different AoRs and contacts in a location table
  • new command ul.db_expired_contacts tells number of expired contacts

websocket

  • added “cors_mode” parameter to enable “Cross-origin resource sharing” on WebSocket handshakes
  • new function ws_close() - enables immediate closure of a WebSocket connection from the configuration file.

New in Core

  • IPv6 compile time flag removed - it is not possible to compile Kamailio without IPv6 anymore, improving the code maintainability in the core and several modules
  • set TOS for IPv6 sctp sockets
  • the syn_branch parameter has been removed from the core, as Kamailio was not fully standard compliant if this was activated.
  • auto-define cfg directive MOD_modname for each loaded module
    • example: if acc module is loaded, MOD_acc is defined in cfg
  • new parameters:
    • modinit_delay - specify microseconds to sleep after initializing a module in order to cope with systems having rate limits on new connections to db or other servers
  • removed syn_branch functionality for calculating Via branch parameter

Components

  • SCTP support implementation from core was moved as a module. No need to recompile everything to get SCTP support, just load sctp module
  • STUN implementation from core was moved as a module

Tools

kamctl

  • added parameters to add the contact path: kamctl ul add <user> <uri> <expires> <path>
  • command for dialog module management

kamdbctl

  • new command 'add-tables <gid>' to create only specific table grouped under same <gid> name
features/new-in-4.1.x.1384520493.txt.gz · Last modified: 2013/11/15 14:01 (external edit)