[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