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:foo@tutpro.com> is authorized
Oct 30 20:45:29 localhost /usr/sbin/sip-proxy[31447]: INFO: Unconditional forwarding to <sip:test@tutpro.com>
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:test@tutpro.com> 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:foo@tutpro.com> is authorized
Oct 30 20:47:03 localhost /usr/sbin/sip-proxy[31441]: INFO: Unconditional forwarding to <sip:test@tutpro.com>
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:test@tutpro.com> 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
Module: sip-router
Branch: kamailio_3.0
Commit: 9069082a2d80b436779e805ee4da9703c4672d90
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=9069082…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: Fri Oct 30 20:58:11 2009 +0100
config cleanup
- enclose several former commented features within defines
- enabling such a feature requires just one 'define' as opposite of sed
command used in 1.5 config
---
etc/kamailio.cfg | 405 +++++++++++++++++++++++++++---------------------------
1 files changed, 200 insertions(+), 205 deletions(-)
Diff: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=906…