Andreas,
Thanks for your reply. I understand that part. Is that a
best-practice to not relay a packet to yourself? I was trying to
implement serial forking based on the example for voice-systems and I'm
running into some issues when doing a simple t_relay() and that is when
I started looking for a better way to do this.
I'm still not clear about the use of t_on_branch. In this case, when
is it really called?
--
Zahid
-----Original Message-----
From: Andreas Granig [mailto:agranig@sipwise.com]
Sent: Thursday, July 26, 2007 1:37 PM
To: Zahid Mehmood
Cc: users(a)openser.org
Subject: Re: [OpenSER-Users] t_on_branch -- using drop() question?
Hi,
The config is designed to never relay a request to itself, but instead
do recursive route processing. So if you do a CFC to a local user, the
config will take care to do a lookup before a relay, which will change
the request uri to the IP of the CF target.
Andreas
Zahid Mehmood wrote:
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.