I was looking at the openser config generated using the online sipwise wizard. They implement conditional call forwarding using:
if($avp(s:cfc) != NULL) {
avp_pushto("$ru", "$avp(s:cfc)"); setflag(29); append_branch();
t_on_branch("1"); xlog("L_INFO", "CFC detected - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n"); route(13); }
branch_route[1] { if(is_domain_local("$rd")) {
xlog("L_INFO", "Dropping local branch - M=$rm RURI= $ru F=$fu T=$tu IP=$si ID=$ci\n"); drop(); }
}
Suppose an invite gets to this point and ruri is changed to another local user. does this drop() in branch_route prevents that invite to be relayed? does it still go through route(13) ?
I'm still a newbie trying to better understand the working of openser functions. I'll greatly appreciate if someone can briefly describe when it makes sense to use "append_branch()"
Thanks in advance for your help.