Kamailio developpers meeting 2019 - kemi framework

6 December 2019

kamailio developpers event 2019

During 2 days, the Kamailio developers (The well-known SIP proxy) met in Dusserdolf in the wonderful places of SipgateDE.

An important subject was approached in detail: KEMI (Kamailio Embedded Interface). KEMI start with the 5th Kamailio version.

KEMI is a framework allowing to use a language other than native language to program our Kamailio engine. With KEMI, we can use Javascript, LUA, Python, LUA, Ruby and Squirrel.

The advantages in the use of KEMI are numerous.

First of all, the use of a standard language used and well known by developers guarantees an enhanced code quality.

Also, learning Kamailio is quicker. Another essential advantage of KEMI is to use easily the CI / CD for agile development. The unit, integration and deployment tests could be done easier.

Another main advantage brought by KEMI is to enrich the functionalities of programming given by languages as Python or LUA via librairies.

The performance of the framework is undeniable. The tests accomplished on impportant code sizes show that KEMI uning Python3 or LUA is as effective as the native language. With the usage of certain functions, performances can even be better notably by using LUAJIT.

Finally, there is an advantage for using KEMI in production : the update of the code done with KEMI does not require a restart or reload of the Kamailio engine. This allows a transparent update during production production without downtime.

Personally, I see a last advantage in the organization of the files bringing a better readability. The native code is particularly unreadable (even if Daniel developped plugins of syntax colouring for Vim, VSCode and Atom!)

KEMI allows Kamailio to enter in a new dimension, more productive, more maintainable and stretchier.

One of the new development rules adopted during this meeting concerns KEMI. Every new function must be available via KEMI.

The KEMI documentation of KEMI is available at : https://kamailio.org/docs/tutorials/devel/kamailio-kemi-framework/

An example in Python is available in the Kamailio github.

Community Supported

Wazo Platform is supported by its community. Use our various channels to reach out.

Publications

Video @ Kamailio World: Dangerous Demos

Video @ the Telecom Application Development Summit: What can you do with Wazo?

Video @ the Telecom Application Development Summit: WAZO Keynote: xCPaaS

Get Connected, Contribute & Build value!

Designed with by Xiaoying Riley for developersCopyright 2016-2023 The Wazo Authors (see the AUTHORS file)