User Tools

Site Tools


This is an old revision of the document!

Kamailio SIP Server (SER) - New Features in Devel Version

Current devel version will be numbered 5.0.0 and it is planned to be released at the end of 2016.

Previous devel, current 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 devel version, manually updated, thus not always synchronized with what is new in source code repository.

New Modules


New in Old Modules


  • ability to execute routing blocks written directly in Lua


  • ability to execute routing blocks written directly in Python


  • added option to use SHA-256 encryption algorithm for digest authentication
  • add an option to include an Authentication-Info header in the response to a successful authentication


  • new config variable replace_query
    • Tells if the ODBC replace query is supported by the DB odbc driver
    • Just like insert, but update the row if it exists otherwise insert


  • 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


  • single digit is now valid in function enum_query
    • is_e164() returns true for a single digit (previously two digits)


  • support for tagging connections and select for sending based on tag
    • evapi_set_tag(tname)
    • evapi_multicast(data, tag)
    • evapi_async_multicast(data, tag)
    • evapi_unicast(data, tag)
    • evapi_async_unicast(data, tag)


  • new core stats
    • RPC request: stats.get_statistics all
    • requests by method
      • core:rcv_requests_invite
      • core:rcv_requests_cancel
      • core:rcv_requests_ack
      • core:rcv_requests_bye
      • core:rcv_requests_info
      • core:rcv_requests_register
      • core:rcv_requests_subscribe
      • core:rcv_requests_notify
      • core:rcv_requests_message
      • core:rcv_requests_options
      • core:rcv_requests_prack
      • core:rcv_requests_update
      • core:rcv_requests_refer
      • core:rcv_requests_publish
    • replies by status code
      • core:rcv_replies_1xx
      • core:rcv_replies_18x
      • core:rcv_replies_2xx
      • core:rcv_replies_3xx
      • core:rcv_replies_4xx
      • core:rcv_replies_401
      • core:rcv_replies_404
      • core:rcv_replies_407
      • core:rcv_replies_480
      • core:rcv_replies_486
      • core:rcv_replies_5xx
      • core:rcv_replies_6xx


  • added parameters to control connect and command timeouts
    • connect_timeout (int)
    • cmd_timeout (int)


  • new module parameter `force_delete`
    • disabled by default
    • enabling this parameter will delete expired presentity records without updating watchers (no NOTIFY)
  • new module parameter `retrieve_order_by`
    • default value is “priority”
    • Used to set the order-by of the db query for fetching the presence records


  • new function pv_evalx(dst, fmt)
    • The fmt string is evaluated twice for exiting variables, the result is stored in dst variable.


  • Add expiry value to the xavp.
    • handy if Kamailio for some reason changes the expiry value (min, max or variations caused by expiry_range)


  • new 'unidirectional' flag in Sipwise rtpengine
    • allows kernelization of one-way streams


  • 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


  • new config variable $sdp(body)
    • returns the sdp body as raw string


  • new pseudo variables
    • $pcv(orig) - returns orig-ioi from P-Charging-Vector header
    • $pcv(term) - returns term-ioi from P-Charging-Vector header

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


A new framework (named kemi - kamailio embedded interface) was added, allowing to writing routing blocks in embedded languages such as Lua or Python:


  • 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
      • e.g., $cfg(line))
  • latency_cfg_log
    • Log message with the duration of executing request route or reply route is printed to syslog
  • mcast
    • Specify interface to join multicast group for multicast listen address


Memory Managers



  • rr module parameter enable_full_lr now defaults to 0
  • no more lr=on in Record-Route
  • use t_precheck_trans() to catch retransmissions faster
  • drop silently traffic from scanners
  • added option to block 401/407 from downstream




features/new-in-devel.1479161261.txt.gz · Last modified: 2016/11/14 23:07 by mslehto