[Kamailio-Devel] [Kamailio-Users] [Bulk] Re: drop() and tm timers.
Daniel-Constantin Mierla
miconda at gmail.com
Sun Dec 21 08:55:39 CET 2008
On 12/20/08 14:09, Aurelien Grimaud wrote:
> Daniel-Constantin Mierla a écrit :
>>
>>
>> On 12/19/08 10:10, Aurelien Grimaud wrote:
>>> Klaus Darilion a écrit :
>>>
>>>> Strange!
>>>>
>>>> Nevertheless there is no need to drop 100 as 100 is never relayed.
>>>>
>>> Yep, my mistake !
>>>
>>> The first destination chosen for serial forking was sending a 101
>>> with sdp, which was relayed to caller.
>>>
>> 101 - I haven't heard of such reply so far ... what is the reason
>> phrase?
> Well, this is a home made reply from a pstn gateway.
> The pstn gateway sens request to a pstn network equipement.
> As soon as the pstn equipements answers a Progress, a 101 is relayed
> to openser.
ok, i understand.
> It contains really early sdp.
> I thought it smart.
> I am not so sure now !
If you want to get to tm but not relayed upstream, you should drop it in
an onreply_route armed via tm (t_on_reply(...) call), not the default
onreply_route.
Cheers,
Daniel
>
> Aurelien
>>
>>> But this first destinaion failed to establish the call, so the
>>> request was serial forked to another destination, sending another
>>> 101 sdp, then 180 sdp and 200 sdp which are relayed to caller.
>>> The problem is that caller did not take into account the next sdp
>>> but stay stucked to initial one (the one that failed).
>>>
>>> When tm timer triggers, there is a CANCEL which is sent to initial
>>> destination right ?
>>>
>> Yes.
>>
>>> Well, maybe 100 does not change timers from fr to fr_inv, and I did
>>> not notice before as 180 was coming very fast ?
>>> I checked the source, but the test in t_reply before updating the
>>> timer is not obvoious to see wether timer are canceled on 100 or 180
>>> :-)
>>> One thing is sure. If you drop the reply, timer will not be changed.
>>>
>> If you dropped it in default onreply route then tm does not get it.
>>
>> Cheers,
>> Daniel
>>
>>> The destination was a mobile device on PSTN.
>>> 180 may be really delayed, and I am not even sure they are mandatory !
>>>
>>> Aurelien
>>>
>>>> klaus
>>>>
>>>> Aurelien Grimaud wrote:
>>>>
>>>>> Daniel-Constantin Mierla a écrit :
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> On 12/18/08 13:18, Aurelien Grimaud wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>> In my openser, I had to not relay any provisional which is < 180.
>>>>>>> I used drop in reply route to do this.
>>>>>>> No provisional < 180 is sent to caller.
>>>>>>>
>>>>>>> Unfortunately, dropping 100 seems to make the transaction module
>>>>>>> not disarming its fr_timer.
>>>>>>>
>>>>>> 100 is disabling the retransmission timer. fr_timer is the
>>>>>> duration to wait until a final response is received, not related
>>>>>> to retransmission and 100 reply.
>>>>>>
>>>>>>
>>>>> - fr_timer is armed when INVITE is t_relayed and disarmed *only*
>>>>> when a final response is received.
>>>>> - fr_inv_timer is armed whenever a provisional (100 - 199) is
>>>>> received, disarmed on final response .
>>>>> Well, fr_timer also has to be disarmed when fr_inv_timer is armed
>>>>> right ?
>>>>>
>>>>> So any provisional (100-199) disarm fr_timer and arm fr_inv_timer.
>>>>> But you have not to drop it in reply_route.
>>>>>
>>>>> In my case, the reply_route I set drops any provisional < 180.
>>>>> This means that the 100 response will not make tm module switch
>>>>> fr_timer to fr_inv_timer as it would be if not dropped.
>>>>>
>>>>> Well this is not a problem, I only dropped provisional from 101 to
>>>>> 180, and all went back to normal.
>>>>> Since 100 is not forwarded (because of t_relay already generated
>>>>> one), this makes no difference for end users.
>>>>>
>>>>> I did not expect drop() statement to change anything for timers.
>>>>>
>>>>> Thanks.
>>>>> Aurelien
>>>>>
>>>>>
>>>>>> Cheers,
>>>>>> Daniel
>>>>>>
>>>>>>
>>>>>>> The 180 has been waited for more time than my fr_timer so
>>>>>>> request failed and failure_route was called.
>>>>>>> In fact, there is no 180, only a 200 ok.
>>>>>>>
>>>>>>> Can anyone confirm that disarming timer is *not* done if 100 is
>>>>>>> dropped ?
>>>>>>>
>>>>>>> This is openser 1.2.1
>>>>>>>
>>>>>>> Regards.
>>>>>>> Aurelien
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Devel mailing list
>>>>>>> Devel at lists.kamailio.org
>>>>>>> http://lists.kamailio.org/cgi-bin/mailman/listinfo/devel
>>>>>>>
>>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Devel mailing list
>>>>> Devel at lists.kamailio.org
>>>>> http://lists.kamailio.org/cgi-bin/mailman/listinfo/devel
>>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.kamailio.org
>>> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>
>
>
--
Daniel-Constantin Mierla
http://www.asipto.com
More information about the Devel
mailing list