<div dir="ltr">Hello again,<div><br></div><div>Ok I was able to resolve the load issue and yes asynchronous processing is improving this A LOT, but now I am having issues with the ACK's as soon I am getting an ACK request I am having this error<br><br>106(112) ERROR: * cfgtrace:request_route=[RELAY] c=[/etc/kamailio/ccm-next-main.cfg] l=141 a=24 n=t_relay<br>106(112) INFO: tm [t_lookup.c:1333]: t_newtran(): attempt to create transaction for a faked request - try to avoid it<br>106(112) WARNING: tm [t_reply.c:1583]: t_retransmit_reply(): WARNING: t_retransmit_reply: no resolved dst to retransmit<br>106(112) ERROR: * cfgtrace:request_route=[RELAY] c=[/etc/kamailio/ccm-next-main.cfg] l=144 a=2 n=exit<br><br>I think the problem could be because the t_newtran() is now working properly with the ACKs so, as soon this is going to t_relay() fails.<br><br>route[RELAY_API] {<br>    $http_req(all) = $null;<br>    $http_req(suspend) = 0;<br>    $http_req(timeout) = 3000;<br>    $http_req(method) = "POST";<br>    $http_req(hdr) = "Content-Type: application/json";<br>    $http_req(hdr) = "Authorization: Bearer $sht(token=>new_token)";<br>    jansson_set("obj", "network", '{"srcIP":"$fd"}', "$var(http_routing_query)");<br>    jansson_set("string", "callID", $ci, "$var(http_routing_query)");<br>    jansson_set("string", "sip", $mb, "$var(http_routing_query)");<br>    xlog("L_INFO","$rm API ASYNC ROUTING REQUEST: $var(http_routing_query)\n");<br>    $http_req(body) = $var(http_routing_query);<br>    if (is_method("INVITE")) {<br>        xlog("L_INFO","BEFORE $rm INIT_CALL_API $var(call_request): $var(http_routing_query)\n");<br>        if (!t_newtran()) {<br>            sl_reply_error();<br>            exit();<br>        }<br>        http_async_query("http://

API_END_POINT  /init", "INIT_RELAY_API_RESPONSE");<br>    } <br>   if ( is_method("ACK|BYE|INFO") ) {<br>        xlog("L_INFO","BEFORE $rm DIALOG_CALL_API $var(call_request): $var(http_routing_query)\n");<br>        if (!t_newtran()) {<br>            sl_reply_error();<br>            exit();<br>        }<br>        http_async_query("<a href="http://API_END_POINT">http://API_END_POINT</a>", "RELAY");<br>    } <br>}<br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 30, 2022 at 8:19 AM Henning Westerholt <<a href="mailto:hw@gilawa.com">hw@gilawa.com</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">





<div lang="DE" style="overflow-wrap: break-word;">
<div class="gmail-m_-877775558749394614WordSection1">
<p class="MsoNormal"><span>Hello,<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB">please keep the list in CC, that others can comment as well.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB">Beside from the obvious (improving the performance of the lua API call), you could use indeed asynchronous processing. If you just use the lua code to emit the REST request, using a
 native http client module would be probably also faster as doing it over lua.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB">Cheers,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB">Henning<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB">-- <u></u>
<u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB">Henning Westerholt –
</span><span><a href="https://skalatan.de/blog/" target="_blank"><span lang="EN-GB" style="color:rgb(5,99,193)">https://skalatan.de/blog/</span></a></span><span lang="EN-GB"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB">Kamailio services –
</span><span><a href="https://gilawa.com/" target="_blank"><span lang="EN-GB" style="color:rgb(5,99,193)">https://gilawa.com</span></a></span><span lang="EN-GB"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0cm 0cm">
<p class="MsoNormal" style="margin-left:35.4pt"><b>From:</b> Giovanni Jose <<a href="mailto:gio.jose@gmail.com" target="_blank">gio.jose@gmail.com</a>>
<br>
<b>Sent:</b> Wednesday, March 30, 2022 5:17 PM<br>
<b>To:</b> Henning Westerholt <<a href="mailto:hw@gilawa.com" target="_blank">hw@gilawa.com</a>><br>
<b>Subject:</b> Re: [SR-Users] More than TCP 800 concurrent calls, slows Kamailio (LUA FILE API REQUESTS)<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><u></u> <u></u></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Hello Henning, Thanks so much for the fast response <br>
<br>
I just commented the loop and I was hitting the backend and it's slow anyway maybe it's because, for this type of implementation when the destination of the call is decided by the API backend, I need to use the http_async_client module? I am noticing that for
 high volume calls kamailio slows the traffic and shows errors because there's a delay that is been added when the backend responds for every call.<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">On Tue, Mar 29, 2022 at 11:53 PM Henning Westerholt <<a href="mailto:hw@gilawa.com" target="_blank">hw@gilawa.com</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">
