[OpenSIPS-Users] dialog behavior when no ACK is received

M S medeanwz at gmail.com
Mon Oct 31 09:17:40 UTC 2022


Thanks, this looks like a good idea! changed your code a little to set
DLG_timeout=5 right after create_dialog (otherwise even though you set
DLG_timeout=12hrs for ACK, outside the if it gets reset to 5 again). I'm
testing and will let you know.


On Mon, Oct 31, 2022 at 2:27 AM John Burke via Users <
users at lists.opensips.org> wrote:

> Hello,
>
> One way to handle the ACK timeout scenario that you described is to
> initially set the dialog timeout to a low value, then increment to the
> desired value after receiving the ACK.  Here's a minimal example with some
> notes I have. In this config, your call would hang for 5sec before being
> auto-closed by the dialog module.
>
> route {
>   if (has_totag()) {
>     # sequential request logic
>     ...
>     if (is_method("ACK"))
>       $DLG_timeout = 43200; # 12hrs
>     ...
>   }
>
>   # to handle case of lost ACK, we set low dialog timeout then
>   # increase once ACK is received; without this the call will stay
>   # in DLG_STATE=3 until default dialog timeout is met
>   # NOTE: timer doesn't start until 200 received, so this is essentially
>   #       an ACK timeout (ie 200 -> ACK)
>   $DLG_timeout = 5;
>
>   ...
>   # initial request logic
> }
>
>
> If the code ever changes to start the DLG timer before the 200, then this
> doesn't work... but I think this is baked into RFC and in any rate my unit
> tests for this scenario have never failed when migrating versions :)
>
> Thanks,
> John Burke
>
>
> On 10/30/22 9:44 AM, M S wrote:
>
> Hi list,
> When a dialog is created with initial INVITE, it seems like it is not
> available to dlg_end_dlg until the call is answered (OK received) and the
> caller also acknowledges (ACK) to the OK message.
> So in a scenario where a caller sends an INVITE and then dies, the call
> goes to callee, gets answered, OK is sent to caller but there is no
> response, and the dialog stays open until default_timeout and that's when
> the CDR is generated (if default_timeout is 12 hours then a 12 hour call is
> in CDR).
> Anybody has any ideas how we can fix this? If I use PpB for dialog, it
> never PINGs the callee because apparently the dialog is not fully
> established on the callee side. If I use rtpengine to detect media timeout,
> it correctly detects it but when it calls dlg_end_dlg opensips says "dialog
> not found".
>
> Thank you!
>
> --
>
> * Please be cautious!* This email was sent from outside of Voxtelesys.
>
>
> _______________________________________________
> Users mailing listUsers at lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20221031/9da799c8/attachment-0001.html>


More information about the Users mailing list