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@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users