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