[OpenSIPS-Users] What is the role of t_check_trans at line 253 of opensips.cfg in SVN trunk

Alex Balashov abalashov at evaristesys.com
Thu Jul 16 21:50:31 CEST 2009


Thanks Bogdan. Appreciate your followup.

So let me put the question this way:

What is the benefit of creating a new transaction on top of the  
retrans checks?  Why would I not just want to wait until I call  
t_relay(), which will also create a transaction if it does not already  
exist.  Why it would be beneficial to have it exist beforehand?It  
seems that retransmission detection works the same way regardless.

--
Sent from mobile device

On Jul 16, 2009, at 11:54 AM, Bogdan-Andrei Iancu <bogdan at voice-system.ro 
 > wrote:

> Hi Alex,
>
> No, t_check_trans() will NOT create a new transaction. Both function  
> will check (for non-ACK and non-CANCEL) if it is retransmission and  
> if so, it will sent (via TM) the last sent reply and stop the script  
> exectution. If it is not a retransmission, t_check_trans() will not  
> do anything else, but t_newtran() will create a new transaction.
>
> I added this function in 1.0 (?!?) as it was mainly intended for  
> proper CANCEL and ACK routing.
>
> Regards,
> Bogdan
>
> Alex Balashov wrote:
>> Bogdan,
>>
>> Are you saying that t_check_trans() will create a new transaction  
>> for a non-ACK/CANCEL retransmission too?   Or that it retransmits  
>> the last reply sent "statelessly" somehow?
>>
>> -- 
>> Sent from mobile device
>>
>> On Jul 14, 2009, at 9:10 AM, Bogdan-Andrei Iancu <bogdan at voice-system.ro 
>> > wrote:
>>
>>> Hi Stan,
>>>
>>> when comes to handling retransmissions  (and not CANCELs and ACKs
>>> belonging to an INVITE transaction), both function do more or less  
>>> the
>>> same - handle the retransmission (by retransmitting the last sent  
>>> reply)
>>> and breaking the script execution - of course, the difference is  
>>> if no
>>> retransmission, t_newtran() will create a new transaction for the  
>>> request.
>>>
>>> So :
>>>
>>> t_check_trans();
>>> t_new_trans();
>>>
>>>
>>> is a bit redundant. Only:
>>>
>>> t_new_trans();
>>>
>>>
>>> will do exactly the same job.
>>>
>>> Again, this is true only in the context of non-CANCEL  and non-ACK  
>>> requests!
>>>
>>> Regards,
>>> Bogdan
>>>
>>> Stanisław Pitucha wrote:
>>>> 2009/7/14 Alex Balashov <abalashov at evaristesys.com>:
>>>>
>>>>> http://www.opensips.org/html/docs/modules/1.5.x/tm.html#id272150
>>>>>
>>>>
>>>> A bit related question. Since the docs mention:
>>>> "If the processing of requests may take long time (e.g. DB lookups)
>>>> and the retransmission arrives before t_relay() is called, you  
>>>> can use
>>>> the t_newtran() function to manually create a transaction."
>>>>
>>>> Is there any situation where:
>>>>
>>>> t_check_trans();
>>>> t_new_trans();
>>>>
>>>> after all cancel / ack checks is a bad thing to do? Or maybe even:
>>>>
>>>> t_check_trans();
>>>> if (is_method('INVITE|UPDATE|REFER')) t_new_trans();
>>>>
>>>> since everything else can be safely duplicated / is rather light  
>>>> in processing.
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at lists.opensips.org
>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>
>>>>
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>



More information about the Users mailing list