Kamailio SIP Server - New Features in 5.8.x Version
📘 Previous version was 5.7.x (released on May 2023), see what was new in that release at:
📘 This is a draft of new features added in this version, manually updated, thus not always synchronized with what is new in source code repository.
New Modules
file_out
Logging from config to a file.
- https://www.kamailio.org/docs/modules/devel/modules/file_out.html
gcrypt
Crypto functions for config file.
- https://www.kamailio.org/docs/modules/devel/modules/gcrypt.html
influxdbc
Connector to InfluxDB.
- https://www.kamailio.org/docs/modules/devel/modules/influxdbc.html
microhttpd
Simple HTTP server implementation.
- https://www.kamailio.org/docs/modules/devel/modules/microhttpd.html
Archived Modules
app_sqlang
- https://github.com/kamailio/kamailio-archive/tree/main/src/modules/app_sqlang
auth_identity
- https://github.com/kamailio/kamailio-archive/tree/main/src/modules/auth_identity
New in existing Modules
cdp
- added support for TLS
- support for diameter routing agent (DRA) / relay
- support for re-auth on ro sessions initiated from charging server
cfgt
skip_unknown
modparamroute_log
modparam
corex
- new function via_reply_add_xavp_params()
- rpc command to print shm status report to file based on filter
- rpc corex.list_sockets use now lowercase for field names
- rpc corex.list_aliases use now lowercase for field names
db_mysql
- enable TLS when building with
mariadb-connector-c
- new module param opt_ssl_ca to configure CA certs
db_redis
- added TLS support
dispatcher
- option to retain existing latency stats when reloading destinations
- new function ds_dsg_fetch()
- new variable $dsg(key) to get attributes of a dispatcher group
- $dsg(key) - count active/inactive targets in the group
dmq
- added function to find dmq node by IP
dmq_usrloc:
- copy and send attributes related to contacts
geoip2
- added function for distance
htable
- rpc command to perform a dmq sync action
- option to dmq sync a single htable via rpc
- rpc command to perform a dmq resync action
- added column packing features
http_client
- added parameter timeout_mode (timeout in seconds or milliseconds)
imc
- added function to check if a room is active
- added function to check if a user is member of a chat room
ims_charging
- implemented restore of Ro sessions from database
- enhancements to make module compatible to other charging servers
- added option to get and use P-Access-Network-Info for terminating scenario
ims_dialog
- added support for database backend
- added function to get dialog by hash entry and id
ims_ipsec_pcscf
- add optional AoR argument to ipsec_destroy()
- new function to destroy IPSec based on Contact and received IP and port
- add q value to Security-Server header for IPSec
- options for ipsec_forward() to use Via or try TCP
ims_qos
- added suspend_transaction parameter
- option to use received ip, port and proto from via
- option to set DLG_MOBILE_ORIGINATING for rx_add_media_component_description_avp()
ims_registrar_pcscf
- option to delay record expiration instead of immediate delete
ipops
- create container items on demand for
srv
andnaptr
functions
kex
- added is_myhost(uri) - check if host part only is local
ldap
- option to start even when connecting to server fails
lost
- support of shape representations (as in RFC5491) and new 3d parameter
mqueue
- support for db_text storage
msilo
- new function to allow specifying src/dst addresses
- modparams for callid and status columns
- option to store call-id and reuse it on delivery
nats
- nats_publish allow reply parameter to be optional
ndb_redis
- added TLS support
p_usrloc
- added
use_domain_crc32
modparam - added
preload
modparam
pdt
- added mode parameter to allow ignoring duplicated prefixes
permissions
- RPC reload limit controlled via reload_delta module parameter
presence
- RPC command
publish_cache_sync
to sync from storage
pv
- added $viaX(params) to return the parameters part of a Via body
- via-related variables can return oc parameters
- added function to serialize xavps with quoted str values
- PPI and PAI support to $hfl() and $hflc()
- support for Diversion header in $hfl() and $hflc()
rabbitmq
- added amqps support
registrar
- added
tcpconn_id
toxavp_cfg
- larger max size for user and domain building AoR
rtpengine
- support receiving dtmf events from rtpengine and raise an event
- added support for codec-accept and codec-consume
- optional ping parameter for rpc reload command
- new modparam to disable pinging rtpengines at startup
sca
- update rr if necessary for subscriptions
sdpops
- added $sdp(c:ip) variable to return connection ip
- added sdp line interator functions and variables
secsipid
- new config function to sign providing private key data
siptrace
- added
sip_trace_msg(dst, corlid, vmsg)
siputils
- added tel2sip2() function
sl
- added send_reply_error()
- do not send error reply if message marked with delayed-reply flag
smsops
- conversion from UCS-2 to UTF-8 and viceversa
statsd
- added support for labels to metrics
textops
- new function via_param_rm("name", idx)
tls
- support for libssl 3.x
- added rpc function to kill session by id
- init in a local thread
tm
- new function t_reply_error()
topoh
- uses socket IP when no mask_ip is defined
topos
- handle early-dialog b-side UPDATE requests routing
- added support for Call-ID masking when sending to downstream
- handle NOTIFY during call setup
- update headers for stateless cancel and non-2xx ack
- added version_table parameter
usrloc
- new parameter to specify reply codes for keepalive handling
- added keepalive interval to set the step for sending
- option to randomize when keepalive is sent
- synchronize attributes from DMQ
xlog
- added kemi xlog_facility() function
New In Core
- new log macros allowing to use local log levels per module
- TCP_USER_TIMEOUT option on listening socket
- macros to specify position params for shm allocation
- config parser extended with xavp_via_reply_params parameter
- new internal message flag FL_ADD_XAVP_VIA_REPLY_PARAMS
- ability to add parameters to top via of generated sip replies
- add via reply xavp params for generation when using another reply
- xavp - helper function to set style when serializing
- internal msg flags switched to 64b
- parameter for increasing socket send buffer size
- xavp - option to quote string values when serializing
- kemi - parameter for request route callback function name
- added proto field to advertise listen structure
- tcp - set limit for reading a message
- tcp - close connection without data traffic at all
- tcp - exclude crlf ping from data exchange state
- tcp - limit number of accepted connections per src ip
- added msg_recv_max_size global parameter
- added tcp_msg_read_timeout parameter
- added tcp_check_timer parameter
- added tcp_msg_data_timeout parameter
- added tcp_accept_iplimit parameter
- use advertised proto to build advertised sock string
- via builder can use proto from xavp fields or advertised address
- set atexit to default to
no
- added core parameter mem_add_size
- xavp - serialize long long values
- parser extended to handle diversion with multiple bodies
- keep listen socket even if advertise address does not resolve
- added internal API functions to run functions in threads
- added tls_threads_mode global parameter
Command Line Arguments
Memory Managers
- alignment to 16 bytes for
q_malloc (qm)
andf_malloc (fm)
- internal malloc optimization factor increased to 15
- archived incomplete memory managers
- api function to print status with filter
Architecture
kamailio.cfg
Tools
kamcmd
- Makefile - CUSTOM_NAME for specifying custom binary name
kamctl
- added support for deleting a gateway or full setid in dispatcher
kamdbctl
kamcli
others
route_graph.py
script updated to python version 3.x