<div dir="ltr"><div>Hi Henning,</div><div><br></div><div>If i want to choice daemon way, I will probably have some basic changes in my code. As well, all data which are saved in shared_memory (or cache memory) in Kamailio, should  be moved to it's daemon buffer, too. The sounds looks like great but i should more sleep on it and take me more times to do. Actually i am trying to complete ibefore Kamailio Conference. <br></div><div>Let's have some thinking...<br></div><div><br></div><div> <br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 14, 2019 at 12:20 AM Henning Westerholt <<a href="mailto:hw@kamailio.org">hw@kamailio.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Am Dienstag, 12. März 2019, 12:46:57 CET schrieb Mojtaba:<br>
> I just ask this question for more understanding during developing new<br>
> module in Kamailio,<br>
> A you know better than me, we could use register_procs and fork_process<br>
> functions to create new fork process in Kamailio project. I just did the<br>
> same things for first handover interface in hiops module. Finally you could<br>
> see list of all process with "kamctl ps" command.<br>
> I want to do the same things for third handover interface in hiops module,<br>
> But i think it would not be nice to see  a lot of list of process in<br>
> output! This conditions would be occurred if someone set the<br>
> hi3_worker_process parameter in hiops module to 100.<br>
> Am i right? Don't you think it is better to use nested fork process instead?<br>
> What do you think?<br>
<br>
Hi Mojtaba,<br>
<br>
normally you only need to fork one or two processes in a kamailio module, e.g. <br>
like for a dedicated timer process etc.. You should not fork many processes, <br>
as all of them will hold the configured PKG memory. Because of the multi-<br>
process architecture of Kamailio I would also not suggest to use a nested <br>
fork. Kamailio with its initialization structure (mod_init for the init before <br>
the fork, child_init for the init after the fork) was not designed for that in <br>
my opinion.<br>
<br>
If you see a need for one or many dedicated process(es) for e.g. handover <br>
interface handling, then I would suggest to use a dedicated separate daemon, <br>
like e.g. the sipcapture or rtpproxy/rtpengine modules. Kamailio could <br>
communicate over a socket or a similar interface with this daemon.<br>
<br>
Best regards,<br>
<br>
Henning <br>
<br>
<br>
-- <br>
Henning Westerholt - <a href="https://skalatan.de/blog/" rel="noreferrer" target="_blank">https://skalatan.de/blog/</a><br>
Kamailio services - <a href="https://skalatan.de/services" rel="noreferrer" target="_blank">https://skalatan.de/services</a><br>
Kamailio security assessment - <a href="https://skalatan.de/de/assessment" rel="noreferrer" target="_blank">https://skalatan.de/de/assessment</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature">--Mojtaba Esfandiari.S</div>