====== SIP Router - New features in development version ====== The page collects the summary of the new features in SIP Router development version. This source tree branch will result in release 3.1.0. Current stable branches are 3.0 * sr_3.0 * kamailio_3.0 - Kamailio (OpenSER) 3.0.0 was released Jan 11, 2010 ===== New SIP Router modules ===== ==== app_lua ==== * execute embedded lua scripts * you get access to SIP message processed at that time * several internal SIP router functions are exported to Lua as well * http://sip-router.org/wiki/api/lua/devel * http://sip-router.org/docbook/sip-router/branch/master/modules/app_lua/app_lua.html ==== app_python ==== * execute embedded python scripts * you get access to SIP message processed at that time * http://sip-router.org/docbook/sip-router/branch/master/modules/app_python/app_python.html ==== debugger ==== * config file debugger * print the trace of executed actions in config for SIP messages * step-by-step execution of each action in config (similar to gdb) * can be done from remote system via RPC interface (e.g., XMLRPC) * evaluate pseudo-variables at runtime * print line and action type for each step * http://sip-router.org/docbook/sip-router/branch/master/modules/debugger/debugger.html ==== geoip ==== * perform lookups based on IP against a local geoip database * resulted attributes are available in pseudo-variables * support to perform many lookups and store the results at the same time * http://sip-router.org/docbook/sip-router/branch/master/modules/geoip/geoip.html ==== mqueue ==== * message queue for inter-process communication * first message added is first consumed * messages are pairs of strings (key, value) * http://sip-router.org/docbook/sip-router/branch/master/modules/mqueue/mqueue.html ==== mtree ==== * load db tables in shared memory indexed on tree based on prefix key * fast lookup for keys like DIDs * can manage many trees at the same time * http://sip-router.org/docbook/sip-router/branch/master/modules/mtree/mtree.html ==== pipelimit ==== * limit traffic based on different algorithms * spawned by reusing parts of ratelimit module * available in branch tmp/pipelimit ===== New in Old SIP Router modules ===== ==== blst ==== * functions for ignoring blacklist events per message: * blst_set_ignore(mask): set the events in mask in the per per message blacklist ignore mask for a request (see dst_blacklist_udp_imask for possible values). The basic operation is: msg_blst_ignore_mask|=mask. * blst_clear_ignore(mask): like blst_set_ignore(mask), but instead of setting some events, it clears them (msg_blst_ignore_mask&=~mask). * blst_rpl_set_ignore(mask): like blst_set_ignore(mask), but sets the mask for possible local replies to the current message. * blst_rpl_clear_ignore(mask): like blst_rpl_ignore(mask), but clears instead of setting. ==== pv ==== * new pv class to get access to timeval attributes (seconds and microseconds) * $PV(u) - microseconds (cached) * $PV(s) - seconds (cached) * $PV(un) - microseconds (not cached) * $PV(sn) - seconds (not cached) * $PV(Sn) - string with sec.usec * new pv class to get access to next hop address attributes * $nh(u) - uri * $nh(U) - username * $nh(d) - domain * $nh(p) - port * $nh(P) - protocol ==== tls ==== * new parameters for advanced openssl options * http://lists.sip-router.org/pipermail/sr-dev/2010-March/006559.html ==== tm ==== * t_reply() can be used in tm onreply_route to change reply status code and reason * support for Reason header (according to RFC3326) in local generated CANCEL ==== uac ==== * can perform registrations to remote SIP servers * user profiles are loaded from database at startup * the registrations are automatically refreshed before expiration * cfg function to lookup local user based on contact address ==== xlog ==== * new function xlog([level], text) - print cfg line before log message * new function xdbg(text) - print cfg line before log message ==== Integration of ser's config framework ==== * various parameters from kamailio's modules are integrated with ser config framework and can be modified at runtime with sercmd * the list of modules includes : carrierroute, registrar, siputils, ratelimit (and growing) * a complete list of changeable parameters are in modules documentation pages ===== New in Core ===== * global, per protocol blacklist ignore masks (via extended send_flags). See dst_blacklist_udp_imask a.s.o (dst_blacklist_*_imask). * per message blacklist ignore masks ===== New Core Parameters ===== * dst_blacklist_udp_imask - global blacklist events ignore mask for udp (a blacklist event/reason set in this variable will be ignored when deciding whether or not to blacklist an udp destination). Can be set at runtime. Default: 0 (no blacklist reason is ignored). Possible values: 0 -disabled, 2 - send error; 4 - connect error, 8 - icmp (reserverd), 16 - transaction timeout, 32 - 503 received, 64 - administratively prohibited (manually set). * dst_blacklist_tcp_imask - like dst_blacklist_udp_imask, but for tcp. * dst_blacklist_tls_imask - like dst_blacklist_tls_imask, but for tcp. * dst_blacklist_sctp_imask -like dst_blacklist_sctp_imask, but for tcp.