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 list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to