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

Bogdan-Andrei Iancu bogdan at voice-system.ro
Sun Aug 10 22:37:18 CEST 2008


Could you post your complete failure route (if not a secret;) ) ?

Regards,
Bogdan


Ruchir wrote:
> Yes. I've used uac_redirect module and I'm using  get_redirects 
> function to load the contacts to redirect to.
>
> On Sun, Aug 10, 2008 at 4:02 PM, Bogdan-Andrei Iancu 
> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>> wrote:
>
>     Hi Ruchir,
>
>     Are you using uac_redirect module to process the 3xx replies on
>     server?
>
>     Regards,
>     Bogdan
>
>     Ruchir wrote:
>
>         Yes. I've set unconditional forwarding in linksys pap2. So it
>         sends "302 temporarily moved".
>
>         On Sat, Aug 9, 2008 at 4:36 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,
>
>            The redirect on the phone is done via the 3xx replies?
>
>            Regards,
>            Bogdan
>
>            Ruchir wrote:
>
>                I've set avp and radius_extra param properly. If I
>         handle call
>                forwarding from server side, everything works fine. I
>         get leg
>                source, destination, forward reason, etc. perfectly. The
>                problem is there only when I do call forwarding from phone.
>
>                On Fri, Aug 8, 2008 at 8:08 PM, Pablo Hernan Saro
>                <pablosaro at gmail.com <mailto:pablosaro at gmail.com>
>         <mailto:pablosaro at gmail.com <mailto:pablosaro at gmail.com>>
>                <mailto:pablosaro at gmail.com
>         <mailto:pablosaro at gmail.com> <mailto:pablosaro at gmail.com
>         <mailto:pablosaro at gmail.com>>>> wrote:
>
>                   I believe that it's not about how OpenSER or OpenSIPS
>                implements
>                   multi-leg accounting, it's about how you do.
>                   Particularly how you set up two important parameters for
>                the acc
>                   module: multi_leg_info and db_extra. In my case, I
>         set up
>                one avp
>                   for source leg, another for destination leg and two avps
>                for extra
>                   information: the state of the call and a
>         classification of
>                the dst.
>                   The "state of the call", for me, means when it's a
>         call, a
>                fw or
>                   whatever; while the "classification of the dst"
>         means if dst is
>                   national, long distance, international.
>                   So, you have to set up avps as the information you
>         need and
>                make
>                   sure to set it to proper values before the acc module
>                writes the
>                   row in your db.
>                   BTW, take care of using Diversion header... It's a draft
>                from 2004
>                   and it's expired. Not all UAC/UAS has this implemented.
>                   I hope it helps.
>                   Cheers
>
>                   Pablo
>
>
>                   On Fri, Aug 8, 2008 at 4:05 AM, Ruchir
>                <ruchir.lists at gmail.com <mailto:ruchir.lists at gmail.com>
>         <mailto:ruchir.lists at gmail.com <mailto:ruchir.lists at gmail.com>>
>                   <mailto:ruchir.lists at gmail.com
>         <mailto:ruchir.lists at gmail.com>
>                <mailto:ruchir.lists at gmail.com
>         <mailto:ruchir.lists at gmail.com>>>> wrote:
>
>                       I'm using uac_redirect module to handle redirect
>         from
>                UA and
>                       doing accounting from openser. Redirect works
>         fine so
>                as cdr
>                       but I'm not able to store CDR records for multi-leg
>                accounting
>                       properly.
>
>                       I have set onreply avp by
>
>                           modparam("tm", "onreply_avp_mode", 1)
>
>
>                       I've set following in onreply route
>
>
>                           if($hdr(Diversion)!=null)
>                           {
>                           avp_delete("$avp(s:src_call_type)");
>                           $avp(s:src_call_type) = $hdr(Diversion);
>
>                           xlog("Client call forwarding to
>                $avp(s:src_user_reply)\n ");
>
>                           avp_subst("$avp(s:src_user_reply)",
>                           "/(.*)<sip:(.*)@(.*)>;reason=(.*)/\4/");
>
>
>
>                           switch($avp(s:src_call_type))
>                           {
>                           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");
>                           }
>
>                           }
>
>                       But the problem is that records are not
>         generated the
>                way we
>                       expect and the way it works in normal forwarding
>         using
>                       usr_preferences. For example call is forwarded
>         from one
>                user
>                       to another, the first leg of the call should be
>         logged
>                as it
>                       should normally be($fU in leg source, $rU in leg
>                destination &
>                       calltype=call) and in next cdr log, it should
>         log with
>                       forwarding details(Forwarding user in leg
>         source, forwarded
>                       user in leg destination & calltype=cfwd). But it
>         actually
>                       generates 5 records(1 failed invite, 2 ok
>         invites & 2 byes,
>                       instead of 2 invites & 2 byes) of the call. Also
>         as we set
>                       calltype and leg source in onreply route, it'll
>         store that
>                       date for the first leg of the CDR which should
>         not happen.
>
>                       Is the same limitation is there in OpenSIPS or
>         it has
>                better
>                       uac_redirect module?
>
>                       I'll consider switching to OpenSIPS if it solves
>         this
>                issue.
>
>                       _______________________________________________
>                       Users mailing list
>                       Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>
>                <mailto:Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>>
>                <mailto:Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>
>                <mailto:Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>>>
>
>                      
>         http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>
>              
>          ------------------------------------------------------------------------
>
>
>
>                _______________________________________________
>                Users mailing list
>                Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>
>         <mailto:Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>>
>                http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>                
>
>
>
>




More information about the Users mailing list