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_within.c) 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 <rad...@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 <kel...@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 <rad...@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@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@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@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users