[OpenSIPS-Users] acc multileg accounting for standard columns and avp_db_query approach

Bogdan-Andrei Iancu bogdan at opensips.org
Mon Dec 5 12:44:05 CET 2011


Hi Jayesh,

Yes, the missed_call flag is automatically reset after each triggering, 
so basically, in failure route,  you need to set it again. That is done 
on purpose.

Regards,
Bogdan

On 12/03/2011 01:15 PM, Jayesh Nambiar wrote:
> Hello,
> The below problem was because of an error in the configuration. 
> Basically you have to set the missed_call flag every time before going 
> into the failure route. It works well when configured like that !!
>
> Thanks for all the help.
>
> --- Jayesh
>
> On Fri, Dec 2, 2011 at 2:51 PM, Jayesh Nambiar <jayesh.voip at gmail.com 
> <mailto:jayesh.voip at gmail.com>> wrote:
>
>     Hi Bogdan,
>     Just ran into another challenge while testing this. Basically I
>     try 3 carriers for a single call. So what happens now is, the
>     first failed call gets inserted into the missed_calls table but
>     the second and third one does not enter. Moreover, if the first
>     call fails and before the second carrier connects if the caller
>     sends a CANCEL, the row with 487 status also does not get entered
>     into the missed_calls table.
>     How do I make sure that all failed transactions get inserted into
>     the missed_call table and successful call get inserted into the
>     acc table !!
>     Thanks,
>
>     --- Jayesh
>
>
>     On Tue, Nov 29, 2011 at 12:03 AM, Jayesh Nambiar
>     <jayesh.voip at gmail.com <mailto:jayesh.voip at gmail.com>> wrote:
>
>         Thanks for the super suggestion. This has just made it very
>         simple and isolated !!
>
>         --- Jayesh
>
>
>         On Mon, Nov 28, 2011 at 5:21 PM, Bogdan-Andrei Iancu
>         <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>
>             Hello Jayesh,
>
>             For your purpose + needs, I would rather suggest to use,
>             instead of multi-leg accounting, standard accounting +
>             missed calls accounting - so in ACC table you will get a
>             single record showing calls from caller to GWn (successful
>             one), while in MISSED_CALLS table you will get one record
>             per failure (with the corresponding reply info). Probably
>             you can use db_extra to push more than the standard info
>             into the accounting records.
>
>             Regards,
>             Bogdan
>
>
>             On 11/28/2011 12:57 PM, Jayesh Nambiar wrote:
>>             Hi All,
>>             I use failure_routes to failover the calls to multiple
>>             carriers. So if 1st carrier rejects the call, I route it
>>             to another carrier for the call to get completed. Now, I
>>             need the accounting of first carrier also in the acc
>>             table. Basically I need to know that this call was
>>             rejected from the 1st carrier and got connected on the
>>             second carrier. I am able to insert all the carrier
>>             related details in the acc table using multi-leg info
>>             parameter. But I get stuck on the standard acc columns
>>             like sip_code, sip_reason, to_tag etc.
>>             When the call gets connected on second carrier, the
>>             sip_code and sip_reason for the first row also shows 200
>>             OK when in reality the sip_code and sip_reason for the
>>             first attempt was 503 Service Unavailable. Is it possible
>>             to maintain those standard values also in some
>>             variable/AVPs and insert appropriate values in
>>             appropriate rows??
>>
>>             I also tried a different approach of not using acc module
>>             and using avp_db_query for accounting on reply_routes.
>>             Basically this will insert a record for every initial
>>             INVITE and all BYEs after a reply for the method is
>>             received. Something like this gives me more control on
>>             what is to be inserted according to my requirements:
>>
>>             if(loose_route()) {
>>             if(is_method("BYE")) {
>>                t_on_reply("1");
>>             }
>>                t_relay();
>>             }
>>
>>             if(is_method("INVITE")) {
>>             <my logic>
>>                 t_on_reply("1");
>>                 t_relay();
>>             }
>>
>>             onreply_route[1] {
>>                if(status =~ [2-6][0-9][0-9]) {
>>                    avp_db_query("insert into acc (sip_method,
>>             sip_to_tag,sip_callid,sip_code,sip_reason, calling_party,
>>             called_party, source_ip, dst_ip) values ('$rm', '$tt',
>>             '$ci', '$rs', '$rr', '$fU', '$avp(called_party)',
>>             '$avp(source_ip)', '$avp(dst_ip)' )");
>>                }
>>             }
>>             I set the appropriate AVPs like $avp(called_party),
>>             $avp(dst_ip) etc after the initial INVITEs according to
>>             my requirements. These are my questions:
>>
>>             1) First and foremost will this method insert proper
>>             INVITE and BYE for accounting purpose?
>>             2) How much roughly will be the penalty on efficiency as
>>             compared to using the acc module?
>>             3) Can AVP module take advantage of parameters like
>>             query_buffer_time and query_flush_time for performance
>>             reasons?
>>             4) Can I use prepared_statements while inserting using
>>             avp_db_query for performance reasons?
>>
>>             Any help and suggestions regarding the above queries are
>>             very much appreciated.
>>             Thanks in advance.
>>
>>             --- Jayesh
>>
>>
>>             _______________________________________________
>>             Users mailing list
>>             Users at lists.opensips.org  <mailto:Users at lists.opensips.org>
>>             http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>             -- 
>             Bogdan-Andrei Iancu
>             OpenSIPS Founder and Developer
>             OpenSIPS solutions and "know-how"
>
>
>
>


-- 
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
OpenSIPS solutions and "know-how"

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20111205/add05ddb/attachment.htm>


More information about the Users mailing list