[OpenSIPS-Devel] dialog module: dialog not cleaned up when BYE is sent
Herman Bastiaens
herman.bastiaens at androme.be
Wed Mar 4 11:50:12 CET 2009
Bogdan,
after the BYE, the dialog state is:
dialog:: hash=81:1143892611
state:: 3
timestart:: 1236163488
timeout:: 1908
callid:: 990261669 at somehost.com
from_uri:: sip:intellivic.test1 at demo.intellivic.com
from_tag:: 1729043143
caller_contact:: sip:me at 172.17.10.44:5070
caller_cseq:: 2
caller_route_set::
caller_bind_addr:: udp:172.17.10.44:5060
to_uri::
sip:aa at demo.intellivic.com;x-token=UdivkLQ9ehiLkJ01K1SNwT0ROVoviFIn
to_tag:: 1669544808
callee_contact:: sip:aa at 193.190.10.203:51571
callee_cseq:: 2
callee_route_set:: <sip:193.190.155.175:5070;ftag=1729043143;lr=on>
callee_bind_addr:: udp:172.17.10.44:5060
I do the unset_dlg_profile() on a negative reply, because the dialog is
not destroyed fast enough. This is the scenario:
-- INVITE -->
// check that there are no calls active
<-- 407 --
// the dialog will be destroyed, but this takes some time (perhaps
because the transaction is not yet destroyed?)
-- ACK -->
-- INVITE (with authentication) -->
// check that there are no calls active
// this check fails if the unset_dlg_profile () is not invoked
> Herman,
>
> So after the BYE, what is the exact dialog state reported by MI cmd?
> (please post the output)
>
> Also, is the dialog still present in the DB?
>
> BTW, you do not have to do unset_dlg_profile() if negative reply is
> received - this will happen automatically as the dialog will be
> destroyed (theoretically :D)
>
> Regards,
> Bogdan
>
> Herman Bastiaens wrote:
>> Hi bogdan,
>>
>> I use the MI dlg_list, the dialog state is not written to DB.
>>
>> PS: like Takeshi, I also clear the profile with unset_dlg_profile on
>> reception of a 4XX
>>
>> Regards,
>>
>> Herman
>>
>>>> Hi Herman,
>>>>
>>>> when you say the dialog is not removed, how do you check ? do you check
>>>> with the MI dlg_list command or you look into DB ?
>>>
>>> Hello, Bogdan and Herman.
>>> I am seeing similar thing on kamailio (but I measured the interval as
>>> 3 to 4 seconds). So this seems to be something inherited from openSER.
>>> If I understood Herman's description of the problem correctly, he is
>>> putting the dialog in a profile and then he would expect the dialog to
>>> be cleared from the profile upon reception of BYE.
>>> I'm using profile this way too, to control limit of simultaneous calls
>>> to our subscribers. So if we try to perform consecutive test calls
>>> using something like SIPp with a max_calls set to 1 in my cfg file, if
>>> the duration of the call is less than 4 seconds, the subsequent call
>>> will fail because when we use profile_get_size, it returns 1, instead
>>> of the expected zero.
>>>
>>> For us however, this is not a concern anymore as this is very rare
>>> situation. And actually, what was causing problem to us was the case
>>> where the distant end sends a 4XX response within 4 seconds which has
>>> the same delay to cause the profile to be cleared (I'm not sure if
>>> this applies to opensips). But this is not a problem as we are forcing
>>> the clearing using unset_dlg_profile.
>>>
>>> regards,
>>> takeshi
>>>
>>>> Herman Bastiaens wrote:
>>>>> Hi Bodgan,
>>>>>
>>>>> that's what I'm seeing, time and time again. I was hoping this might
>>>>> ring a bell, but from your reply I take that it doesn't :-)
>>>>>
>>>>> Regards,
>>>>>
>>>>> Herman
>>>>>
>>>>>> Hi Herman,
>>>>>>
>>>>>> just to copy the reply from the forum :) :
>>>>>>
>>>>>> So, let me see if I get it right. With the same configuration, if the
>>>>>> call is longer than 5 secs, everything is ok (dialog is removed when
>>>>>> receiving a BYE). But if the call is shorter than 5 secs, the dialog
>>>>>> is not removed.
>>>>>> Is this what you say?
>>>>>>
>>>>>> Regards,
>>>>>> Bogdan
>>>>>>
>>>>>> Herman Bastiaens wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I've posted this problem on the forum
>>>>>>> (https://sourceforge.net/forum/message.php?msg_id=6595314), but it
>>>>>>> doesn't seem to be very active, so I'm posting it here as well.
>>>>>>>
>>>>>>> I'm having a problem with the dialog module of opensips 1.4.2-notls.
>>>>>>> When a call is set up, and released within five seconds, the dialog
>>>>>>> is not removed. I am sure the call is set up correctly (INVITE - 200
>>>>>>> OK - ACK) and the BYE is sent (with the correct call-id, from and to
>>>>>>> tag), but the dialog is not removed.
>>>>>>>
>>>>>>> I do a record_route_preset () for the INVITE and a loose_route() for
>>>>>>> the BYE.
>>>>>>>
>>>>>>> Are there any timers, caching, ... that could explain this behavior?
>>>>>>> I have tested a number of times, and the problem only occurs if the
>>>>>>> call is shut down within the first five seconds, if the call is
>>>>>>> running longer, the dialog is cleaned up correctly when the BYE is
>>>>>>> sent.
>>>>>>>
>>>>>>> note: a dialog is inserted multiple times in the same profile, but
>>>>>>> with different values, I don't know if this is relevant for the
>>>>>>> issue
>>>>>>>
>>>>>>>
>>>>>> ------------------------------------------------------------------------
>>>>>>
>>>>>>
>>>>>>
>>>>>> No virus found in this incoming message.
>>>>>> Checked by AVG - www.avg.com Version: 8.0.237 / Virus Database:
>>>>>> 270.11.6/1981 - Release Date: 03/03/09 07:25:00
>>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Devel mailing list
>>>> Devel at lists.opensips.org
>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/devel
>>>>
>>>
>>
>>
>
>
More information about the Devel
mailing list