[sr-dev] new child module for kamailio, is call "lre"

Mojtaba mespio at gmail.com
Mon Jun 24 13:04:20 CEST 2019

Hello Everyone,
In the middle of developing hiops module, another child module has
grown up. I've been developing another module for Kamailio, I called
this "lre". It means light-rtp-engine. The concept of this module is
using the capability of linux-Kernel packet forwarding to forward RTP
packets between both parties in a session call.
As far as we know, this new way has some advantage in large VoIP
networks that are using Kamailio as Proxy or SBC. Regardless of
transcoding, it could be done by other servers,
By using this module, Kamailio could handle a lot of concurrent calls
with RTP. For example in my test-bed scenario, with 2 core of CPU,
Kamailio could handle more than 1000 concurrent calls, with no issue
like one-way audio or etc. The consumption of resources was
incredible. Although I countn't finish the test-bed scenario,  because
the resources of  SIPP servers, that make the calls, were run out.
When kamailio starts, this module tries to connect to daemon project.
The daemon project could be running on the same server with kamailio
or on another server. The connection between two processes is TCP/IP
Socket. I have to use libnfnetlink library to control Linux-kernel
forwarding on the server. This library is the low-level library for
netfilter related kernel/userspace communication.
Some configuration in kamailio cfg is like below:
#!ifdef WITH_LRE
modparam("lre", "lre_sock", "tcp:")
modparam("lre", "start_port", 10000)
modparam("lre", "end_port", 30000)
In some parts of my code, I need some guides to optimize performance of my code.
The module will be published  soon on GitHub, but for some reason I
need to remove my old pull-request of hiops module.I will publish it
--Mojtaba Esfandiari.S

More information about the sr-dev mailing list