– Kamailio SIP Server –


This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
features:new-in-1.5.x [2011/08/23 09:31]
features:new-in-1.5.x [2012/03/22 13:33] (current) removed spam
Line 1: Line 1:
 +===== New in v1.5.0 =====
 +Released on March 02, 2009
 +==== New Kamailio modules ====
 +* [b]htable[/​b]
 +** Generic hash table container made available to config script
 +** Able to deal with many hash tables at same time in config file
 +** Ability to load DB table in hash table at startup
 +** Auto-expire for hash table values - will be removed automatically (easier to implement caching system)
 +** Auto-expire value can be updated from config file
 +** [[http://​www.kamailio.org/​docs/​modules/​devel/​htable.html|Documentation]]
 +* [b]misc_radius[/​b]
 +** New module that replaces Kamailio 1.4 modules avp_radius, group_radius,​ and uri_radius
 +** [[http://​www.kamailio.org/​docs/​modules/​devel/​misc_radius.html|Documentation]]
 +* [b]presence_dialoginfo[/​b]
 +** Dialog Info support for Presence Server
 +** [[http://​www.kamailio.org/​docs/​modules/​devel/​presence_dialoginfo.html|Documentation]]
 +* [b]pua_dialoginfo[/​b]
 +** Dialog Info support for Presence User Agent
 +** [[http://​www.kamailio.org/​docs/​modules/​devel/​pua_usrloc.html|Documentation]]
 +* [b]purple[/​b]
 +** Multi-protocol gateway module using Purple (Pidgin/​ex-Gaim) library
 +** Can connect SIP to GTalk, MSN, ..., for IM&P
 +** [[http://​www.kamailio.org/​docs/​modules/​devel/​purple.html|Documentation]]
 +* [b]pv[/b]
 +** Module to collect pseudo-variables from core, available in configuration file.
 +** [[http://​www.kamailio.org/​docs/​modules/​devel/​pv.html|Documentation]]
 +** new pseudo-variable introduced in 1.5.0
 +*** $branch(name) class: [[pseudovariables:​devel#​branch_attributes|see here]]
 +*** $TS - current time stamp, refreshed upon each call
 +*** $TF - current time string formatted, refreshed upon each call
 +** new transformations introduced in 1.5.0
 +*** {tobody.abc} - return parts of a To-Body structure - [[transformations:​devel|see here]]
 +* [b]qos[/b]
 +** Module that tracks per dialog SDP sessions.
 +** The QoS module is sitting on top of the dialog module and provides an API to be used by other module.
 +** [[http://​www.kamailio.org/​docs/​modules/​1.5.x/​qos.html|Documentation]]
 +* [b]regex[/​b]
 +** PCRE regular expression matching
 +** Regular expressions can be stored in a file and structured in groups
 +** [[http://​lists.kamailio.org/​pipermail/​devel/​2009-January/​017544.html]]
 +** [[http://​kamailio.org/​docs/​modules/​devel/​regex.html|Documentation]]
 +* [b]rtimer[/​b]
 +** execute route blocks on timer basis
 +** can deal with multiple timers
 +** can create new timer processes
 +** each timer can execute multiple route blocks
 +** [[http://​www.kamailio.org/​docs/​modules/​devel/​rtimer.html|Documentation]]
 +* [b]siputils[/​b]
 +** SIP utilities module
 +** various utilities related to the SIP protocol
 +** management of 183 and 180 to control the ringing tone
 +** [[http://​www.kamailio.org/​docs/​modules/​devel/​siputils.html|Documentation]]
 +* [b]sqlops[/​b]
 +** SQL operations module
 +** Among features:
 +*** many DB connections - the module can connect to many databases on different servers using different DB driver modules at the same time.
 +*** many DB results - the module can store many results of different SQL queries in separate structures at the same time. Thus is possible to work in parallel with several DB results.
 +*** access via pseudo-variables - the content of SQL query result is accessible via pseudo-variables.
 +*** array indexes - fast access to result values via array position: [row,​column].
 +*** persistence in process space - a result can be used many times in same worker process. Query once, use many times. ​
 +** [[http://​www.kamailio.org/​docs/​modules/​devel/​sqlops.html|Documentation]]
 +* [b]utils[/​b]
 +** Utilities module
 +** http_query() function to get data from http servers
 +** functionality to configure run time forwarding (copying) of certain messages
 +** [[http://​www.kamailio.org/​docs/​modules/​devel/​utils.html|Documentation]]
 +* [b]sanity[/​b]
 +** Module for sanitizing SIP messages
 +** detect malformed messages early in the configuration
 +** [[http://​www.kamailio.org/​docs/​modules/​devel/​sanity.html|Documentation]]
 +==== New in Kamailio modules ====
 +* [b]*_radius modules[/b]
 +** New [b]misc_radius[/​b] module replaces Kamailio 1.4 modules: avp_radius, group_radius,​ and uri_radius
 +** All misc_module functions now load AVPs from SIP-AVP reply items from RADIUS.
 +** All functions send extra attributes to RADIUS if configured to do so by module parameters
 +** Replaced avp_load_radius() function by radius_load_caller_avps() and radius_load_callee_avps() functions that take user, whose AVPs are loaded, as a string parameter that may contain pseudo variables.
 +** String names of AVPs are not anymore prefixed with anything when AVPs are loaded (if needed, do prefixing in your Radius server).
 +* [b]acc module[/​b] ​
 +** Added support for integer valued Radius attributes.
 +* [b]auth_radius module[/​b] ​
 +** Added auth_extra module parameter that can be used to configure, which extra attributes (if any) are included in RADIUS queries. ​ One such attribute could, for example, be Acct-Session-Id with Call-Id as its value.
 +* [b]carrierroute module[/b]
 +** fetch result support, no increase in private memory pool necessary anymore to load larger routing data sets
 +** extensive refactoring and cleanup, use standard functions or functions of the core instead of own implementations
 +** efficient matching for domains and carriers based on numerical IDs
 +** new support for non-numerial prefix matching (standard ascii set), configurable with a module parameter (match_mode)
 +* [b]db_mysql module[/b]
 +** support for BIGINT (8 byte integer) values
 +** add group functionality to read content from specified sections of the mysql config, the group can be setup in the db_url
 +* [b]db_postgres module[/b]
 +** support for BIGINT (8 byte integer) values
 +* [b]db_unixodbc module[/b]
 +** support for BIGINT (8 byte integer) values
 +** fetch_result support, to better support modules like usrloc, carrierroute and dialog with larger data sets
 +* [b]dialog module[/b]
 +** ability to execute a route block when a dialog time-outs
 +** exports dialog attributes via pseudo-variable $dlg(...)
 +** exports dialog context via pseudo-variable $dlg_ctx(...)
 +** dlg_manage() function can be used to handle SIP requests with dialog module, as alternative to Route-header callback
 +** dlg_bye() can be used to send BYE to one or both sides in the dialog
 +** dialog structure stores flags field that can be managed from config file
 +** option to send BYE when dialog expires
 +** dlg_bridge() can be used to bridge two SIP users in a call using INVITE(on hold)-REFER-BYE mechanism
 +** dlg_transfer() can be used to transfer one side of the dialog to a new SIP address
 +** new MI command - dlg_bridge - to connect two sip users via MI interface - can be used to implement in a easy manner click-to-dial functionalities
 +* [b]dialplan module[/b]
 +** Regular expressions are now Perl 5.x, instead of T-Rex (subset of POSIX), compatible due to use of PCRE regular expression library.
 +** Alpha-stage t-rex library code removed
 +** Types of regular expressions that can be used for matching increased substantially via PCRE:
 +*** [[http://​www.pcre.org/​]]
 +*** [[http://​perldoc.perl.org/​perlre.html]]
 +* [b]dispatcher module[/b]
 +** new algorithm 8 - select first destination in the set
 +** priority can be assigned to each destination address
 +** better predictability of selected destinations and easier (another) way to implement routing failover
 +** check: [[http://​www.kamailio.org/​docs/​modules/​devel/​dispatcher.html|Documentation]]
 +* [b]gflags module[/b]
 +** functionality of this module was integrated into the cfgutils module
 +* [b]lcr module[/b]
 +** New high-performance implementation that keeps lcr information in in-memory hash table, whose size can be given in a new module parameter '​lcr_hash_size'​. ​ See lcr/README for lcr function execution times.
 +** New '​weight'​ field in '​gw'​ table that can be used to assign a gateway a weight among gateways of its group.
 +** New '​hostname'​ field in '​gw'​ table that (if not null) is used as Request-URI host part.  Like before, request is still forwarded to gateway'​s IP address.
 +** Introduced aliveness checking of gateways. ​ A gateway is eligible for aliveness check, if value of new '​gw'​ table field '​ping'​ has value 1 for the gateway.
 +** Support for prefix_mode=1 has been dropped.
 +** lcr_dump MI function has been split into lcr_gw_dump and lcr_lcr_dump functions.
 +** lcr_reload function is now executed under a lock thus minimizing race conditions.
 +** Regular expressions are now Perl 5.x, instead of POSIX, compatible due to use of PCRE regular expression library.
 +** load_gws()/​next_gw() functions can now be called also from FAILURE_ROUTE.
 +** to_gw() function now takes an optional pseudo variable argument that holds the address to be checked.
 +** New function to_gw_grp() replaces to_gw() function with group id argument.
 +** Enhanced versions of load_contacts()/​next_contacts() functions have been moved to tm module as t_load_contacts()/​t_next_contacts() functions.
 +* [b]options module[/b]
 +** functionality of this modules were integrated into the [b]siputils[/​b] module
 +* [b]registrar module[/b]
 +** the registered() function can now load the compared Call-Id from the reg_callid_avp AVP
 +** new function: unregister(table,​ uri) - remove all contacts for uri from table
 +** save() accept a new flag 0x04 to store and maintain single contact address per AoR
 +** new function: reg_fetch_contacts(table,​ uri, profile) - fetch contacts for uri from table in profile. You can access the attributes for contact via $ulc(profile=>​attr)
 +** new function: reg_freee_contacts(profile) - release profile structure
 +** new pseudo-variable:​ $ulc(profile=>​attr) - access attributes of contact records from profile
 +** check: [[http://​www.kamailio.org/​docs/​modules/​devel/​registrar.html|Documentation]]
 +* [b]sl module[/b]
 +** new send_reply(code,​ reason) function that detect if the proxy is doing stateless/​stateful processing and sends the reply accordingly
 +* [b]textops module[/b]
 +** Added set_body("​text",​ "​content-type"​) function - set the body of a SIP request
 +** Added set_reply_body("​text",​ "​content-type"​) function - set the body of a SIP reply generated by Kamailio (OpenSER)
 +** Added {re.subst,​expression} transformation - perform Perl-like substitutions on Pseudo-Variable values:​[[http://​www.kamailio.org/​dokuwiki/​doku.php/​transformations:​devel#​re.subst_expression|Documentation]]
 +** Added is_present_hf_re(regexp) - match header names by regular expression
 +** Added remove_hf_re(regexp) - remove headers by matching the name against regular expression
 +** check: [[http://​www.kamailio.org/​docs/​modules/​devel/​textops.html|Documentation]]
 +* [b]tlsops module[/b]
 +** Added support for TLS server_name extension (aka SNI=server name indication)
 +* [b]tm module[/b]
 +** auto-detection of changes done to From/​To/​CSeq headers of the INVITE to properly generate CANCEL/ACK
 +** New functions t_load_contacts()/​t_next_contacts() that are enhanced versions of functions load_contacts()/​next_contacts() that earlier were in lcr module.
 +** Function load_contacts() can now be called also from FAILURE_ROUTE.
 +** t_check_trans() can be used in default onrely_route to detect if a SIP reply belongs to an existing transaction. Used together with drop() can vanish replies coming to proxy but not having a transaction.
 +** $T_req(pv) - new pseudo-variable that provides access to request attributes while processing the reply
 +** $T_rpl(pv) - new pseudo-variable that provides access to reply attributes while processing the request
 +** t_cancel_branches(...) - can be used to cancel current processed branch, the other branches or all branches of the transaction
 +** [[http://​www.kamailio.org/​dokuwiki/​doku.php/​pseudovariables:​devel#​tm_module_pseudo-variables|Documentation]]
 +* [b]userblacklist module[/​b] ​
 +** Make database table and column names configurable
 +* [b]uac module[/b]
 +** send SIP requests from config file: uac_send_req()
 +** new pseudo-variable class to build the request to be sent: $uac_req(key)
 +** [[http://​www.kamailio.org/​docs/​modules/​devel/​uac.html|Documentation]]
 +* [b]uri module[/b]
 +** functionality of this modules were integrated into the [b]siputils[/​b] module
 +==== New in Kamailio core ====
 +* [b]module interface[/​b]
 +** modules can implement mod_register(...) function which is called at the time the module is loaded
 +** allow to register to core in early stage any attributes exported by modules which might be needed while parsing the config file (e.g., case of PV transformations)
 +* [b]pseudo-variables[/​b]
 +** moved from core to PV module
 +** use [i]loadmodule "​pv.so"​[/​i] in your config file
 +* [b]transformations[/​b]
 +** moved from core to PV module
 +** use [i]loadmodule "​pv.so"​[/​i] in your config file
 +** modules can export now transformations
 +* [b]tls support[/b]
 +** added support for TLS server_name extension (aka SNI=server name indication)
 +* [b]daemontools support[/b]
 +** added support for running openser with daemon tools (new core parameter for "​no-daemon"​ mode)
 +* [b]memory management improvements[/​b]
 +** F_MALLOC has better startup performance,​ useful for e.g. carrierroute with larger rule sets
 +** support for compiling the server with system malloc, without PKG_MEM
 +** removal of the VQ_MALLOC memory manager, which was not used anymore
 +** increase of the default private memory pool size, it uses now 4 MB per process
 +* [b]module interface[/​b]
 +** unify and cleanup module initialization and shutdown logging, its now done in core
 +* [b]non-blocking logging[/b]
 +** support for non-blocking log writes to prevent blocking of the server in certain error situations
 +** can be enabled by setting the SYSLOG_ASYNC define in the Makefile.defs,​ the default is the old implementation
 +* [b]database interface[/​b] ​
 +** generalization of existing common code of several DB modules in the core
 +** support for BIGINT (8 byte integer) values
 +** its now possible to autogenerate implementation code and documentation from the same XML source that is also used for the SQL
 +* [b]cleanups and refactoring[/​b]
 +** removal of obsolete code, unification and integration of existing functionality
 +* [b]developer documentation[/​b]
 +** unify existing documentation,​ convert them to doxygen, addition of new content for many modules and core functions
 +** 24% of all source lines are comments now, according to ohloh.net source code [[http://​www.ohloh.net/​p/​kamailio/​factoids/​1230819|analysis]],​ we're now in the top third of all their C projects
 +** Removed undocumented core functions serialize_branches()/​next_branches(). ​ Enhanced versions of these functions now exist in tm module as t_load_contacts()/​t_next_contacts() functions.
 +* [b]drop[/b]
 +** drop() function used in default reply route can drop any SIP reply received
 +* [b]Make system[/b]
 +** easier system to set internal defined values like number of routes, size of pkg memory
 +** options to build modules groupped by dependencies -- see Makefile.vars
 +==== New in Kamailio Testing Suite ====
 +* [b]Extensions[/​b]
 +** add more tests (now over 40 test cases), refactoring of existing tests
 +==== New in Kamailio Documentation ====
 +* addition of man pages for all modules
 +* addition of man pages for the kamdbctl command
 +* update of all existing man pages
 +* addition of a documentation index to the wiki
 +* many updates and bugfixes to module documentation
 +==== SIREMIS - Web Management interface ====
 +* [b]Features[/​b]
 +** provides system and database administration tools for Kamailio (OpenSER)
 +** subscriber, database aliases and speed dial management
 +** location table view
 +** dispatcher, prefix-domain translation and least cost routing (lcr) management
 +** access control lists (user groups) and permissions management
 +** accounting records, missed calls and call data records view
 +** hash table, dial plan table and user preferences table management
 +** offline message storage view
 +* [b]Project web site[/b]
 +** [[http://​siremis.asipto.com]]