[Serusers] [Serdev] loose_route behaviour, detecting single Route with myself

Klaus Darilion klaus.mailinglists at pernau.at
Fri Jul 13 12:22:08 CEST 2007



Nils Ohlmeier wrote:
> On Thursday 12 July 2007 20:31:10 Greger V. Teigre wrote:
>> I vote for a new preloaded_route() in trunk. I also suggest a new alias
>> for loose_route (or rename and create loose_route as backwards
>> compatible name): in_dialog() returning true if and only if the message
>> being processed is and in-dialog message.
> 
> The problem is that you simply can not provide the functions you want in a 
> stateless way.
> 
> An non-2xx ACK with a preloaded route looks exactly the same then a 2xx ACK. A 
> preloaded_route() function thus has no chance to distinguish them. And I will 
> not make the rr module depending on the tm module, just to query tm all the 
> time if it knows something about this transaction or not.
> IMHO the only way to distinguish these two is the RURI. Because in a normal 
> loose route case the 2xx ACK should have non-local URI (the remote Contact) 
> as RURI. But the non-2xx ACK should have a local RURI.
> But with this theory we are back to the original topic: is a TEL URI a local 
> URI or not.

Using RURI domain wont work, e.g. A at mydomain calls B at iptel.org. If I 
want the call from A to go to my dispatcher first, then to my proxy 
cluster (e.g. for authentication and SIP Identity signing) and then to 
iptel the dispatcher also needs to distinguish the 
non-2xx-ACK+preloadedroute.

> And an in_dialog() function would not work as well. Because the To-tag is not 
> enough to decide wether the request belongs to an established dialog or not. 
> And the presence of one Route header also means nothing.
> 
> Is just came to my mind that a possible solution could be to add some kind of 
> secret information to our Record-Route headers. Then the criteria for 
> distinguishing a preloaded from an in-dialog routed request would be the 
> presence of this "secret" information in the Route header. And if a UA omits 
> this "secret" add-on from the Route header it would be guilty on its own that 
> its requests might be mis-routed.

I had the same idea - probably there is no other workaround.

btw: I guess there are many ser users out there which use dispatcher in 
stateless mode - how do they handle this yet?

regards
klaus



More information about the sr-users mailing list