Kamailio SIP Server (SER) - New Features in v4.4.x
Current stable version is numbered 4.4.x and it was released in March 30, 2016.
Previous version was 4.3.x (released on June 10, 2015), see what was new in that release at:
New Modules
cfgt
crypto
http_async_client
http_client
ims_dialog
log_custom
log_systemd
smsops
statsc
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
sr-user discussion
acc_radius
app_lua
async
auth_radius
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/receive FD disappeared
evaluate the supported_vendor_id-AVP during CER/CEA
load balancing timer has millisecond resolution
cfgutils
cnxcc
corex
kamcmd corex.pkg_summary pid 12345
kamcmd corex.pkg_summary idx 1
ctl
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/insert
implemented raw query for UPDATE/DELETE/REPLACE
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/facility setters
added rpc commands for module level/facility setters
dialog
re-entrant mutex for dialogs hash table slots
run event_route[dialog:end] in case of dialog termination by interface commands
make dialog context available in event route tm:local-request
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
dispatcher
relative weight distribution added - it is possible to assign “rweight” (relative weight) param to each host in destination group. rweight is in the integer range from 1 to 100
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'ing all contacts at startup
support for throttling sync of all usrloc records
domain
drouting
enum
evapi
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("htable", "htable",
"a=>size=4;dbtable=a;cols='key_name,val1,val2,val3'")
ims_auth
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, in case QoS fails during a session
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
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
jsonrpc-c
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
lcr
misc_radius
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("mtree", "mtree",
"name=mt;dbtable=mtree;cols='tprefix,tvalue1,tvalue2'")
nathelper
p_usrloc
pdb
permissions
presence
added presence:notify-reply event
implemented $notify_reply for handling in presence:notify-reply event
added flags, user_agent columns to active_watchers
extended $subs to other subscription properties
presence_xml
pua_dialoginfo
pua_reginfo
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
$snd(sproto) returns sending protocol as string
registrar
add contact and received values to xavp_rcd
set xavp_rcd on registered()
export lookup_to_dset with uri to config
allow registered() in any route
send 400 response if the reg-id value is invalid
rr
rtpengine
new fifo command, namely nh_ping_rtpp, which pings the given proxy or all proxies, and if a proxy does not respond, disable it temporarily
try the next media relay available if the limit reached reply is received
unset “don't fragment” ip header flag
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. “disabled(permanent)” nodes
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
sipt
siputils
sst
add
refresher parameter in order to follow
RFC 4028
statsd
tcpops
keepalive functions enabled on BSD
add tcp_conid_state function to check connection state
framework to execute event_route[tcp:closed]
per-connection control over execution of event route tcp:closed
added “disabled mode” to closed_event param - this mode will bypass the event callback registration to improve performances when the “tcp:closed” route feature is not needed
textops
textopsx
tls
tm
use xavps for t_load_contacts/t_next_contacts/t_next_contact_flow
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
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
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't in listening socket list when loading record from database
option to clean up database on write back/through modes
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); set to 1 for enabling trimming
new parameter http_response_mode to control what response part is returned
if http_response_mode=0, only the first line is returned
if http_response_mode=1, all the response is returned
websocket
xlog
New in Core
Interpreter
new feature to execute event_route[core:worker-one-init] - the event_route[core:worker-one-init] is executed if defined in kamailio.cfg after the first udp sip worker process executed the child_init() for all modules, before starting to process sip traffic
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
trigger event_route execution for unexpectedly-closed and client-closed tcp connections
Parameters
Functions
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
kamailio.cfg
kamcmd
kamctl