On Thursday 12 July 2007 15:24:59 Klaus Darilion wrote:
Nils Ohlmeier wrote:
On Thursday 12 July 2007 09:03:39 Klaus Darilion wrote:
I totally agree with you, e.g:
if (in_dialog()) { # probably an alias to has_totag()
No. The To-tag is not enough as criteria for in-dialog. And unfortunately the presence of Route isn't as well.
You can basically have these type of ACKs (ACKs illustrate the worst case): - the UAC uses an outbound proxy without a Route header
- the in-dialog ACK will have a To-tag and a Route header
- the out-of-dialog ACK will have a To-tag and no Route header
- the UAC uses a Route header for its outbound proxy
- then in-dialog ACK will have a To-tag and a Route header (same as
above) - the out-of-dialog ACK will have a To-tag and a Route header (and this is the problematic case!)
Is it really necessary to differ this cases in ser.cfg? I usually just t_relay() the ACKs as tm module should know if this is a 2xx ACK or a non-2xx ACK.
If you need this information in ser.cfg, then having a function t_is_ack_local() would be useful.
I did not claimed that I want this information to be available in the config. You suggested to export it via the return code.
But as I pointed out to Martin in the other mail, the point is that non-2xx and 2xx ACKs should also be routed correctly in case of stateless forwarding. So telling everybody just call t_relay() for all ACKs, it will take care of it, is IMHO no acceptable option.
Best Regards Nils Ohlmeier