Hello.
We faced an issue that $T_branch_idx called from failure_route returned a strange result.
Few words about our setup. We use branch indexes like key in avp when we store via-branch value for rtpengine.
route[RTPMANAGE] ... if ( is_request() and is_method("INVITE") and !has_totag() and t_is_branch_route() ) { $avp(viabranch$T_branch_idx) = $branch_str; } $avp(extra_branch_id) = $avp(viabranch$T_branch_idx); $var(rtpkey) = $var(rtpkey) + " via-branch=extra"; ...... rtpengine_manage($var(rtpkey));
Call this route in branch_route and in failure_route. In branch_route T_branch_idx is 0, in failure_route is 1.
In documentation: the index (starting with 1 for the first branch) of the branch for which is executed the branch_route[]. If used outside of branch_route[] block, the value is '0'.
But in source code behavior is different. (modules/tmx/t_var.c:480): for BRANCH_FAILURE_ROUTE and BRANCH_ROUTE it is idx = tcx->branch_index, but for FAILURE_ROUTE it is idx = t->nr_of_outgoings + nr_branches;
Can you describe why for failure_route it is different and what we can do in our case? And can you update documentation for this variable if it is wrong?