2010/10/25 Daniel-Constantin Mierla <mico...@gmail.com>: >> Right, but IMHO it would make more sense it to be a flag and not a >> bflag (as the registrar server is processing the incoming transaction >> rather than generating an outgoing transaction). This is, the >> registrar set a flag(NATTED) before "save(location)". When retrieving >> the registrations for this AoR this flag would become a bflag. >> Of course this changes the current behaviour, but IMHO makes more sense. > > This will make things a bit more complex, should it be there a mask of what > flags are saved as branch flags and a map of translation?
Yes, for sure my proposal would not fit very well with current design in which a single bflag is used to set the registration as natted and to retrieve the NAT status of a registration user. I just meant that IMHO it makes more sense to use a flag(NATTED) before "save(location)" rather than a bflag. >> If there are two registrations for an AoR, one of them behind NAT and >> the other one with public IP, checking "isbflagset(NATTED)" in route >> would retrieve 1 or 0 randomly (depending on the first branch found in >> the location table). This is not consistent. > > But in some deployments, you may want to keep only one registration per > user, save(location) can do that, and then you don't bother with > branch_route. Yes, perhaps it could be better documented the risk of inspecting a bflag (after lockup) in "normal" environments in which multiple registrations for same AoR take place. I've seen lot of openser/kamailio scripts failing in this point as they check the bflag(natted) under route. >>> In failure route you should get the branch flags from selected failed >>> branch. >> >> But is this useful? imagine lookup("location") retrieves two >> registrations (one of them behind NAT) and Kamailio receives 486 for >> both branches. Which is the winning branch? AFAIK it's random so, what >> is the purpose of checing bflags in failure_route? > > Branch flags can be set for some other purposes, not only NAT state. > Therefore you may want to check it in failure route. Ok, I agree that handling bflags on failure_route can make sense (not so much on route IMHO). I just wanted to propose some constrains that make the configuration a bit more "error-safe" :) Regards. -- Iñaki Baz Castillo <i...@aliax.net> _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users