[Serdev] Re: [Devel] tm bug in t_hooks.c
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Tue Dec 20 14:54:51 CET 2005
the only issue with your script is that you do not retransmit the reply
when receiving a request retransmission. so, try:
if( !is_method("ACK|CANCEL") && t_lookup_request() )
{
log( 1, "Duplicate message, exiting..." );
t_retransmit_reply();
exit;
}
regards,
bogdan
Federico Giannici wrote:
> Bogdan-Andrei Iancu wrote:
>
>> Hi Federico,
>>
>> you are right - the root problem is the call of t_lookup_request()
>> (which I was suspecting to be from script) - but it's called by TM
>> register callback function.
>>
>> The t_lookup_request() function sets a internal static variable which
>> points to the found transaction (if any). t_relay() interprets the
>> set variable as duplicated call of the function.
>>
>> I will have to find a way to solve this.....good catch and thanks for
>> the help!!
>
>
> OK.
>
> And what about the little script code (quoted below) I use to avoid
> this problem?
> Do you think it can give any problem?
>
> Bye.
>
>
>
>> Federico Giannici wrote:
>>
>>> Bogdan-Andrei Iancu wrote:
>>>
>>>>
>>>> Hi Federico,
>>>>
>>>> what I'm asking is to remove completely from your script the
>>>> retransmission tests (via t_lookup_request() and t_check_trans() )
>>>> .... remove them and see if you still get the error...
>>>
>>>
>>>
>>>
>>> I already replyed to you on 9th (with a private email)...
>>>
>>> Anyway, if you look at my last email, I have found that the problem
>>> is in the uac_replace_from() that calls uac_tmb.register_tmcb() that
>>> indirectly calls t_lookup_request()!
>>>
>>> t_lookup_request() estables a transaction for retrasmissions, so
>>> when later I call t_relay... it gives the error!
>>>
>>> I added the following code just before the t_relay():
>>>
>>> if( !is_method("ACK|CANCEL") && t_lookup_request() )
>>> {
>>> log( 1, "Duplicate message, exiting..." );
>>> exit;
>>> }
>>>
>>> Do you think is ok?
>>>
>>> Bye.
>>
>
>
More information about the Devel
mailing list