Kamailio SIP Server - New Features in 6.1.x Version
Previous version was 6.0.x (released on Jan 2025), see what was new in that release at:
This is a draft of new features added in devel version, manually updated, thus not always synchronized with what is new in source code repository.
New Modules
auth_arnacon
auth_web3
peerstate
ptimer
New in existing Modules
acc
- microsecond precision for cdr
acc_json
- added
cdr_skipparameter
app_jsdt
- added dynamic buffer sizing to load bigger .js files
app_python3s
- added
threads_modeparameter
auth
- added support for password hashing with
SHA512 - added support for
sha-512-256hashing
cdp
- vrf optional attribute on Acceptor and Peer definitions allowing Virtual Routing and Forwarding to be used in that socket.
- added support for
Min-Requested-Bandwidth-[DU]LAVPs
cfgutils
- lock family functions got another optional key parameter to generate the hash id. See #3808 or cfgutils docs for details
corex
- functions for managing via-body flags
- added function
msg_vbflag_parse() - extended list for iflag functions for msg apply changes
- new function
add_tcp_alias()as alternative forforce_tcp_alias()
db_redis
- added auto expiry support with hashes
- added sentinel support
- added support of
max_key_length
dialog
- added
dlg_refer_cid(...)- send refer within a dialog matched by call-id
dispatcher
- added ping socket configuration
- new modparam
ds_ping_fr_timeout - added
ds_mark_addr(state, group, uri) $dsv(name)extended to return setid and uri- new dispatching algorithm
14(round-robin or serial) - added parameter
event_callback_mode - added internal uid filed for destination structure and print it over rpc
- option to manage destination states via internal uid
- support for hexadecimal flags format in the list file
- support for fields in ds_db_extra_attrs
- normalization of the default transport for destination list entries according to RFC 3263
dmq
- added
remove_inactiveparameter
dmq_usrloc
- new modparam to sync
UL_CONTACT_EXPIREactions - new modparam for
cflagsreplication
file_out
- added
require_rotationoption - added rotation on timer
htable
- support for 32bit and 64bit integer keys
- exported config functions for inc, dec and is_null
- more KEMI specific functions
json
- new transformation
{json.parsex,path}
kex
- added
KDMQto request statistic - added stats for
OPTIONSreplies
mtree
- added
itemparameter (add items to tree via modparam) - added
modeattribute for mtree definition
nathelper
- modparam to not send ping to Path
outbound
- encode bind address into flow token as destination
- added
check_flow_token()function
pdb
- add new RPC command to view/change PDB query timeout
permissions
- allow_register_include_port(), the permissions module got a new function, which extends a functionality for checking contacts (locations) allowed to be registered. With a newer function one has a possibility to include Contact URI port into this check. See #3846 or permissions docs for details.
- option to find the longest matching subnet -
subnet_match_modeparam - support for integer peer_tag
pua_dialoginfo
- use_uuid optional parameter to generate pres_id using libuuid via uuid module
pua_json
- add support for
as-feature-event
pv
- new transformation
{uri.rmparam,name} - added functions to remove all root xavp/xavi items
- added
$ttsvariable - new transformation
{num.name} - new transformation
{s.selectsw,idx}- select with whitespaces delimiter - new transformation
{s.sha1} - new transformation
{s.intv} - added
{s.crc32}transformation - added
sha3/keccaktransformations
pv_headers
- added remove all headers function
rabbitmq
- kamailio init will not fail if rabbitmq connection doesn't work. The module will try to reconnect when rabbitmq_publish() or rabbitmq_publish_consume() are called in the config.
rr
loose_route_mode()- added vmode bit 2 to skip outbound- added
loose_route_modemodparam
rtpengine
- added internal hash table dmq replication
- added support for commands needed for
siprec - added
rtpengine_connect(...)function
sca
- from_uri_avp to_uri_avp module parameters adding the possibility of define what is the URI value for To and/or From instead of the values coming from the SIP message.
secfilter
- added RPC
secfilter.del_wlcommand
sipdump
- added mod param
wait_mode - new parameter
fagexto provide file age with time expression
siputils
-
sip_p_charging_vector() Once a new PCV has been generated by 'g' or 'f' the PCV cannot be changed again. The icid-generated-at parameter of a generated PCV will now be set to the sending interface IP address The function now returns a status value about what was done.
-
$pcv(status) New pseudo-variable parameter. Returns whether the PCV header was successfully parsed, deleted, newly generated or other. See #3929 or siputils for details.
-
contact_param_encode_alias()- function to encode contact with alias
sl
- stats for 1xx replies
tcpops
tcp_con_alive()- function to check if a connection is alive by remoteaddr:porttcp_con_alive()- support also for SIP URI parameter
textops
- added
str_all_in()function - added
set_body_hex(hbody, ctype) - added
set_rpl_body_hex(...)
tls
- added
provider_quirksparameter - added support for tls keys log -
keylog_modeandkeylog_fileparameters - support to send keys log to a udp peer
- added option to filter key logging -
keylog_modemodparam
tm
- new modparam
delayed_reply - rpc commands for sending requests without automatic ACK
tm.retransmit_replyrpc command- rpc command
tm.retransmit_reply_callid - invoke event route
tm:local-requeston generated ACK messages - run event
tm:local-requestfor CANCEL if locally initiated - added module parameter
evlreq_mode - rpc commands with hexa-encoded body
- added rpc command
tm.t_uac_attrs - added
t_relay_to_proxy("proto:addr:port") - trigger
tm:local-requestevent for ACK on negative replies - new parameter
local_ack_branch_modeto control via branch value for local ACK - added
event_route[tm:local-ack-sent] - added
evcb_local_ack_sentparameter - option to create a completely new branch for local 200ok-ack
- per uac/branch via-body flags field
- added
t_msg_apply_changes()function - setting for disabling auto ack generation
tmx
- functions for management of t-uac via-body flags
- added function to generate ack locally in config
topoh
- added
$th(ecallid)- return encoded call id
topos
- added
contact_mode=3and 2 new modparam for contact host domains - added new modparam for updating record time on re-INVITE
uac
- added
fr_timeoutandfr_inv_timeoutfor locally generated requests - added
ftagandttagfields for$uac_req(...)
Archived Modules
modules considered obsolete and not maintained have been moved to https://github.com/kamailio/kamailio-archive/
- app_java
- db_berkeley
- db_perlvdb
New in Core
- VRF Virtual Routing and Forwarding support in socket definition
ksrxrand- framework to set custom rand/srand functionscoreparam[name]- generic core parameter definition- new
coreparam[random_engine]to control rand api - added option
oforloadmodule - allow
route(...)usage insideonsend_routeblock - support tls connection domain matching
- added
$defv(name)variable to return unquoted value of the define - added
$defs(name)variable to return defined value as string between double quotes - added multiarch support for rpm generation
- option for tls multi-threading processing
- dns cache - added rm delay of entries with high refcnt
- support for modparam int stored in shared memory
- rpc command
modparam.getnto get the value of an integer modparam - rpc command
modparam.setnto set integer modparam stored in shared memory - rpc command
modparam.listto list all modules parameters - rpc command
modparam.getsto get the string value of a module parameter - added
coreparam[timer_sanity_check] - fixup helpers for numbers support hexadecimal format
- added
coreparam[iuid]to set a string instance unique id - added
$iuidvariable - return the instance unique id value log_prefix_modevalue2to use faked request for non-sip logging- internal api parameter to add extra value to via branch
- use process shared pthread mutexes for arm64
- use stdatomic for arm64
- added sha3 implementation
- msg parser - field for via-body flags
- srjson - array pretty-printing similar to structure alignment
Command line arguments
--domain=val- match the config parameter as alternative to alias--iuid=val- set instance unique id via cli parameter
Interpreter
Parameters
msg_apply_changes_mode- control if message changes are applied before transaction is createdmsg_clone_extra_size- specify extra size in bytes to be allocated for message buffer when cloning ittcp_listen_backlog- allows to set the value for tcp listen backlogtcp_main_threads- control the tcp main process working threadstls_connection_match_domain- tls connection domain matchingcoreparam[name]=value- generic core parameter definition
Packaging
- added alma-10 and rocky-10 packaging
- added arm64 packaging for Debian/Ubuntu
kamailio.cfg
- define option to relay RTP always
Tools
kamcmd
- basic support for JSONRPC
- buffer size for JSONRPC response made cli option
kamctl
- added options to kamctlrc to set db cli and params