Archive for the ‘News’ category

Kamailio and Docker

August 24th, 2015

small_hContainers have become rather popular lately and Docker is the technology leader. Containers make it easy to prototype and test, but many see them as a way to scale on demand, therefore pushing towards production deployments.

Searching the web about Kamailio and Docker reveals plenty of resources, from bare dockerfiles to detailed blog articles to combine Docker, Kamailio and other VoIP applications such as Asterisk.

Here are links to such resources:

Some Docker resources exist for Siremis, the web management interface for Kamailio:

Note that we haven’t explicitly tested those resources, it is up to you to select one, adjust and test as you need. This post has the role to provide a starting point for using Kamailio with Docker.

If you are aware of other resources relevant for Kamailio and Docker, write to mailing list <sr-dev [at] lists.sip-router.org> to get them listed here.

Enjoy!

Cluecon Follow Up

August 18th, 2015

Another edition of Cluecon conference ended recently in Chicago, a good crowd of VoIP developers spent time together to share what is new around the world for real time communications.

Daniel-Constantin Mierla had a presentation about Kamailio and API driven SIP routing (slidesharepdf).

Erik Davidson and Gary Kramlich from Corvisa presented a scalable VoIP platform architecture (pdf) relying on Kamailio and FreeSwitch, announcing also the intent of publishing two new modules for Kamailio.

Guys at Kazoo (contributors of kazoo module in Kamailio) gave an update about their open source cloud PBX system.

Hopefully, the video recording of the sessions will be available soon, there were plenty of other sessions referring to Kamailio, which shared interesting concepts for use with real time communication services.

Kamailio v4.2.6 Released

July 30th, 2015

Kamailio v 4.2Kamailio SIP Server v4.2.6 stable is out! This is a minor release including fixes in code and documentation since v4.2.5.

Kamailio (former OpenSER) v4.2.6 is based on the latest version of GIT branch 4.2, therefore those running previous 4.2.x versions are advised to upgrade to 4.2.6 (or to 4.3.x series). If you upgrade from older 4.2.x to 4.2.6, there is no change that has to be done to configuration file or database structure comparing with older v4.2.x.

Resources for Kamailio version 4.2.6

Source tarballs are available at:

Detailed changelog:

Download via GIT:

 # git clone git://git.kamailio.org/kamailio kamailio
 # cd kamailio
 # git checkout -b 4.2 origin/4.2

Binaries and packages will be uploaded at:

Modules’ documentation:

What is new in 4.2.x release series is summarized in the announcement of v4.2.0:

Note: the branch 4.2 is the previous stable branch. The latest stable branch is 4.3, at this time with v4.3.1 being released out of it. The project is officially maintaining the last two stable branches, these are 4.3 and 4.2. Therefore an alternative is to upgrade to latest 4.3.x – be aware that you may need to change the configuration file from 4.2.x to 4.3.x. See more details about it at:

About new variables in v4.3

July 28th, 2015

Each new major version of Kamailio brings a new set of configuration file variables, which adds to the existing long list (see Pseudo-Variables Cookbook), enabling more flexibility or making easier to approach some specific needs.

v4.3 introduced as well several new variables, here we touch few of them.

$var(name) is an old variable, storing the value in private memory, being persistent per process. It is very fast when used in operations (no looking needed), therefore popular across config files. One of its property is that the initial value is 0 (no need to initialize it explicitly) and setting it to $null results in resetting it to value 0.

Requested by community, a new variable class $vn(name) was introduced in v4.3 by pv module, which has the properties of $var(name), but it holds ‘null’. Setting it to 0 requires explicit assignment ‘$vn(name) = 0’ and setting it to ‘$null’ no longer resets the value to 0, but to ‘null’.

The pv module added $sbranch(key), a class of variables that allows to manage all the attributes of outgoing branches, including the first branch corresponding to request URI. It is like a temporary container where to store the attributes before pushing them to the branches. A set of three functions come to help in these operations: sbranch_set_ruri(), sbranch_append() and sbranch_reset(). An use case that is possible now can be setting the Path of a branch (next hops till final destination), including the one for R-URI branch.

Related to XAVP variables, a function named xavp_explode_params() can be now used to take the names and values of a parameters string and add them as XAVPs.

The rr module introduced variables to get the direction of the request – $rdir(name) will return ‘downstream’ if request is from caller to callee and ‘upstream’ if the request is from callee to caller. $rdir(id) is the variant to return 1 for ‘downstream’ and 2 for ‘upstream’. From the same module come $fti and $tti – the From and To tags as for the initial INVITE transaction, no matter of direction for the request. For example, using in config (e.g., as htable key) the dialog 3-tuple identifier (call-id, from-tag, to-tag) is now simpler, no need to care anymore about the direction of the request.

Presence or other IMS modules are among the components introducing new variables, you can see the full list of variables available for Kamailio v4.3 at:

What is new in v4.3 is summarized at:

Enjoy the summer!

Kamailio v4.3.1 Released

July 20th, 2015

Kamailio 4.3Kamailio SIP Server v4.3.1 stable is out – a minor release including fixes in code and documentation since v4.3.0 – configuration file and database compatibility is preserved.

