<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:HelveticaNeue;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.xmsonormal, li.xmsonormal, div.xmsonormal
        {mso-style-name:x_msonormal;
        margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.E-MailFormatvorlage22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DE" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hello,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">as mentioned, there are people using rtpengine with larger installations (like some racks of rtpengine).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">But we are of course always open for improvements of our code base.
</span><span lang="EN-GB" style="font-family:"Segoe UI Emoji",sans-serif;mso-fareast-language:EN-US">😊</span><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">If there are some changes that are needed in rtpengine daemon code as well, it probably needs to be raised in their issue tracker later on. But for this topic, they need to comment on
 that. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Regarding pull-requests for Kamailio, they should be done against development (master) branch in github. After creating the PR somebody of our developer team will have a look and review
 it. Usually there are some comments or adaptions necessary before merging the code into your repository.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Looking forward to your PR,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Henning<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">-- <o:p>
</o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Henning Westerholt –
</span><span style="mso-fareast-language:EN-US"><a href="https://skalatan.de/blog/"><span lang="EN-GB" style="color:#0563C1">https://skalatan.de/blog/</span></a></span><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Kamailio services –
</span><span style="mso-fareast-language:EN-US"><a href="https://gilawa.com/"><span lang="EN-GB" style="color:#0563C1">https://gilawa.com</span></a></span><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin-left:35.4pt"><b>From:</b> Aditya Gupta <aditya.gupta@alumni.iiit.ac.in>
<br>
<b>Sent:</b> Monday, November 28, 2022 10:15 AM<br>
<b>To:</b> Henning Westerholt <hw@gilawa.com>; Kamailio (SER) - Development Mailing List <sr-dev@lists.kamailio.org><br>
<b>Subject:</b> Re: Make some commands in kamailio rtpengine module asynchronous<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">We have 2 rtpengines in production and thousands of calls coming in. Few of them get timed out because they don't get processed in time by rtpengine. Simply by making 3 commands; offer, answer and delete. It can
 help us a lot with this.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I think I've understood what needs to be done and, in a day, or two I'll raise a PR with the changes for rtpengine module. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">After that I guess there are some changes that needs to be done in sipwise/rtpengine media servers which seems complicated at this point.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><span style="font-size:12.0pt">I'm hoping for your support in improving my PR for now. Against which branch should I raise my PR??</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><span style="font-size:12.0pt">Thank you</span><o:p></o:p></p>
</div>
<div class="MsoNormal" align="center" style="margin-left:35.4pt;text-align:center">
<hr size="2" width="98%" align="center">
</div>
<div id="divRplyFwdMsg">
<p class="MsoNormal" style="margin-left:35.4pt"><b><span style="color:black">From:</span></b><span style="color:black"> Henning Westerholt <<a href="mailto:hw@gilawa.com">hw@gilawa.com</a>><br>
<b>Sent:</b> Monday, November 28, 2022 1:47:00 PM<br>
<b>To:</b> Kamailio (SER) - Development Mailing List <<a href="mailto:sr-dev@lists.kamailio.org">sr-dev@lists.kamailio.org</a>><br>
<b>Cc:</b> Aditya Gupta <<a href="mailto:aditya.gupta@alumni.iiit.ac.in">aditya.gupta@alumni.iiit.ac.in</a>><br>
<b>Subject:</b> RE: Make some commands in kamailio rtpengine module asynchronous</span>
<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="xmsonormal" style="margin-left:35.4pt">Hello,<o:p></o:p></p>
<p class="xmsonormal" style="margin-left:35.4pt"> <o:p></o:p></p>
<p class="xmsonormal" style="margin-left:35.4pt"><span lang="EN-GB">what is the motivation behind this? Are you seeing performance issues in a production environment that could not solved e.g., by adding some more rtpengine resources?</span><o:p></o:p></p>
<p class="xmsonormal" style="margin-left:35.4pt"><span lang="EN-GB"> </span><o:p></o:p></p>
<p class="xmsonormal" style="margin-left:35.4pt"><span lang="EN-GB">Regarding implementation, you could also have a look for example at the http_async_client module, which might be a bit more easy to understand regarding the async implementation in Kamailio.</span><o:p></o:p></p>
<p class="xmsonormal" style="margin-left:35.4pt"><span lang="EN-GB"> </span><o:p></o:p></p>
<p class="xmsonormal" style="margin-left:35.4pt"><span lang="EN-GB">Cheers,</span><o:p></o:p></p>
<p class="xmsonormal" style="margin-left:35.4pt"><span lang="EN-GB"> </span><o:p></o:p></p>
<p class="xmsonormal" style="margin-left:35.4pt"><span lang="EN-GB">Henning</span><o:p></o:p></p>
<p class="xmsonormal" style="margin-left:35.4pt"><span lang="EN-GB"> </span><o:p></o:p></p>
<div>
<p class="xmsonormal" style="margin-left:35.4pt"><span lang="EN-GB">-- </span><o:p></o:p></p>
<p class="xmsonormal" style="margin-left:35.4pt"><span lang="EN-GB">Henning Westerholt –
</span><a href="https://skalatan.de/blog/"><span lang="EN-GB" style="color:#0563C1">https://skalatan.de/blog/</span></a><o:p></o:p></p>
<p class="xmsonormal" style="margin-left:35.4pt"><span lang="EN-GB">Kamailio services –
</span><a href="https://gilawa.com/"><span lang="EN-GB" style="color:#0563C1">https://gilawa.com</span></a><o:p></o:p></p>
</div>
<p class="xmsonormal" style="margin-left:35.4pt"><span lang="EN-GB"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="xmsonormal" style="margin-left:70.8pt"><b>From:</b> sr-dev <<a href="mailto:sr-dev-bounces@lists.kamailio.org">sr-dev-bounces@lists.kamailio.org</a>>
<b>On Behalf Of </b>Aditya Gupta<br>
<b>Sent:</b> Thursday, November 24, 2022 2:47 PM<br>
<b>To:</b> <a href="mailto:sr-dev@lists.kamailio.org">sr-dev@lists.kamailio.org</a><br>
<b>Subject:</b> [sr-dev] Make some commands in kamailio rtpengine module asynchronous<o:p></o:p></p>
</div>
</div>
<p class="xmsonormal" style="margin-left:70.8pt"> <o:p></o:p></p>
<p class="xmsonormal" style="margin-left:70.8pt"><span style="font-size:12.0pt;font-family:"HelveticaNeue",serif">Hello!</span>
<o:p></o:p></p>
<div>
<p class="xmsonormal" style="margin-left:70.8pt"><span style="font-size:12.0pt;font-family:"HelveticaNeue",serif">We needed some commands in rtpengine module to be asynchronous that is offer, answer and delete. I needed help for this.</span><o:p></o:p></p>
</div>
<div>
<p class="xmsonormal" style="margin-left:70.8pt;background:white"><span style="font-size:12.0pt;font-family:"HelveticaNeue",serif;color:black"> </span><o:p></o:p></p>
</div>
<div>
<p class="xmsonormal" style="margin-left:70.8pt;background:white"><span style="font-size:12.0pt;font-family:"HelveticaNeue",serif;color:black">Firstly, I went through the evapi module to understand how asynchronous commands were implemented by suspending request/responses
 and then by continuing. But I couldn't see anywhere where the suspended commands were being continued. </span><o:p></o:p></p>
</div>
<div>
<p class="xmsonormal" style="margin-left:70.8pt;background:white"><span style="font-size:12.0pt;font-family:"HelveticaNeue",serif;color:black"> </span><o:p></o:p></p>
</div>
<p class="xmsonormal" style="margin-left:70.8pt"><span style="font-size:12.0pt;font-family:"HelveticaNeue",serif;color:black;background:white">Thank you.</span>
<o:p></o:p></p>
<div>
<p class="xmsonormal" style="margin-left:70.8pt"> <o:p></o:p></p>
</div>
</div>
</div>
</div>
</body>
</html>