[Serdev] Re: [Devel] tm bug in t_hooks.c
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Wed Dec 7 16:10:34 CET 2005
Federico Giannici wrote:
> 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).
>
the uac module does not create a transaction - uac_replace_from()
performs just text mangling and installs some hooks.
regards,
bogdan
> 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.
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
More information about the Devel
mailing list