1. Ok I think I found the cause for the problem:
First of all I noticed that the dialog doesn't timeout if the ka_timer
module parameter is less or equal to 10 secs. If it is above 10 secs then
everything works.
I use the master branch and in the dialog module (
https://github.com/kamailio/kamailio/blob/master/modules/dialog/dlg_req_wit…)
in line 264 there is this code:
if(ps->code==408 || ps->code==481) {
if(update_dlg_timer(&dlg->tl, 10)<0) {
LM_ERR("failed to update dialog lifetime\n");
goto done;
}
dlg->lifetime = 10;
dlg->dflags |= DLG_FLAG_CHANGED;
}
This code is for updating the dialog's lifetime when a timeout occurs (by a
fake 408 reply) or a 481 is received.
But in the call of update_dlg_timer function above, the second argument is
a hardcoded 10, which causes the dialog to refresh its lifetime to 10 more
seconds, every time a timeout occurs, and because when ka_timer is < 10
secs this gets refreshed again before the dialog expires. I did a test with
a value of 1 and it correctly works for values of ka_timer >= 2
I cant say the correct value, propably should be 1, so that the dialog gets
expired the next second that the dlg_timer_routine runs. Also this value
should be less than the ka_timer value so there should be a minimum valid
ka_timer value.
I also looked in the 4.1.2 release and it is there too.
2. Is it possible to manually define the OPTIONS timeout when sending it?
Currently is around 30 secs, and I would like to make it less for this
specific use (dialog keep-alives)
Thanks.
On Tue, Apr 8, 2014 at 12:12 PM, Vassilis Radis <radisb(a)gmail.com> wrote:
Thanks Kelvin, but I already have tried this. This is
exactly what I wrote
that the issue is: Despite having set those options, and the keep alives
are sent, the dialog does not timeout as it should when no reply is sent to
the keep-alive OPTIONS msg by the dst peer.
I am using the master branch and I am trying to follow the source code to
see how and where the dialog module should be called back when the timeout
for the OPTIONS message occurs, but I am a little lost. If you think I am
missing something and there is a simple configuration solution please do
point it to me.
Thanks a lot.
On Mon, Apr 7, 2014 at 10:02 PM, Kelvin Chua <kelchy(a)gmail.com> wrote:
try this
modparam("dialog", "ka_timer", 3)
modparam("dialog", "ka_interval", 10)
these 2 will make sure it will disconnect within 30 seconds
dlg_set_property("ka-src");
dlg_set_property("ka-dst");
thesse 2 will make sure that keep alive timers will apply to the current
dialog
Kelvin Chua
On Mon, Apr 7, 2014 at 1:43 AM, Vassilis Radis <radisb(a)gmail.com> wrote:
Hello,
I am trying to use the dialog module for dealing with some cases where
clients do not send BYE messages correctly and just disappear. For this
reason i use the ka_timer and ka_interval along with ka-dst and ka-src
attributes. I am using the master branch. I have setup the following test:
I have setup a sipp instance as a callee uas configured to discard OPTIONS
messages. Kamailio serves as a proxy between this sipp instance and a VoIP
device registered to kamailio. Kamailio is also configured to send every
call to the sipp uas with stateful proxing and dialog support:
CALLER ------> KAMAILIO -----> CALLEE (sipp / ignores OPTIONS msg)
I have the following issue:
1. Dialog does send the OPTIONS messages to caller and callee, and as
expected, only the caller responds (with a 200 OK response). But the dialog
module never terminates the dialog as it should (because the callee never
responds to the OPTIONS msg). Instead it keeps sending those OPTIONS for
ever. It is like there is no timer entry in the timer list for those
OPTIONS. I looked a bit in the source code and I am trying to find where a
timeout for those keep alives is a)set and b)handled . I see that the
dlg_timer_routine is called every second but after turning debugging on, i
see that the only timer reported is the default timeout for the call which
i ve set to 3600 secs in the module parameters.
Any insight or advice?
Thanks a lot.
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users