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
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
--
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
OpenSIPS solutions and "know-how"
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users