Hello Mojtaba,
thank you for the update.
Just one question right now, how does your "lre" module is conceptually
different than the already existing sipwise rtpengine module?
https://github.com/sipwise/rtpengine
This also does in-kernel forwarding for media data, is mature and
supports many features already. You control this with the rtpengine
Kamailio module.
(Answering also to your later reply in this thread)
Of course feel free to cancel your existing pull request if it is
obselete by some new development. It is good to share your progress or
questions here on the developer list, if by some reasons (e.g. vacation)
you don't get a direct reply just send a reminder, as you already did. :-)
Cheers,
Henning
Am 24.06.19 um 13:04 schrieb Mojtaba:
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:192.168.122.108:8080")
modparam("lre", "start_port", 10000)
modparam("lre", "end_port", 30000)
#!endif
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
again.
--
Henning Westerholt -
https://skalatan.de/blog/
Kamailio services -
https://skalatan.de/services