Type: New Feature
Affects Version/s: None
Fix Version/s: 2.0-pfd
There is no way for an application acting as both a UAS/Proxy and a UAC to avoid a new request from being routed back to itself because of the way the NEW directive works. For example, this is a case for an app that acts as both a B2BUA and a UAC. Unfortunately, there is no clear way to set the routing directive to CONTINUE on a new request being sent from a UAC, without suppling another incoming "original" request. In addition, the JSR is not very clear on how the container should inform an application router that a request is a continue of the original request passed to the setRoutingDirective method, since the AR can only get the directive and not the original request when calling getRoutingDirective(). The only work around for this is to force the app developer to create a Custom Application Router which is pretty extreme for a simple UAC application. We've had several customers complain about this and we'd like to find a way to clean this up in the new JSR.
We feel its worth discussing ways to improve on the base level DAR. For example, the request method is the only way to define a matching rule in the DAR configuration. Defining alternate ways to look at the request headers, like the one that could be used in the old XML matching rules, cannot be used to solve this problem either. It would be nice if the JSR defined a way to specify more complex matching rules. One possibility is the use of RegEx expressions.
Comments from Binod:
I agree with the problems you are bringing up.
Comments from Eric Cheung:
We have an open-source implementation of an AR which we can contribute
to JSR359. It supports regular expression matching on different
headers in the initial request based on the routing region, and also
ordering of applications based on relative precedence relationship.
It should address both issues brought up here.
The information for this DFC AR is at