THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.
A new Flyspray task has been opened. Details are below.
User who did this - Eduardo Lejarreta (lejarreta.e)
Attached to Project - sip-router Summary - Dialog bugs Task Type - Bug Report Category - dialog Status - Unconfirmed Assigned To - Operating System - Linux Severity - Medium Priority - Normal Reported Version - 3.2 Due in Version - Undecided Due Date - Undecided Details - Good morning.
I think I've found 2 bugs and 1 improvement. Please correct me if I'm wrong.
1.- Having for instance "modparam("dialog", "default_timeout", 10800)" -> after a "kamctl restart" no timeout was triggered
On "dlg_db_handler.c" -> on "load_dialog_info_from_db" function we should change this:
"""""""""""""""""""" ... dlg->tl.timeout = (unsigned int)(VAL_INT(values+9)) + get_ticks(); if (dlg->tl.timeout<=(unsigned int)time(0)) dlg->tl.timeout = 0; else dlg->tl.timeout -= (unsigned int)time(0);
dlg->lifetime = dlg->tl.timeout - get_ticks(); --------------->(NEW)
GET_STR_VALUE(cseq1, values, 10 , 1, 1); GET_STR_VALUE(cseq2, values, 11 , 1, 1); GET_STR_VALUE(rroute1, values, 12, 0, 0); GET_STR_VALUE(rroute2, values, 13, 0, 0); GET_STR_VALUE(contact1, values, 14, 1, 1); GET_STR_VALUE(contact2, values, 15, 1, 1); ... if (0 != insert_dlg_timer( &(dlg->tl), dlg->lifetime )) { ... --------------->(CORRECT) ... //dlg->lifetime = 0; ---------------> (no sense on this) dlg->dflags = 0; dlg->dflags |= DLG_FLAG_TOBYE; --------------->(IMPROVEMENT: DLG_FLAG_TOBYE should be also saved in any way on DB. After a "kamctl restart" we loose this contextual flag. As for us it's very important we've forced on code.) ... """"""""""""""""""""
instead of
"""""""""""""""""""" ... dlg->tl.timeout = (unsigned int)(VAL_INT(values+9)) + get_ticks(); if (dlg->tl.timeout<=(unsigned int)time(0)) dlg->tl.timeout = 0; else dlg->tl.timeout -= (unsigned int)time(0);
GET_STR_VALUE(cseq1, values, 10 , 1, 1); GET_STR_VALUE(cseq2, values, 11 , 1, 1); GET_STR_VALUE(rroute1, values, 12, 0, 0); GET_STR_VALUE(rroute2, values, 13, 0, 0); GET_STR_VALUE(contact1, values, 14, 1, 1); GET_STR_VALUE(contact2, values, 15, 1, 1); ... if (0 != insert_dlg_timer( &(dlg->tl), (int)dlg->tl.timeout )) { ... " --------------->(INCORRECT) ... dlg->lifetime = 0; dlg->dflags = 0; ... """"""""""""""""""""
2.- In this scenario, if a RE-INVITE was received by Kamailio after restart, the call was dropped automatically (the timeout left was ignored).
On "dlg_handlers.c" -> on "dlg_onroute" function we should change this:
"""""""""""""""""""" ... timeout = get_dlg_timeout(req); dlg->lifetime = timeout; ... """""""""""""""""""" --------------->(CORRECT)
instead of
"""""""""""""""""""" ... timeout = get_dlg_timeout(req); if (timeout!=default_timeout) { dlg->lifetime = timeout; } ... """""""""""""""""""" --------------->(INCORRECT)
As always, only for helping purpose not to bother anyone.
Thanks and best regards.
Eduardo Lejarreta.
More information can be found at the following URL: http://sip-router.org/tracker/index.php?do=details&task_id=282
You are receiving this message because you have requested it from the Flyspray bugtracking system. If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.