On June 18, 2012, Kamailio (OpenSER) SIP Server v3.3.0 has been released – this is a major release that brings a lot of improvements and new features, as a result of development from Kamailio (OpenSER) and SIP Express Router (SER) teams.
Here is a summary of new features in v3.3.0 (for more details see the wiki page):
- seven new modules: app_mono, db_cassandra, db_cluster, msrp, presence_profile, tmrec, xhttp_rpc
- enhancements and new features in over 50 existing modules
- new internal libraries and functionalities in the core
- Scalability
- generic database clustering module – ability to perform database operations across different servers and types of database, using policies such as round robin, serial try or parallel write
- Cassandra database connector
- fine control of worker processes per network socket
- easy mode to advertise public address per socket, making installations in the cloud and virtual systems straightforward (e.g., on Amazon EC2)
- handle Redis array replies and auto-reconnect to servers
- new dedicated mili-second timers used for various tasks to avoid interfering with SIP retransmissions
- support for handling GRUU and SIP Outbound
- config function for sending data over distributed message queue (dmq module)
- IPv6
- all IPv6 network interfaces are auto-detected and Kamailio start listening on them (if no strict listening rules are set)
- all standard modules have been reviewed and made IPv6 compliant where it was the case
- SIP SIMPLE Presence Services
- new module to provide MSRP relay function
- new module for managing UA configuration via SIMPLE extensions
- RFC 4827 (presence hard-state) support
- dedicated pool of notifier processes to cope better with large number of subscriptions
- added support for DB only mode to several memory structures, very useful for scaling Presence and Resource List Services across multiple servers
- option to store records in different database servers
- performance improvements to embedded XCAP server, presence server, presence user agent and resource lists modules
- Call Stateful Proxy
- ability to send OPTIONS keepalive requests to detect if the ongoing calls are still active
- new event routes to handle specific call state events such as START, END or FAILED
- handling of non-confirmed dialogs (missing ACKs)
- storage of dialog profiles in database
- Flexibility
- embedded interpreter for managed code, such as C#, VisualBasic, IronPython, a.s.o.
- many internal functions exported as native API to Lua
- extended DB API to allow better performances at database layer
- new module for time based routing using iCal or Perl-like time recurrence matching rules
- embedded JSON library for serialization of data structures
- support for handling URN
- fast matching operation in configuration file and dialplan module
- internal unique ID generator across a farm of SIP servers
- ability to run RPC control commands via HTTP using the embedded HTTP server
- option to enable memory chunks merging, to avoid fragmentation
- HEPv2 support for siptrace and sipcature extensions
- execute route blocks on micro-second timer base
- new transformations for string and line-based processing
- all RPC control commands can be executed via MI
- more options for local memory caching behaviour (htable module)
- option to add extra headers to locally stored text messages
- new command line tool to inject SIP messages back to network for troubleshooting
- Security
- ability to set upper limit for TLS connections
- print detailed information about active TLS connections
- option to disable TLS connection renegotiation to avoid malicious attacks
- simplified user authentication interface for configuration file
- SIP message format sanity checks for replies
- allow trusted function can deal with HTTP requests
More details about what is new are collected in New in 3.3.x Wiki Page
Project achievements during v3.3.0 development cycle:
- project participation with speeches, exhibition booth or workshops at various events, including FOSDEM, LinuxTag, Astricon, CeBIT, UC Expo
- during the development cycle of version 3.3.0, 4 new people joined officially the development team, resulting on over 35 registered active developers in the past year and over 100 since the project started
- according to Ohloh, this is one of the largest open-source teams in the world, and is in the top 2% of all project teams on Ohloh
- the project counts about 200 module extensions (without IMS modules)
- estimated development effort so far is over 9.5 millions USD, equivalent of 175 person-years (Ohloh statistics)
Important note:
- when compiling from sources downloaded from GIT repository, you have to run first: “make FLAVOUR=kamailio cfg“
- it is needed to set the build profile to kamailio, since there is a single stable branch used for Kamailio and SER. There is no difference in terms of source code, it is only about application name and what modules are used with the default configuration file
- it is needed to set the build profile to kamailio, since there is a single stable branch used for Kamailio and SER. There is no difference in terms of source code, it is only about application name and what modules are used with the default configuration file
- A step by step installation tutorial is available at:
Download:
You can download the tarball of the released sources at:
Binary packages for several distributions can be found at:
- https://www.kamailio.org/pub/kamailio/latest/bin/
- https://www.kamailio.org/pub/kamailio/latest/packages/
- https://www.kamailio.org/wiki/packages/debs
- https://www.kamailio.org/wiki/packages/rpms
Packages will be uploaded as soon as they are built by developers (Debian and Ubuntu debs as well as RPMs for Centos, RedHat, Fedora and OpenSUSE) or submitted by community for other operating systems.
Documentation:
- modules’ documentation: https://www.kamailio.org/docs/modules/3.3.x/
- cookbooks and more wiki docs: https://www.kamailio.org/wiki/
- migration guide: https://www.kamailio.org/wiki/install/upgrade/3.2.x-to-3.3.0
- alphabetic indexes: for modules’ functions, parameters and control commands
Useful links:
- Install and maintain Kamailio 3.3.0 from GIT repository
- Commit ChangeLog for Kamailio 3.3.0
- Kamailio 3.2.x Release Notes – the previous major release
Note: Kamailio is the new name of OpenSER project, name changed on July 28, 2008, due to trademark issues. First version under Kamailio name was 1.4.0. Older versions will continue to use OpenSER name. Project site and SVN repository on SourceForge.net still use the old name OpenSER. Source code since release 3.0.0 (when the merge of Kamailio and SER was completed) is hosted on GIT repository at http://sip-router.org.