<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<font face="monospace">Hi Ivan,<br>
<br>
you can use timer_route, but as there is no way to send a reply
for a particular transaction from script level (only to the
currently processed request), you will have to trigger the MI cmds
from the timer route, which is a bit hackish ....<br>
<br>
Regards,<br>
</font>
<pre class="moz-signature" cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a class="moz-txt-link-freetext" href="https://www.opensips-solutions.com">https://www.opensips-solutions.com</a>
OpenSIPS Summit 27-30 Sept 2022, Athens
<a class="moz-txt-link-freetext" href="https://www.opensips.org/events/Summit-2022Athens/">https://www.opensips.org/events/Summit-2022Athens/</a></pre>
<div class="moz-cite-prefix">On 10/11/22 11:47 AM, Ryzhik Ivan
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAG9R00qbjcZcrmL_ye8yM=Pk2E67Yqq_tmeWf=BkmPvOFE_aZA@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">Hi, Bogdan!
<div>What d' you think, can we use timer_route instead of an
external script?</div>
<div>Regards, Ivan.</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">пн, 10 окт. 2022 г. в 17:04,
Bogdan-Andrei Iancu <<a href="mailto:bogdan@opensips.org"
moz-do-not-send="true">bogdan@opensips.org</a>>:<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> <font face="monospace">Hi Ryzhik,<br>
<br>
Without a t_relay() it makes not much sense to have an
dialog structure at all - the dialog module in opensips is
actually design for proxied calls, not for UAC calls.<br>
<br>
IMO, you should keep it a transaction level, by sending
replies back only. When getting the INVITE, put its
call-id into a DB table (to keep only the "active"
session) together with a lifetime / expiration time. When
getting a CANCEL, update the table (set lifetime to 0), to
know it is terminated. And use an simple external script
that keeps scanning the DB for (1) sending 487 Terminated
via MI if the record has 0 lifetime or (2) send a 408
Timeout via MI if the lifetime exceeded.<br>
In a similar way you can handle the BYE - send back 200OK
for the BYE and set 0 in lifetime, to send a 487 canceled
back <br>
<br>
Regards,<br>
</font>
<pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="https://www.opensips-solutions.com" target="_blank" moz-do-not-send="true">https://www.opensips-solutions.com</a>
OpenSIPS Summit 27-30 Sept 2022, Athens
<a href="https://www.opensips.org/events/Summit-2022Athens/" target="_blank" moz-do-not-send="true">https://www.opensips.org/events/Summit-2022Athens/</a></pre>
<div>On 10/10/22 4:33 PM, Ryzhik Ivan wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hello!
<div>My opensips version is 3.1 with tm,dialog and
rtpengine modules.</div>
<div>On incoming INVITE i'm creating an early dialog
with 183 replies and i'm playing audio to caller with
rtpengine, no t_relay() on this step, OS is acting as
UAS endpoint.<br>
If the caller cancels the invite with a CANCEL message
- all works great.<br>
But some users terminate dialog with BYE message.<br>
1) on BYE with to-tag OS can't find dialog with
match_dialog(), because to-tag presents.<br>
2) if i use load_dialog_ctx($ci) - it is possible to
handle BYE.<br>
3) in early dialog termination with BYE we also need
to send final response to the INVITE transaction. <br>
<br>
Maybe I did something wrong, but I can't handle the
final response to INVITE in this case.<br>
</div>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
Users mailing list
<a href="mailto:Users@lists.opensips.org" target="_blank" moz-do-not-send="true">Users@lists.opensips.org</a>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank" moz-do-not-send="true">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
</blockquote>
<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>