[OpenSIPS-Users] multi-leg accounting in case of redirect

Bogdan-Andrei Iancu bogdan at voice-system.ro
Wed Sep 3 12:23:24 CEST 2008


Hi Ruchir,

Well, was a long discussion, but I'm glad it finally worked out for you :)

Regards,
Bogdan

Ruchir wrote:
> Hi Bogdan,
>
> That works! Thank you very much for your help.
>
> On Thu, Aug 21, 2008 at 5:07 PM, Bogdan-Andrei Iancu 
> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>> wrote:
>
>     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>
>         <mailto: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