Table of Contents
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
app_python
- execute embedded python scripts
- you get access to SIP message processed at that time
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
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
mqueue
- message queue for inter-process communication
- first message added is first consumed
- messages are pairs of strings (key, value)
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
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
tm
- t_reply() can be used in tm onreply_route to change reply status code and reason
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
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.