Nils Ohlmeier wrote:
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.
Indeed. But doesn't that point towards the old behaviour? Only return
true if forwarding can be done based on a Route, otherwise the script
needs to decide what to do based on the Request-URI? Apparently, having
a Route header pointing to the proxy doesn't mean a thing.
BTW: What does loose_route() do if the topmost route doesn't point to
this proxy?
But with this theory we are back to the original
topic: is a TEL URI a local
URI or not.
I though that was solved. Only SIP and SIPS URI are allowed in Contact.
Your 2xx ACK will never have a TEL URI (unless the UA is broken in which
case someone should have sent a 400 back).
Is just came to my mind that a possible solution could
be to add some kind of
secret information to our Record-Route headers.
/me not like. Sounds like magic plus vendor specific extensions are
frowned upon in SIP.
Regards,
Martin