[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