Hi List
To correctly route ACK belonging to a transaction (totag) the example code does:
if ( is_method("ACK") ) { if ( t_check_trans() ) { route(RELAY); exit; } else { xlog("L_INFO", "$cfg(route): $rm NOT loose route NO transaction found DROP\n"); exit; } }
Unfortunatels I fear that in a parallell forking scenario, the transaction is remove from memory as soon as the first 'negative' ACK is being processed so that the end 2 end ACK to the 200 OK of the branch that connected the call, never makes it through.
I attempted to increase wt_timer to 10000 to have the transaction stay around 10 seconds but that does not solve the issue.
I read that t_check_trans()'s result shall be considered more as a hint than as a confirmation of an existing transaction.
Is there a clean / secure way to process e2e ACK and make sure they belong to a transaction? Or can I just safely remove the t_check_trans() call and route any ACK with a totag?
Mit freundlichen Grüssen
-Benoît Panizzon-
Hi,
On Oct 28, 2024, at 11:07 am, Benoit Panizzon via sr-users sr-users@lists.kamailio.org wrote:
To correctly route ACK belonging to a transaction (totag) the example code does:
The e2e ACK is a separate transaction, so using t_check_trans() with it is not possible.
-- Alex