Greetings,
I have a strange call with a client in which he sends me an INVITE and i do
the usual "100", "183" and "200 - OK" but the client never
gets my
provisional or final responses and, as such keeps retransmitting the first
INVITE.
For the first retransmissions Kamailio doesn't relay the INVITE which i
think is the correct behaviour.
However, after around 30s, a retransmission is processed and is relayed to
a different destination, using "ds_select_dst()" from the DISPATCH module.
For this to happen it had to fail the "t_check_trans()" function from TM
module which tells me that the transaction from the first INVITE was gone.
I went to search timers and lifetime definitions on TM module and found one
"max_inv_lifetime" which tells me that "An INVITE transaction will be kept
in memory for maximum: max_inv_lifetime+fr_timer(from the ACK to the final
reply wait)+wt_timer".
In this case : max_inv_lifetime is 180 seconds, fr_timer is 30 seconds and
wt_timer is 5 seconds. It's sum is 215seconds and from what i can see, my
transaction only had a lifetime of 30s.
fr_timer is configured with 30s but it's definition is "Timer which hits if
no final reply for a request or ACK for a negative INVITE reply arrives (in
milliseconds)." and it mentions ACK, but in my case it's an ACK for a final
reply that is missing and not an ACK for a negative reply.
What other reasons might have caused this transaction to be terminated ?
Best Regards