On 04/17/2009 07:45 PM, Brandon Armstead wrote:
Hello Guys,
Going to say thanks for any input ahead of time. My question is
currently we may have a scenario where we have a client using several
UAC's registered to the same username. Now what I've seen is that
sometimes one endpoint of User A may be NATed, another may be public.
This seems to be causing some call flow control issues in a sense for
when we handle for NAT / vs NOT NAT, at the time of a request and all
of this is in parallel being handled.
Example Scenario.
User A calls User B -- (both internal).
User B has end points X (NAT), Y(PUBLIC), and Z(NAT).
So a call is being branched to X, Y, and Z in parallel. Now we
fix_nated_contact for endpoint X, next we go to Y, however we've
already fixed_nated_contact, thus this call is deemed bad, and then Z
continues.
Any thoughts / examples / suggestions for these types of scenarios?
you have to apply nat-related changes (force_rtp_proxy()) after
transaction was created. One option is in branch_route, as Juha pointed
in another email. Then for each branch of the call you have different
states (natted/not-natted) in the branch flags.
If you need to do it before branch_route, then call t_newtrans() and
after that point you can do changes that will apply only to first
branch. For other branches changes can be done in failure_route (serial
forking) or branch_route (serial/parallel forking).
This can be applied to serial/parallel forking, therefore solves your
both scenarios.
Cheers,
Daniel
This is just an example one, one particular case
where issues we
have seen is more like follows:
PSTN Calls User B (external to internal)
User B has the same previous end points (X,Y,Z) + (PSTN End Points
that we are adding in parallel to fork to).
Same type issue, same type scenario.
The end result of the issues are lack of audio, mis routed contacts, etc.
So any help and input is appreciated, thanks!
------------------------------------------------------------------------
_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users(a)lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
--
Daniel-Constantin Mierla
http://www.asipto.com/