Ok, I tested and it is working but I would kindly need an explanation
1- the setup : - kamailio 5.1 with three listen (on port 5060, 5063, 5066) - 2 UAs using UDP on port 5063 - added a log in the script
``` route[WITHINDLG] { if (!has_totag()) return;
# sequential request withing a dialog should # take the path determined by record-routing if (loose_route()) { route(DLGURI); if (is_method("BYE")) { setflag(FLT_ACC); # do accounting ... setflag(FLT_ACCFAILED); # ... even if the transaction fails } else if ( is_method("ACK") ) { # ACK is forwarded statelessly xlog("forced socket $fs\n"); route(NATMANAGE); } else if ( is_method("NOTIFY") ) { # Add Record-Route for in-dialog NOTIFY as per RFC 6665. record_route(); } route(RELAY);
```
2- parameter for rr module
``` modparam("rr", "enable_full_lr", 0) modparam("rr", "enable_double_rr", 1)
```
3- result - on K master, ACK gets forwarded **properly** using source port 5036 with the following traces
``` Feb 14 17:13:50 mcudev3 /usr/local/sbin/kamailio[21394]: {1 5765 ACK ffb8d7ca-efae-79ef-6035-dd1043352c55} DEBUG: rr [loose.c:812]: after_loose(): Topmost route URI: 'sip:172.21.100.108:5063;lr' is me
Feb 14 17:13:50 mcudev3 /usr/local/sbin/kamailio[21394]: {1 5765 ACK ffb8d7ca-efae-79ef-6035-dd1043352c55} DEBUG: <core> [core/parser/msg_parser.c:89]: get_hdr_field(): found end of header
Feb 14 17:13:50 mcudev3 /usr/local/sbin/kamailio[21394]: {1 5765 ACK ffb8d7ca-efae-79ef-6035-dd1043352c55} DEBUG: rr [loose.c:181]: find_next_route(): No next Route HF found Feb 14 17:13:50 mcudev3 /usr/local/sbin/kamailio[21394]: {1 5765 ACK ffb8d7ca-efae-79ef-6035-dd1043352c55} DEBUG: rr [loose.c:842]: after_loose(): No next URI found Feb 14 17:13:50 mcudev3 /usr/local/sbin/kamailio[21394]: {1 5765 ACK ffb8d7ca-efae-79ef-6035-dd1043352c55} ERROR: <script>: forced socket <null>` ```