Juha Heinanen writes:
however, when i look what gets stores in location
table, cflags column
of the contact has value 384. it is also shown by ul_dump:
Cflag:: 384
384 = 256 + 128. i must be missing something trivial. how is it
possible that also flag 7 (which is my nat_bflag) gets set in usrloc?
i think i found the answer. in save.c:
/* get received */
if (path_received.len && path_received.s) {
ci.cflags |= ul.nat_flag;
ci.received = path_received;
}
if i understood the above correctly, existence of received param in path
header of register request, automatically sets nat bflag that (in my
case 7). where is that documented?
anyway, it makes no sense at all to me. if p2 gets register request
from another proxy p1, which received it from ua and included the path
header, it is responsibility of p1 to handle possible nat pinging. p2
should not have anything to do with it.
can i fix this bug, i.e., remove line
ci.cflags |= ul.nat_flag;
from the above?
-- juha