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