[sr-dev] git:master: tmx: documentation for t_precheck_trans()
Daniel-Constantin Mierla
miconda at gmail.com
Tue Aug 19 09:57:56 CEST 2014
On 19/08/14 09:07, Juha Heinanen wrote:
> Daniel-Constantin Mierla writes:
>
>> + Example 1.11. t_precheck_trans usage
>> +...
>> + # handle retransmissions
>> + if(t_precheck_trans()) {
>> + t_check_trans();
>> + exit;
>> + }
>> + t_check_trans();
> why t_check_trans() is called when t_precheck_trans() returns true? why
> exit is not enough?
The purpose of t_check_trans() there is for the case when the
transaction was already created by another process, resulting in
retransmitting back the last reply (what rfc recommends).
Practically, t_precheck_trans() stores the
callid/from-tag/cseq/via-branch in a shared memory structure and checks
if another process has the same values. It can be the case of a match,
but the other process can be ahead with processing and the transaction
was created for that request.
I considered of doing t_check_trans() from inside t_precheck_trans(),
but then I thought it gives more flexibility via config.
t_precheck_trans() should be very fast, these structures are indexed by
call id in a hash table, only when a child handles a request with
request_route.
If you just want to drop the retransmission, you can skip
t_check_trans() inside the if.
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Next Kamailio Advanced Trainings 2014 - http://www.asipto.com
Sep 22-25, Berlin, Germany ::: Oct 15-17, San Francisco, USA
More information about the sr-dev
mailing list