[OpenSIPS-Users] multi-leg accounting in case of redirect
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Thu Aug 21 13:37:33 CEST 2008
I would suggest the following scenario:
- use onreply_route to get the type of diversion ; be sure to enable
the onreply_avp_mode (http://www.opensips.org/html/tm.html#id2560594)
- set the actual src/dst for the new set in failure route when you
create the new branch; the AVPs you set in onreply_route will be visible
here.
Regards,
Bogdan
Ruchir wrote:
>
> Oh I see. Then how we can get correct leg source, leg destination
> & forwarding reason?
>
>
> On Thu, Aug 21, 2008 at 3:50 PM, Bogdan-Andrei Iancu
> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>> wrote:
>
> Hi Ruchir,
>
> I see in the onreply_route you get the diversion type
> (src_user_reply).
> Also you try to populate the src avp, but as in onreply_route
> a reply is processed, the $rU will not work - there is no RURI
> in a reply.
>
> Regards,
> Bogdan
>
> Ruchir wrote:
>
> I'm populating it from onreply route. Below is my onreply
> route.
> if($hdr(Diversion)!=null)
> {
> avp_delete("$avp(s:src_user_reply)");
> $avp(s:src_user_reply) = $hdr(Diversion);
> xlog("Client call forwarding to
> $avp(s:src_user_reply)\n ");
> avp_subst("$avp(s:src_user_reply)",
> "/(.*)<sip:(.*)@(.*)>;reason=(.*)/\4/");
> $avp(s:src) = $rU;
> switch($avp(s:src_user_reply))
> {
> case "unconditional":
> $avp(s:call_type) = "cwfd";
> break;
> case "user-busy":
> $avp(s:call_type) = "cwfdbusy";
> break;
> case "no-answer":
> $avp(s:call_type) = "cwfdnoanswer";
> break;
> default:
> log("no forwarding\n");
> }
> xlog("FORWARDING REASON: $avp(s:call_type) \n ");
>
> }
>
>
More information about the Users
mailing list