El Miércoles, 19 de Diciembre de 2007, David Villasmil Govea escribió:
I ask, because i had this cfg file that was working
perfectly with
nat/rtpproxy. I replace it with a new cfg that was using bflag instead of
flag. client-rtpproxy-client rtps stopped working. When i replace those
bflags with regular flags it started working again!...
In case you do a lookup("location") for a user@domain, and that user has two
entries in location (one behind NAT so contact-flag = 6 and other one with
public IP), then one branch will have bflag(6) set and the othe one no.
So if you test "isbflag(6)" in a "route" you will get 1 or 0 for both
branches
(depending on which appears first in location table) that is bad of course.
You need to do "isbflag(6)" into a "onbranch_route" because each
branch is
processed **independently** in "onbranch_route", so you will apply RTP
solution just for the branch that requires it. Imagine the following case:
- User A with public IP calls User_B@domain.
- NAT is not detected for caller.
- lookup("location") of UserB@domain returns 2 branches:
- One registered behind NAT (so contact_flag 6 set).
- Other one registered from public IP.
- Script calls "onbranch_route" where "isbflag(6)" is tested.
- So, RTP solution would only be applied for first branch but not for second
one (where is not a need since both caller and callee are behind NAT).
Also, as i read there, "per branch" means
each location... talking about
location, is there a reason a client would have 98 almost exactly alike
locations? but for the id, they're the same... weird. And i started seeing
lots of "max branch exceeded" on the syslog. We do not limit branches
because a client could have his softphone and ata logged in...
Opssss, it seems a problem in registration process, as if a previpus entry is
not updated when a new REGISTER arrives...
--
Iñaki Baz Castillo