<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hello Jayesh,<br>
<br>
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.<br>
<br>
Regards,<br>
Bogdan<br>
<br>
On 11/28/2011 12:57 PM, Jayesh Nambiar wrote:
<blockquote
cite="mid:CALvF6vDOPgELBo6e+NYvY+6RbfrQC9C8MwQa_nb5FrORzDMCmw@mail.gmail.com"
type="cite">Hi All,<br>
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.<br>
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??<br>
<br>
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:<br>
<br>
if(loose_route()) {<br>
if(is_method("BYE")) {<br>
t_on_reply("1");<br>
}<br>
t_relay();<br>
}<br>
<br>
if(is_method("INVITE")) {<br>
<my logic><br>
t_on_reply("1");<br>
t_relay();<br>
}<br>
<br>
onreply_route[1] {<br>
if(status =~ [2-6][0-9][0-9]) {<br>
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)' )");<br>
}<br>
}<br>
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:<br>
<br>
1) First and foremost will this method insert proper INVITE and
BYE for accounting purpose?<br>
2) How much roughly will be the penalty on efficiency as compared
to using the acc module?<br>
3) Can AVP module take advantage of parameters like
query_buffer_time and query_flush_time for performance reasons?<br>
4) Can I use prepared_statements while inserting using
avp_db_query for performance reasons?<br>
<br>
Any help and suggestions regarding the above queries are very much
appreciated.<br>
Thanks in advance.<br>
<br>
--- Jayesh<br>
<pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
Users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a>
<a class="moz-txt-link-freetext" href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
OpenSIPS solutions and "know-how"</pre>
</body>
</html>