Kamailio SIP Server and SER - New Features in Devel Version

Current devel version will be numbered 3.3.0 and it is planned to be released before mid summer 2012.

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

app_mono

db_cassandra

db_cluster

msrp

presence_profile

tmrec

xhttp_rpc

New in Old Modules

app_lua

  • more SIP server internal functions exported as native Lua functions, among them, functions from modules such as:
    • cfgutils (lock, unlock)
    • sqlops (sql_xquery)
    • msilo
    • siputils
    • textops
    • pua_usrloc
    • rls
    • alias_db
    • uac
    • mqueue
    • tmx

db_postgres

  • affected_rows() DB API now supported

dialog

  • new event routes
    • event_route[dialog:start] - executed when dialog starts (200 ok for initial INVITE)
    • event_route[dialog:end] - executed when dialog is ended (BYE or dialog timeout)
    • event_route[dialog:failed] - executed when initial INVITE fails (>300 reply)
  • new parameters
    • send_bye - set sending BYE flag for all dialogs automatically
    • wait_ack - wait for ACK to be sent after a negative reply for initial INVITE
  • dialog profiles and internal flags are stored to db and loaded upon restart

dialplan

  • new matching operator - fnmatch (match_op=2)
    • match using shell-like patterns

dispatcher

  • refactored dispatcher destination states
    • states: active, trying, inactive, disabled
    • probing is a mode that can be set for active and inactive states
  • added outbound_proxy modparam for use with dispatcher pings

domain

  • added new function 'lookup_domain' that in addition to checking if domain is local, adds attributes of local domain into AVPs
  • domain attributes are stored in new table 'domain_attrs'
  • removed support for db only mode and, as consequence, removed 'db_mode' module variable

lcr

  • gateways with special LCR instance id 0 belong to all normal LCR instances
  • added 'lcr.defunct_gw' rpc command

mi_rpc

  • added MI command to run RPC commands

msilo

  • extra headers in MESSAGE requests now stored in the silo
  • added storage of extra SIP headers from AVP when m_store() is called

mtree

  • added 'mt_allow_duplicates' module variable

pdt

  • new functions:
    • pd_translate(sdomain, rmode)
  • new rpc commands:
    • pdt.reload - reload database records in cache

permissions

  • transport protocol argument of allow_trusted() function call can now have value “any” meaning that any transport protocol is acceptable

presence

  • support for polite-block in pres_auth_status() exported function

pua

  • added DB only mode to PUA. Useful for scaling presence/RLS across multiple servers.

pv

  • new transformation class line
    • {line.count}
    • {line.at,pos}
    • {line.sw,match}
  • new string tranformations
    • {s.trim}
    • {s.ltrim}
    • {s.rtrim}
    • {s.rm,match}
  • support of URN parsing (e.g.: urn:service:sos.fire)
    • $ru= “urn:service:sos.fire”
    • $rz= “urn” (scheme)
    • $rU= “service”
    • $rd= “sos.fire”
  • new pseudo variables
    • $dic = Diversion header “counter” parameter value

registrar

  • option to set max contact per REGISTER (via xavp)
  • handle GRUU extension (RFC5627)

rls

  • added DB only mode to RLS. Useful for scaling RLS across multiple servers
  • new modparam to not perform back-end subscriptions to non-local presentities
  • rls_presentity table can be stored in a different DB to other RLS tables
  • new modparam to limit the number of back-end subscribes for each RLS subscribe dialog

rr

  • added new record_route_advertised_address() exported function
  • detect GRUU addresses and don't match 'myself' for them

rtimer

  • execute route blocks on micro-second timer base

sdpops

  • new functions
    • sdp_with_codecs_by_id(“codecs”)
    • sdp_with_codecs_by_name(“codecs”)
    • sdp_remove_media(“type”)
  • old functions
    • functions for keeping only a set of codecs can take a second parameter to filter the matching on certain media type

sl

  • new event_route[sl:local-response] that allows inspection of locally generated (configuration file or code) stateless responses. This includes HTTP responses (enable new core option http_reply_hack if you are using this event_route and HTTP)

textops

  • new function: in_list(subject, list, separator)

textopsx

  • new function: keep_hf(expr)
    • remove all the non-mandatory headers that don't match expr
  • new function: fnmatch(value, match, flags)
    • match using shell-like patters based on C fnmatch(…)

tls

  • new parameters:
    • renegotiation - enable/disable TLS cipher renegotiation

tm

  • $snd() structure filled in for event_route[tm:local-request]
  • new event_route[tm:local-response] that allows inspection of locally generated (configuration file or code) transaction stateful responses

usrloc

  • save unique string ID for each contact (ruid column)
  • handle +sip.instance parameter from GRUU extension (rfc 5627)

xlog

  • xlog(facility,log-level,message) allows to log messages with dedicated syslog facility

New in Core

Database Enhancements

  • bitwise AND operation added to DB queries
  • ability to specify DB connections as non-pooled in DB URLs

Global Parameters

fork_delay

  • number of usecs to wait before forking a process

http_reply_hack

  • does what the old HTTP_REPLY_HACK compile-time option did
  • defaults to no (disabled)
  • enable this if you use the new event_route[sl:local-response] and the embedded HTTP server module

latency_limit_action

  • time in micro seconds - if the execution of a config action takes longer than it, a log message is printed

latency_limit_db

  • time in micro seconds - if the execution of a database query takes longer than it, a log message is printed

latency_log

  • log level to print latency log messages

max_while_loops

  • setting to 0 means infinite loops are allowed in configuration file (you still get a warning on start-up)

socket workers

  • set the number of worker processes to handle traffic on specific listen sockets

tcp_clone_rcvbuf

  • enable or disable cloning of received data on TCP connections to allow safe updates directly inside the incoming buffer

tls_max_connections

  • limit the number of active tls connections

New RPC Commands

core.tcp_list

  • list active TCP connections

core.aliases_list

  • list local name aliases (matching myself)

core.sockets_list

  • list local listen sockets

features/new-in-devel.txt · Last modified: 2012/05/11 12:09 by jih