Tuesday, December 11, 2018

Performance Tests For KEMI Scripting Languages

Two editions ago, Kamailio (with version 5.0) introduced the scripting languages embedded interface (short name KEMI) that enabled using Lua, Python, JavaScript or other scripting languages to build SIP routing logic. During Kamailio v5.1.x cycle, this framework became more mature and started to show its benefits: besides ability to reload the routing scripts at runtime, each of these languages come with tons of extensions and offer a more flexible programming eco-system.
When preparing the latest major release of Kamailio (the v5.2.0) and the days after, I run some tests to compare the performances of using native scripting versus Lua and Python (v2). The tests were not focused on measuring the capacity of Kamailio, but to see the difference in executing similar SIP routing logic with different scripting languages.
The results and conclusions are collected in a wiki page:
It was pleasant to discover that native scripting, Lua and Python perform more or less the same, the differences are so small that can be just a side effect of what other applications are running at that moment in the system. The tests were related to processing registrations with user authentication, using MySQL as a backend.
A test consisted of 20 000 registrations for 10 users being sent at a rate of 4000 requests/second, with a limit of 10 000 at the same time. Note that each registration was challenged for authentication and resent with credentials, then authenticated (this performs a MySQL query) and replied with 200ok. The average of running the routing script ranged form 60 to 80 microseconds, most of them being around 70 microseconds (for a better understanding, that means more than 10 000 authenticated registrations per second).
The wiki page includes the sipp scenario, used configs and tools to perform the tests, therefore anyone can try to run and check the results.
A bit of a surprise was to see that Python has really good results. I ran couple of basic tests during the development of KEMI framework for Kamailio 5.0 and using Python seemed slower. Not this time, so I will have to re-run the tests just to be sure I haven’t forgotten something.
Anyhow, during the development of Kamailio 5.2, there were couple of additions to KEMI to improve the performances. Among the most relevant were to export several functions that are equivalent to some native scripting language conditions, such as matching From/To URIs against myself keyword or matching the SIP methods.
The plan is to run the tests for the other scripting languages supported by KEMI at this moment, respectively Python (v3), JavaScript, Ruby and Squirrel. It would be also interesting to see the results of using Lua scripting with LuaJIT (an addition added for Kamailio v5.2 as well).
Should you run the tests from the wiki, let us know the results for your environment via sr-users@lists.kamailio.org mailing list.
Thanks for flying Kamailio!

Monday, December 10, 2018

Kamailio World 2019 – Call for Presentations

We would like to announce that Call for Presentations at Kamailio World 2019 is now open. You can submit your proposal or see more details at:
The 7th edition of the event takes place again in Berlin, Germany, during May 6-8, 2019. Expect over 150 participants, developers and community members as well as representatives from other popular open source VoIP projects such as Asterisk or FreeSwitch.
Looking forward to meeting many of you there!
Thanks for flying Kamailio!

Friday, November 30, 2018

Kamailio 5.2: Deb And RPM Repositories

The packages of Kamailio v5.2.0 for Debian/Ubuntu and RPM-based distributions (CentOS, RedHat, OpenSuse, Fedora) are available to use.
For Debian/Ubuntu, you can set the APT repository on your system to the links provided at:
For the RPM-based distributions, their repositories are listed at:
Enjoy!
Thanks for flying Kamailio!

Wednesday, November 28, 2018

Kamailio v5.2.0 Released

November 28, 2018Kamailio v5.2.0 is out –  a new major release, bringing new features and improvements added during nine months of development and about two months of testing.
In short, this major release brings 6 new modules and enhancements to more than 70 existing modules, plus components of the core and internal libraries as well as optimizations for embedded interpreters (KEMI framework). Detailed release notes are available at:
This is the third major release in the series of 5.x.y versions. Besides adding plenty of new features, a lot of development was directed to unify the exports structure for modules, enhance dispatcher (the load balancer module), tls, RTP processing and to make available more functions to KEMI interface.
Enjoy SIP routing in a secure, flexible and easier way with Kamailio v5.2.0!
Thank you for flying Kamailio and looking forward to meeting you at Kamailio World Conference 2019!

Monday, November 26, 2018

Announcing Next Kamailio World Conference, May 6-8, 2019, in Berlin

The next edition of Kamailio World Conference is planned to take place at the same location like the past editions, respectively hosted by Fraunhofer Fokus and Forum in the city center of Berlin, Germany, during May 6-8, 2019.
The website of the event and the call for presentations will be launched in the near future, stay tuned!
Meanwhile, you can browse the website of the previous edition in order to get an idea about the type of event and its content:
Enjoy the upcoming winter or summer season!
Thanks for flying Kamailio!

Monday, November 19, 2018

Releasing Kamailio v5.2.0

We are considering to release v5.2.0 (the first stable version out of branch 5.2) next week, likely on Wednesday, Nov 28, 2018.
It still allows a bit more than a week of testing as well as well time to prepare the online resources for it (documentation, wiki pages, upgrade guidelines, etc…).
If there is any issue you are of and not yet reported to github.com bug tracker, do it as soon as possible to give it a chance to be fixed in time for the next major release.
Thanks for flying Kamailio!

Wednesday, November 7, 2018

Development Open For Kamailio v5.3

With the creation of branch 5.2 done yesterday, the master branch is from now on open for adding new features, to be part of future release series v5.3.x.
Based on the workflow used during the past years, the next future release v5.3.0 should be out after another 8-10 months of development, plus 1-2 months of testing, so sometime in the summer or autumn of 2019.
Even now there is a new pull request on its way to be merged in master branch that is adding a new module – the rtp_media_server:
So the new development cycle is starting very promising. Expect plenty of enhancements and new feature during the development of v5.3 series.
Thanks for flying Kamailio!

Tuesday, November 6, 2018

Kamailio Git Branch 5.2 Created

The branch 5.2 has been created in the git repository of Kamailio, to be used for releasing v5.2.x series.
To check out this branch, the following commands can be used:
git clone https://github.com/kamailio/kamailio kamailio-5.2
cd kamailio-5.2
git checkout -b 5.2 origin/5.2
Pushing commits in this branch:
git push origin 5.2:5.2
Note that 5.2 is an official stable branch, so only bug fixes, missing kemi exports (to be discussed on sr-dev if something needs to be sorted out about the purpose of the exports) or improvements to documentation or helper tools will be pushed to this branch.
As usual, if there is a bug fixed, the commit will be pushed first to master branch and then cherry picked to 5.2 branch.
In few weeks, the first release from branch 5.2 will be out, respectively Kamailio v5.2.0.
Thanks for flying Kamailio!