[Serdev] Re: [Devel] tm bug in t_hooks.c

Federico Giannici giannici at neomedia.it
Wed Dec 7 16:07:13 CET 2005


Bogdan-Andrei Iancu wrote:
> Hi Federico,
> 
> I'm afraid you have a script error - you called twice some functions 
> which create transactions...The error is generate most probably by 
> t_relay() which found the transaction already created in the script 
> (maybe via t_newtran).

Yes, I know it.
It is the UAC module that create a transaction (I don't know if in any 
case or only in some cases).

So when the message arrives at the classic t_relay() part of the script, 
I cannot know if a transactionis is already established.


> To be able to help, please send the script (privately, if necessary) to 
> take a look.

If you still think that there is problem somewhere, I will send the 
script to you...


Bye.


P.S.
I sent a similar question at "serusers at iptel.org", but still no usefull 
reply...




> Federico Giannici wrote:
> 
>> Bogdan-Andrei Iancu wrote:
>>
>>> Hi Frederico,
>>>
>>> that's good..one more down....
>>
>>
>>
>> Well.... the AVPs are no more disappearing, but I still have some 
>> problem with the reinvites...
>>
>> It seems that uac_replace_from() creates a transaction when an INVITE 
>> retrasmission is received. Infact in that case the following errors 
>> are logged for the retrasmitted INVITEs:
>>
>> Dec  5 18:49:25 eowyn OpenSER[5654]: ERROR: t_newtran: transaction 
>> already in process 0x502a56f8
>> Dec  5 18:49:25 eowyn OpenSER[5654]: ERROR: sl_reply_error used: I'm 
>> terribly sorry, server error occurred (1/SL)
>>
>> This is generated by this standard code:
>>
>> if ( !t_relay() ) {
>>     sl_reply_error();
>> }
>>
>> I thought that I could find the retrasmissions (with the 
>> t_lookup_request() function) and use the t_forward_nonack_uri() 
>> function in that case, but I got the following error:
>>
>> Dec  5 18:47:29 eowyn OpenSER[26647]: ERROR:tm:t_forward_nonack: no 
>> branch for forwarding
>>
>> Obviously, I have not enought undestanding of TM functions and 
>> transactions in general.
>>
>> So, the question is: can anybody post a correct fragment of script 
>> code that relay a message, correctly handling retrasmissions?
>>
>> Otherwise, could I simply discard retrasmissions (with a simple exit)?
>> And how I can recognize retrasmissions? Is t_lookup_request() the 
>> correct function for a test?
>>
>>
>> Thanks.
>>
>>
>>> Federico Giannici wrote:
>>>
>>>> Bogdan-Andrei Iancu wrote:
>>>>
>>>>> Hi Cesc,
>>>>>
>>>>> right!! as the transaction list is set all the time (disregarding 
>>>>> the presence of callbacks), it should be also unset all the time....
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> This solves the bug of the AVPs disappearing with retrasmitted 
>>>> INVITES too!!!
>>>>
>>>> Bogdan, now you can remove that bug from the ones to search for...
>>>>
>>>> Thank you Cesc.
>>>
>>>
>>
>>
> 
> 


-- 
___________________________________________________
     __
    |-                      giannici at neomedia.it
    |ederico Giannici      http://www.neomedia.it
___________________________________________________



More information about the Devel mailing list