e2e ACK is a different transaction (different branch id) than the invite transaction .So t_check_trans() will never succeed for e2e ACK.You can use is_known_dlg() to check all in dialog requests (e2e ACK included)Le 28 oct. 2024 16:07, Benoit Panizzon via sr-users <sr-users@lists.kamailio.org> a écrit :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-
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web http://www.imp.ch
______________________________________________________
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
To unsubscribe send an email to sr-users-leave@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender!
Edit mailing list options or unsubscribe: