i started to wonder why my proxy is calling fix_natted_contact() in
onreply route even when called ua is not behind nat.  the function is
called under condition

        if (isbflagset("TO_NATED") &&
                        t_check_status("18[0-9]|2[0-9][0-9]|3[0-9][0-9]")) {
            xlog("L_INFO", "Fixing nated contact in onreply_route\n");
                fix_nated_contact();
        };

i then added xlog telling if "TO_NATED" flags is set when request is
sent out:

        if (isbflagset("TO_NATED")) {
                xlog("L_INFO", "Flag to_nated is set before t_relay\n");
    } else {
                xlog("L_INFO", "Flag to_nated is NOT set before t_relay\n");
        }       

it turns out that sometimes TO_NATED flag is set and sometimes not even
when the calls are exactly identical.

here is my example call: "jh" (behind nat) calls "foo", "foo" has forwarding
on in the proxy to "test", which causes the request to be sent back to sr at
127.0.0.1:5070 (and then to "test", but the error has happened 
already and that is not shown).

first example call where TO_NATED flag is set although it should not
have been:

Oct 30 20:45:29 localhost /usr/sbin/sip-proxy[31447]: INFO: INVITE 
<sip:[email protected]> is authorized 
Oct 30 20:45:29 localhost /usr/sbin/sip-proxy[31447]: INFO: Unconditional 
forwarding to <sip:[email protected]> 
Oct 30 20:45:29 localhost /usr/sbin/sip-proxy[31447]: INFO: Fixing nated 
contact in handle_caller_nat
Oct 30 20:45:29 localhost /usr/sbin/sip-proxy[31447]: INFO: Routing initial 
INVITE <sip:[email protected]> to <sip:127.0.0.1:5070> 
Oct 30 20:45:29 localhost /usr/sbin/sip-proxy[31447]: INFO: Flag to_nated is 
set before t_relay 
...

second example call that works as it should:

Oct 30 20:47:03 localhost /usr/sbin/sip-proxy[31441]: INFO: INVITE 
<sip:[email protected]> is authorized 
Oct 30 20:47:03 localhost /usr/sbin/sip-proxy[31441]: INFO: Unconditional 
forwarding to <sip:[email protected]> 
Oct 30 20:47:03 localhost /usr/sbin/sip-proxy[31441]: INFO: Fixing nated 
contact in handle_caller_nat 
Oct 30 20:47:03 localhost /usr/sbin/sip-proxy[31441]: INFO: Routing initial 
INVITE <sip:[email protected]> to <sip:127.0.0.1:5070> 
Oct 30 20:47:03 localhost /usr/sbin/sip-proxy[31441]: INFO: Flag to_nated is 
NOT set before t_relay 
...

the only conclusion that i can draw is that branch flags sometimes
get somehow corrupted.

let me know if you need more info or have ideas on how to find the cause
of the problem.  i do also have pcap traces.

-- juha

_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to