[Serusers] ACK processing (was: [Serdev] loose_route behaviour, detecting single?Route with myself)

Nils Ohlmeier nils at iptel.org
Thu Jul 12 14:38:25 CEST 2007


On Thursday 12 July 2007 13:49:45 Martin Hoffmann wrote:
> Nils Ohlmeier wrote:
> > And what about the pre-loaded non-2xx ACKs?
> > I would treat them exactly the same way like the 2xx ACK. loose_route()
> > will consum the Route header and t_relay() then forwards it to the RURI
> > (which should be your proxy).
>
> Now you made me read tm sources again. What actually happens inside tm
> when you call t_relay() is that t_lookup_request() matches the
> transaction the ACK belongs to, t_newtran() releases that transaction,
> and t_relay_to() stops the script.
>
> Thus, the call the loose_route() doesn't hurt, in the non-2xx case it
> effectively is a no-op.
>
> > But as I explained in my other reply
> > to Klaus it is quite tricky to distinguish a non-2xx ACK with pre-loaded
> > Route, from a 2xx ACK with just one Route header. Then the only
> > difference is the RURI.
>
> There is another one: For the former you have a transaction, for the
> latter you don't. tm happily exploits this difference. No need to worry
> in your config.

I glad that it is fine if you use tm.
But I think it should also work if you are not transaction statefull (if you 
dont use tm). That is actually the problem which I wanted to solve with the 
new loose_route implementation.

  Nils



More information about the sr-users mailing list