[OpenSIPS-Users] Forking accounting
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Thu Feb 12 21:28:15 CET 2009
Hi Ibrahim,
For the second leg (from DID to FWD number) the problem seams to be
setting the destination part, because of the multi destination. The
error is you push all the destinations into dst_leg AVP - note that AVPs
are per transaction and not per branch!
What you can do is to set the dst_leg AVP when the call is completed and
you know what is the final destination. Use on reply route to set the
final dst_leg:
onreply_route{
if (t_check_code("2[0-9][0-9]")) {
$avp(s:dst_leg)= $T_ruri;
}
}
NOTE this will work only with 1.5 ; see
http://www.opensips.org/html/docs/modules/devel/tm.html#id268019 for $T_ruri
Also, because you use AVPs in onreply route, enable this in TM: set
onreply_avp_mode to 1:
http://www.opensips.org/html/docs/modules/devel/tm.html#id266762
Regards,
Bogdan
ibrahim tunali wrote:
> Hi Bogdan,
>
> I have to use multileg accounting because my application records all
> request leg to acc. I use mentioned issue for this scenario;
>
> 1. DID call come to my opensips and it add to multileg.
> $avp(s:src_leg)=$fU; $avp(s:dst_leg)=$rU;
> 2. The user owner of the DID was set callforwarding to a few pstn destination.
> 3. I load these destinations to branch with "avp_pushto("$ru","$avp(s:fwd)/g");"
> 4. I had set dst_leg from on branch route;
> branch_route[1]{
> $avp(s:dst_leg)=$rU;
> }
>
> I need to see only wining branch call in acc;
>
> Method src_leg dst_leg
> ---------- ---------- -----------
> INVITE 1925XXXXXX 1212XXXXXXXX (DID num)
> INVITE 111 1707XXXXXXXX (CallFwd wining branch)
>
> But i see;
>
> Method src_leg dst_leg
> ---------- ---------- -----------
> INVITE 1925XXXXXX 1212XXXXXXXX (DID num)
> INVITE 111 1707XXXXXXXX (CallFwd branch1)
> INVITE 111 1707AAAAAA (CallFwd branch2)
> INVITE 111 1707BBBBBB (CallFwd branch3)
>
> Best Regards,
> Ibrahim TUNALI
>
>
>
>
> On Thu, Feb 12, 2009 at 17:01, Bogdan-Andrei Iancu
> <bogdan at voice-system.ro> wrote:
>
>> Hi ibrahim,
>>
>> For paralel forking you do not need multi-leg accounting. TM will select the wining branch (the one that picked up) and acc will use for accounting the wining branch. So you do not have to do anything about this.
>>
>> Regards,
>> Bogdan
>>
>> ibrahim tunali wrote:
>>
>>> Hello,
>>>
>>> I am dealing with branch routing and multiple leg accounting. I would like to forward call to several PSTN destinations. I want to account the certainly which one get the call
>>>
>>> I set destination leg avp with below;
>>>
>>> branch_route[1]{
>>> $avp(s:dst_leg)=$rU;
>>> }
>>>
>>> The Avp has a few values with branch request username so final response will create a few Acc rows.
>>>
>>> I need to know the winning branch's request username and delete the rest values of dst_leg avp. Please give me an advise how to handle accounting at forking.
>>>
>>> Another question; When acc records insert to DB for INVITE request, before or after on_reply_route ?
>>>
>>> Best Regards,
>>>
>>> Ibrahim TUNALI
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>
>
More information about the Users
mailing list