To finish the thread: I just entered below loose_route():
if (check_route_param("vsf=")) {
avp_write("$hdr(Route[0])", "$avp(rr-param)");
avp_subst("$avp(rr-param)", "/^.*?(;vsf=[^>]+).*/\1/"); #
$hdr(Route[0]) is not 1st header only, if multi header in one line
xlog("L_INFO", ">> Stored UAC params $avp(rr-param)");
add_rr_param("$avp(rr-param)");
}
-----Original Message-----
From: Schober Walter
Sent: Wednesday, November 26, 2008 2:39 PM
To: 'Klaus Darilion'
Cc: 'users(a)lists.kamailio.org'
Subject: RE: AW: [Kamailio-Users] UAC on ACK in reInvite
See below...
-----Original Message-----
From: Klaus Darilion [mailto:klaus.mailinglists@pernau.at]
Sent: Wednesday, November 26, 2008 1:21 AM
[...]
This is clearly a bug in the useragent. The route set must not be
changed with reINVITEs. Thus, according to the standard the
Record-Route
headers for indialog requests are not needed. Maybe you are calling
record_route() for indialog requests and this confuses the client.
Fully agree on
this. But some proxies add Record-Route, some
don't, Openser/Kamailio can configure it.
It's not that clear in the RFC, but I see it the same way:
RFC 3261, 12.2 Request within a Dialog
...
Requests within a dialog MAY contain Record-Route and
Contact header
fields. However, these requests do not cause the dialog's
route set
to be modified, although they may modify the remote target URI.
12.2.1.2 Processing the Responses
-> The only thing mentioned is that the _Target URI_ gets
refreshed by the 200 OK.
=> reInvites do not modify the routeset of any subsequent
request, neither the ACK not any other upcoming request.
Try removing the record_route() for indialog
requests - may
then the
buggy client remembers the original route set.
Done. Client sends ACK on reInvite directly then :-(
Counterpath is OK, Teles Voipbox not, other clients to be tested ...
So I will have to add vsf uri param from Route to record
route in the proxy. This at least is a reason to upgrade :-)
It's done more easily with tranformations.
Thanks for the discussion! For me it's "clearly a bug in the
UA" now, too ;-) However, let's find a workaround.
br
Walter