Hello,<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:35.4pt">
 <u></u><u></u></p>
<p class="MsoNormal" style="margin-left:35.4pt">
<span lang="EN-GB">why are you sleeping for 1s in the loop? This will cause Kamailio to block processing. I also do not see any stop condition on the loop, so it will loop until the limit.</span><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:35.4pt">
<span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:35.4pt">
<span lang="EN-GB">Cheers,</span><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:35.4pt">
<span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:35.4pt">
<span lang="EN-GB">Henning</span><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:35.4pt">
<span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:35.4pt">
<span lang="EN-GB">-- </span><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:35.4pt">
<span lang="EN-GB">Henning Westerholt – </span><a href="https://skalatan.de/blog/" target="_blank"><span lang="EN-GB" style="color:rgb(5,99,193)">https://skalatan.de/blog/</span></a><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:35.4pt">
<span lang="EN-GB">Kamailio services – </span><a href="https://gilawa.com/" target="_blank"><span lang="EN-GB" style="color:rgb(5,99,193)">https://gilawa.com</span></a><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:35.4pt">
<span lang="EN-GB"> </span><u></u><u></u></p>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0cm 0cm">
<p class="MsoNormal" style="margin-left:70.8pt">
<b>From:</b> sr-users <<a href="mailto:sr-users-bounces@lists.kamailio.org" target="_blank">sr-users-bounces@lists.kamailio.org</a>>
<b>On Behalf Of </b>Giovanni Jose<br>
<b>Sent:</b> Tuesday, March 29, 2022 9:46 PM<br>
<b>To:</b> <a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a><br>
<b>Subject:</b> [SR-Users] More than TCP 800 concurrent calls, slows Kamailio (LUA FILE API REQUESTS)<u></u><u></u></p>
</div>
<p class="MsoNormal" style="margin-left:70.8pt">
 <u></u><u></u></p>
<div>
<p class="MsoNormal" style="margin-left:70.8pt">
Hello Guys I am having this issue where kamailio is receiving requests from SIPp (we are currently testing the platform and doing QA) but if we do more than 800 concurrent calls kamailio starts failing and slowing the requests, The scenario is the following:<u></u><u></u></p>
<div>
<p class="MsoNormal" style="margin-left:70.8pt">
 <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:70.8pt">
I am sending 5000 calls at 100 CPS on TCP and I am having this route in the configuration file:<br>
<br>
# Handle the calls to api<br>
route[CALL_API] {<br>
    xlog("L_NOTICE"," Call request $var(call_request) method: $rm \n");<br>
    $var(loop_true)=1;<br>
    while ($var(loop_true)) {<br>
        if(!lua_run("call_request","$var(call_request)","$sht(token=>new_token)")) {<br>
            xlog("L_NOTICE", "SCRIPT: failed to execute lua function!\n");<br>
        }<br>
        if ($var(loop_true)){<br>
            sleep("1");<br>
        }<br>
    }<br>
    xlog("L_NOTICE", "SCRIPT: Sucess to execute lua function!\n");<br>
}<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:70.8pt">
 <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:70.8pt">
So I am executing a LUA script for the requests and the API response will tell the destination of the call.<br>
<br>
At 800 concurrent calls, I can notice SLOWLINESS in the SIPp testing tool, and then I will start receiving 408 timeouts.<br>
<br>
This sounds like a load issue or something because I believe there's a time that it's been added every time we hit the backend and wait for the response.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:70.8pt">
 <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:70.8pt">
any help will be appreciated<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:70.8pt">
 <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:70.8pt">
Regards<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:70.8pt">
 <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:70.8pt">
Gio<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:70.8pt">
 <u></u><u></u></p>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>

</blockquote></div>