On Sep 24, 2009 at 10:38, Daniel-Constantin Mierla <miconda(a)gmail.com> wrote:
On 24.09.2009 10:28 Uhr, Alex wrote:
On Friday 04 September 2009, Juha Heinanen wrote:
SourceForge.net writes:
I would either expect the ruri and all other
variables and headers to
be exactly the same as at t_relay time for each branch, or (for
DNS-based failover ONLY) the packet sent to a failover destination to
be exactly the same as the first branch (including any added headers
/ from replacement, etc.) Not a mix of both.
if i add a header in branch route, i want it to be there ONLY for that
branch, not for any other branch.
Of course, and you'd probably expect that changing the RURI in branch
route is only for that branch. Unfortunately both statements are not
fulfilled by Kamailio.
not sure I got this one. Headers and r-uri on updated on a branch route
are visible on that branch only.
If you add a header for a specific destination
domain, you'd probably
want it to be sent to every ip if there are multiple ip's in the domains
SRV records. Currently it doesn't work for DNS based failover:
In case a 503 is received, you can add the header again from the script,
as branch route is called again for the next IP. Keep in mind you don't
get the RURI you set before t_relay(), but the RURI set in the previous
branch route.
DNS failover is pretty much hidden to script writer, and each step
creates a new branch. Also remember that this is serial forking, so a
branch from a branch, not parallel, branches from initial invite.
In case there is a timeout, you're lost. No
branch route is called, and
the header is missing.
Failure route is processing the initial message. Hopefully lot of such
limitations will be removed in kamailio 3.0 with the new function
msg_apply_changes() from textops where the script writer can apply
changes, therefore make new headers permanent before creating the
transaction and going into the forking logic.
I don't think it would be needed in this case. By default sip-router tm
uses exactly what was sent on the last branch when doing dns failover.
See
So this should solve the header added in a branch route and not
preserved on dns failover and you don't have to add anything to the
script (provided you use sip-router or kamailio 3.0).
One thing to note though, is that branch route is not called when doing
dns failover, if reparse_on_dns_failover is set to 1.
Andrei