Kamailio (former OpenSER) v4.3.1 is based on the latest version of GIT branch 4.3, therefore those running previous 4.3.x versions are advised to upgrade. There is no change that has to be done to configuration file or database structure comparing with older v4.3.x.

Resources for Kamailio version 4.3.1

Source tarballs are available at:

Detailed changelog:

Download via GIT:

 # git clone git://git.kamailio.org/kamailio kamailio
 # cd kamailio
 # git checkout -b 4.3 origin/4.3

Binaries and packages will be uploaded at:

Modules’ documentation:

What is new in 4.3.x release series is summarized in the announcement of v4.3.0:

Cluecon 2015

July 15th, 2015

EventsDuring August 3-6, 2015  a new edition of Cluecon Conference, takes place in Chicago, USA. Backed up mainly by the developers of FreeSwitch project, the topics at the event cover many other open source real time communication projects as well as open discussion round tables.

Daniel-Constantin Mierla will present about Kamailio on Tuesday, August 4, 2015.

Cluecon is a place gathering lots of VoIP folks around the word, many from Kamailio community, it is one of those events that one should not miss.

If you are at the event or around Chicago area during that time and want to meet to discuss about Kamailio, get in touch via sr-dev mailing list. If there are many interested, we can have some ad-hoc sessions and group meetings (e.g., dinner) to approach various topics about Kamailio.

cluecon-new-logo3

TLSF – High Performance Memory Manager

June 25th, 2015

Kamailio Development NewsBefore freezing the development for recently released Kamailio v4.3.0, Camille Oudout from Orange/Libon, France, pushed a new memory manager (named tlsf) focused on high performances on handling memory operations.

It is well known that Kamailio (from its very beginning as SER project back in 2001) has its own memory manager. That simplifies especially the handling of shared memory on different oeprating systems. There were two available, that can be enabled at compile time, so  called:

  • f_malloc (aka fast malloc) – the one mostly used as default for stable releases
  • q_malloc (aka quick malloc) – the one more suitable for memory operations troubleshooting

While these two memory managers were designed to be fast for multi-process applications such as Kamailio (e.g., avoid thread locking for private memory) as well as dealing with the patterns of routing SIP traffic, few special cases could result in slowing down — one of this is when needing to free a lot of allocated chucks of same size.

Worth to mention that system memory manager could be (and can still be) enabled to be used for private memory needs. Some other attempts to add new memory managers were not yet completed, therefore not being ready for use (e.g., the Doug Lea allocator or Lock Less allocator — you can check the source code tree, inside mem/ folder, for more details).

Camille implemented the Two Level Segregated Fit (TLSF) memory allocator, know to be O(1) for both malloc() and free() operations (no worse case behavior). It has a 4 byte block overhead, but hardware memory it cheap these days. You can read more about it at:

It is not enabled by default, being rather young code now, but it is a good candidate to become in the near future. To enable it, you have to install Kamailio from sources and compile using:

make MEMDBG=1 MEMMNG=2 cfg
make all
make install

It will enable the debugging mechanism as well, that can be disabled by using MEMDBG=0.

If you start using it, do provide us feedback about how it performs, because it helps to assert its relevance and stability. Also, do not hesitate to start a discussion if you have questions or suggestions via the sr-dev mailing list.

Have a great summer!

 

Server Maintenance – Wed-Thu Night

June 23rd, 2015

During the night between Wed (June 24) and Thu (June 25), planned to start not early than 00:00 GMT+1, there will be some schedule maintenance work to the infrastructure that is hosting some of the kamailio.org servers.

The main affected services will be:

  • main website (www.kamailio.org)
  • wiki portals
  • mailing lists (lists.sip-router.org)
  • git mirror (git.kamailio.org)

It is expected to have short downtimes of few minutes.

Update on Thu, June 25: the maintenance work was successfully handled last night, hopefully there was no relevant downtime noticed. If anyone spots any service not working properly, contact us via sr-dev mailing list.

New Developer: Stefan Mititelu

June 15th, 2015

A new developer has joined Kamailio team: Stefan Mititelu. He is part of the 1&1 AG team and together with Lucian Balaceanu and Patric Marshall, they are going to maintain the modules contributed by 1&1, such as carrierroute, userblacklist, pdb or p_usrloc. Stefan already contributed to other components, like core and rtpengine module.

His github user id is smititelu

A warm welcome and we look forward to its future contributions!

Kamailio v4.3.0 Released

June 10th, 2015

Kamailio 4.3June 10, 2015: Kamailio v4.3.0 is out –  a new major release, collecting new features and improvements added during about six months of development and one and a half month of testing.

In short, this major release brings 9 new modules and enhancements to more than 50 existing modules, plus components of the core and internal libraries. Detailed release notes are available at:

Development for next major release, 4.4.0 (expected to be out in the first part of 2016) has started already, even a new module is already present in master branch: smsops. Watch the project’s web site closely for further updates and news about evolution of Kamailio.

Enjoy SIP routing in a secure, flexible and easier way with Kamailio v4.3.0!

Thank you for flying Kamailio!