Kamailio SIP Server (SER) - New Features in v5.0.x
Previous stable version was 4.4.x (released on March, 2016), see what was new in that release at:
This is a draft of new features added in v5.0.x, manually updated, thus not always synchronized with what is new in source code repository.
New Modules
app_jsdt
ims_ocs
nsq
pua_rpc
rabbitmq
ss7ops
New in Old Modules
alias_db
app_lua
app_python
auth
auth_ephemeral
benchmark
carrierroute
cdp
cfgutils
added trylock() function
implemented rpc commands
cplc
db_berkeley
db_unixodbc
dialog
new rpc function: dlg.terminate_dlg
terminates a single dialog, identified by a Call-ID.
terminates an ongoing dialog by sending BYE in both directions
option to set the limit for failed keepalive to end the dialog
support for dialog replication via DMQ
from-tag optional on dlg.dlg_list/_ctx RPC commands
dispatcher
new function ds_select(setid, alg, [limit])
added new function ds_reload()
use avl indexing
dmq_usrloc
enum
evapi
htable
http_async_client
added pseudo variable http_req_id
set request's body through $http_req pseudo-variable
added support for authentication
http_client
support for HTTP proxy on a connection
added configurable authentication methods
enable keep_connection option
implemented failover between connections
imc
ims_charging
ims_dialog
ims_icscf
ims_registrar_scscf
ims_usrloc_scscf
* max_subscribes parameter - this limits the number of subscriptions per IMPU, watcher URI and event combination
* add param max_notification list size and stat of current size
ims_qos
new param regex_sdp_ip_prefix_to_maintain_in_fd
added support for IPv6 IPCAN Session on Rx interface towards PCRF
store vendor_id on auth session
new param delete_contact_on_rx_failure
added additional stat for total number of rx media sessions
new mod_param to add RTCP flow description for media flow
ipops
kex
log_systemd
matrix
mqueue
nathelper
ndb_redis
presence
new module parameter `retrieve_order_by`
added local_log_facility configuration parameter
added parameter startup_mode
added rpc command presence.refreshWatchers
pua
pv
new function pv_evalx(dst, fmt)
new class of pseudo-variable - $msg(attr) - return attributes of sip message
$msg(len) - sip message lenght
$msg(buf) - sip message buffer
$msg(body) - sip message body
$msg(body_len) - sip message body lenght
$msg(hdrs) - sip message headers
$msg(fline) - sip message first line
add s.escape.csv transformation
regex
registrar
rls
rtimer
rtpengine
new 'unidirectional' flag in Sipwise rtpengine
parameters configurable via cfg framework
rtpengine_disable_tout, rtpengine_tout_ms, queried_nodes_limit, rtpengine_retr are now configurable via kamcmd commands
implemented rpc command rtpengine.reload
rtpproxy
sca
new module parameters:
onhold_bflag, if bflag is set skips parsing SDP and sets onhold
server_address, force Contact header address in replies
sca_call_info_update(): new to/from
URI parameters
skips parsing message for To/From header values and uses
URI values from parameters
sdpops
sipcapture
added nonsip_hook support. Now $hep variable available
added X-RTP-Stat-T38 and X-RTP-Stat-Add
added support for custom fields
siptrace
siputils
sqlops
tcpops
tm
uac: added failover support for local requests
uac: added support for onsend route on local requests
tm: implemented rpc command tm.reply_callid
added t_uac_send(method, ruri, nexthop, socket, headers, body)
uac
uac_reg: add uac_reg_status() function
uac_reg: added function to remove registration
uac_reg: added RPC function to remove a registration
uac_reg: added RPC function to add a new registration
uac_reg: return HTTP-like fault codes for RPC
uac_reg: handle 423 response to outbound register
uac_reg: keep Call-ID in registration sequence
uac_reg: add setting for using a random reg_delay
userblacklist
uri_db
utils
xcap_clinet
websocket
added $ws_conid pseudo variable
implemented ws.ping and ws.pong rpc commands
implemented ws.dump rpc command
implemented ws.enable and ws.disable rpc commands
New in Core
print tos value if socket option for it cannot be set
skip unusable network interfaces
no IP addr associated
address family AF_PACKET
skip address family AF_PACKET on -l iface_name
mem_status_all - allow selecting of dumping memory status also for used fragments
mem_status_mode parameter - if set to 1, qm allocator dumps used fragments in memory status
new command line option '-Y dir'
Interpreter
A new framework (named kemi - kamailio embedded interface) was added, allowing to writing routing blocks in embedded languages such as Lua, JavaScript or Python:
New global parameter to specify the config engine:
Parameters
log_prefix_mode
If set to 1, then the log prefix is evaluated before/after each config action
needs to be set when the log_prefix has variables that are different based on the context of config execution
Functions
Memory Managers
Internal Libraries
srdb1: support for db result with allocated column names
kcore: library has been removed
kmi: library has been removed
Architecture
locking - added recursive lock apis
dedicated struct for TCP closed events
restructured source code tree
kamailio.cfg
kamcmd
kamctl
kamctl rpc jsonrpc.echo abc 123
kamctl rpc jsonrpc.echo s:abc i:123
kamctl rpc jsonrpc.echo s:888 i:123
kamctl rpc core.version
kamcli
misc
Unit Tests