On Wed, 28 Jun 2006 13:10:30 -0400, "Glenn Dalgliesh"
<glenn(a)routerboy.com> wrote:
Just a thought but I am working on similar issue and I
have been writing
acc
to db for start record with extra params and then avp_db_query to select
call-id from acc table on BYE/CANCEL in order to populate these fields
such
as connect time. This allows me to do a single select to get the info I
need
from one record. Not sure if you get log setup time this what but
certainly
work for connect-time and disconnect time I write in real time to the
h323-disconnect-time as a radius extra.
Hmmm but the avps are populated with correct values. i'll try with avp_db_query maybe
it works.
Either way I would think you would want to be using
call-id and not from
as
your primary key to store and load these things.
maybe yes. i'll try
-----Original Message-----
From: users-bounces(a)openser.org [mailto:users-bounces@openser.org] On
Behalf
Of tele
Sent: Wednesday, June 28, 2006 12:50 PM
To: users(a)openser.org
Subject: [Users] avp problems switching from 1.0.1 to 1.1.x
Hi,
My billing system doesn't correlate START/STOP accounting packets and
use Cisco-VSA like attributes.
I need to do an accounting compatible with my billing system from
OpenSER so i've done a dirty method like that:
i know it's not really performance but it's the only way i can do that.
The problem is with OpenSER 1.1.x that generate accounting with the
attribute filled with the same value of "disconnect_time". example:
h323-setup-time = '1151511700'
h323-connect-time = '1151511700'
h323-disconnect-time = '1151511700'
the xlog debug output of openser1.1.x i have added is with correct
attribute values.
with OpenSER 1.0.1 everything works fine.
CONFIGS:
with OpenSER 1.1.x:
modparam("acc", "radius_extra",
"h323-setup-time=$avp(setup_time);
h323-connect-time=$avp(connect_time);
h323-disconnect-time=$avp(disconnect_time)")
modparam("avpops","avp_aliases","setup_time=s:setup_time")
modparam("avpops","avp_aliases","connect_time=s:connect_time")
modparam("avpops","avp_aliases","disconnect_time=s:disconnect_time")
if (is_method("INVITE"))
{
avp_write("$Ts","$avp(setup_time)");
avp_db_store("$from","$avp(setup_time)");
} else if (is_method("ACK")) {
avp_write("$Ts","$avp(connect_time)");
avp_db_store("$from","$avp(connect_time)");
} else if (is_method("BYE")) {
avp_write("$Ts","$avp(disconnect_time)");
avp_db_store("$from","$avp(disconnect_time)");
};
if (is_method("BYE")) {
avp_db_load("$from","$avp(setup_time)");
avp_db_load("$from","$avp(connect_time)");
avp_db_load("$from","$avp(disconnect_time)");
xlog("L_INFO","Before accounting
SETUP_TIME[$avp(setup_time)] CONNECT_TIME[$avp(connect_time)]
DISCONNECT_TIME[$avp(disconnect_time)]");
setflag(3);
setflag(5);
avp_db_delete("$from","$avp(setup_time)");
avp_db_delete("$from","$avp(connect_time)");
avp_db_delete("$from","$avp(disconnect_time)");
};
With OpenSER 1.0.1:
modparam("acc", "radius_extra",
"h323-setup-time=$avp($setup_time);
h323-connect-time=$avp($connect_time)
; h323-disconnect-time=$avp($disconnect_time)")
modparam("avpops","avp_aliases","setup_time=s:setup_time")
modparam("avpops","avp_aliases","connect_time=s:connect_time")
modparam("avpops","avp_aliases","disconnect_time=s:disconnect_time")
if (is_method("INVITE"))
{
avp_write("0","i:1");
avp_printf("i:1", "$Ts");
avp_copy("i:1","$setup_time");
avp_db_store("$from","$setup_time");
avp_delete("i:1");
} else if (is_method("ACK")) {
avp_write("0","i:1");
avp_printf("i:1", "$Ts");
avp_copy("i:1","$connect_time");
avp_db_store("$from","$connect_time");
avp_delete("i:1");
} else if (is_method("BYE")) {
avp_write("0","i:1");
avp_printf("i:1", "$Ts");
avp_copy("i:1","$disconnect_time");
avp_db_store("$from","$disconnect_time");
avp_delete("i:1");
};
if (is_method("BYE")) {
avp_db_load("$from","$setup_time");
avp_db_load("$from","$connect_time");
avp_db_load("$from","$disconnect_time");
xlog("L_INFO","Before accounting
SETUP_TIME[$avp($setup_time)] CONNECT_TIME[$avp($connect_time)]
DISCONNECT_TIME[$avp($disconnect_time)]");
setflag(3);
setflag(5);
avp_db_delete("$from","$setup_time");
avp_db_delete("$from","$connect_time");
avp_db_delete("$from","$disconnect_time");
};
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users