<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hello Ivan,</p>
<p>this type of questions are better suited to our developer list, not the users list - adding it to CC.<br>
</p>
<p>I haven't looked yet that deep into your previous e-mail, but have you already looked e.g. to the dialog module? This does something similar, e.g. bridging an existing dialog. It uses uac_req_t and a TM callback. You find the implementation in dlg_transfer.c,
 e.g. function dlg_bridge(str *from, str *to, str *op, str *bd).</p>
<p>Cheers,</p>
<p>Henning<br>
</p>
<div class="moz-cite-prefix">Am 08.05.19 um 09:26 schrieb Ivan Ribakov:<br>
</div>
<blockquote type="cite" cite="mid:24FEDFA4-371B-42D2-B1A9-E45B2F8C57AA@zaleos.net">
Anyone with module dev experience here who had to do something similar or used tm_load.h interface for other purposes?<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 7 May 2019, at 16:39, Ivan Ribakov <<a href="mailto:i.ribakov@zaleos.net" class="" moz-do-not-send="true">i.ribakov@zaleos.net</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space;
              line-break: after-white-space;" class="">
I’m working on a custom Kamailio module where I need to send new-dialog and in-dialog requests on timer (hence I’m being forced to generate new messages from C code).
<div class=""><br class="">
</div>
<div class="">So far I’ve been using modules/tm/tm_load.h defined interface to generate messages and handle callbacks. New dialog messages are sent and processed normally. To do that I’m:</div>
<div class=""><br class="">
</div>
<div class="">1. Calling set_uac_request() to define request parameters</div>
<div class="">2. Calling tmb.t_request_outside() to send it outside any existing dialog</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">I was able to send in-dialog requests (or so I thought) in a similar fashion, but I soon realised that responses to those requests were dropped because they couldn’t be matched against any known existing transaction. I’m attaching log messages
 that I believe support this theory and I’ve also observed UDP retransmissions.</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">tm [t_lookup.c:897]: t_reply_matching(): t_reply_matching: hash 50576 label 0 branch 0</div>
<div class="">tm [t_lookup.c:990]: t_reply_matching(): no matching transaction exists</div>
<div class="">tm [t_lookup.c:993]: t_reply_matching(): failure to match a transaction</div>
<div class="">tm [t_lookup.c:1088]: t_check_msg(): msg (0x5abcb50) id=1 global id=1 T end=(nil)</div>
<div class="">tm [t_reply.c:2195]: reply_received(): transaction not found - (branch -1)</div>
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">The way I’m currently generating in-dialog requests is very similar to what tmb.t_request_outside() does, the main difference being that I do the dialog setup manually, based on the call-ID, cseq and from/to tags (I’m tracking transaction identifiers
 separately) and then pass resulting uac_req_t to tmb.t_request_within() - <a href="https://gist.github.com/IvanRibakov/3302cb286b1f4b786d109b406f2435a2" class="" moz-do-not-send="true">https://gist.github.com/IvanRibakov/3302cb286b1f4b786d109b406f2435a2</a></div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">Now, the question part - does anyone know what I’m doing wrong/missing? As I mentioned, when looking at the generated message bodies, they look ok to me (left - initial request that started the dialog, right - first in-dialog request), so I’m
 guessing I’m missing some Kamailio internal steps needed to register new transaction.</div>
<div class=""><span id="cid:3802445C-68C9-4423-9A78-305BDB9516EC@home"><kamailio_indialog_req.png></span></div>
<div class=""><br class="">
</div>
<div class="">SIP flow (up to the point when first UDP retransmission happens)</div>
<div class=""><span id="cid:1D497085-3CBB-4FD4-AEBD-C2AE05810728@home"><PastedGraphic-1.png></span></div>
<div class=""><br class="">
</div>
<div class="">I apologise in advance for the bulky question and will be extremely thankful for any guidance.</div>
<div class=""><br class="">
</div>
<div class="">Regards,</div>
<div class="">Ivan</div>
</div>
</div>
</blockquote>
</div>
<br class="">
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
Kamailio (SER) - Users Mailing List
<a class="moz-txt-link-abbreviated" href="mailto:sr-users@lists.kamailio.org">sr-users@lists.kamailio.org</a>
<a class="moz-txt-link-freetext" href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
</blockquote>
<pre class="moz-signature" cols="72">-- 
Henning Westerholt - <a class="moz-txt-link-freetext" href="https://skalatan.de/blog/">https://skalatan.de/blog/</a>
Kamailio services - <a class="moz-txt-link-freetext" href="https://skalatan.de/services">https://skalatan.de/services</a></pre>
</body>
</html>