On Sep 24, 2009 at 10:38, Daniel-Constantin Mierla <[email protected]> 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 http://sip-router.org/docbook/sip-router/branch/master/modules/tm/tm.html#reparse_on_dns_failover 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 _______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
