Hello World!
Kamailio 5.5 in use.
I wonder, how I could prevent this issue.
modparam("dialog", "send_bye", 1)
modparam("dialog", "default_timeout", 21600)
in the corresponding route:
$dlg_ctx(timeout_route) = "DIALOG_TIMEOUT";
dlg_manage();
Dialog starts on Node01 and it's variables, status and timer are DMQ
synced to Node02
As both nodes have the same information, I guess both arm the timeout
trigger and sometimes the wrong node is more trigger friendly.
If dlg_ontimeout() is triggered on Node02 then:
* No Bye is send, as Node02 is not handling that Dialog.
* Dialog is removed from Memory on Node02 and state synced back to
Node01
* Dialog is removed from Memory on Node01 too, but NOT from database [*1]
* Dialog CDR is never commited on Node01
* Call is never sent to timeout_route
And subsequent in dialog messages on Node01 result in:
dlg_onroute(): unable to find dialog
Did I misconfigure something?
Is there a way to make sure the timer is NOT triggered on the node not
handling the dialogue?
Shall I try by setting the default_timeout and then use a timeout_avp
to set that timeout slightly lower AFTER the dialog has started? Or
would this be synced to the other node too?
I found out, session timer changes are not synced after an initial timer
was synced, so you can not extend the session timer after setting a
initial timeout. So maybe this is also true for dialog timeout?
[*1] this also explains why upon restarting kamailio, the dialog
suddenly is back and after timing out again, a CDR is then written with
a way too long duration.
--
Mit freundlichen Grüssen
-Benoît Panizzon- @ HomeOffice und normal erreichbar
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web
http://www.imp.ch
______________________________________________________