[Users] avp problems switching from 1.0.1 to 1.1.x

tele tele at plexia.com
Thu Jun 29 09:45:36 CEST 2006


tele at plexia.com wrote:

>On Wed, 28 Jun 2006 13:10:30 -0400, "Glenn Dalgliesh" <glenn at routerboy.com> wrote:
>  
>
>>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
>>    
>>
thanks!
Ok i'm using the call-id and with the avp_db_query it works but with 
avp_db_load not.
this is what i have done:

working:

     avp_db_query("select value from usr_preferences where uuid='$ci' 
and attribute='setup_time'","$avp(setup_time)");
     avp_db_query("select value from usr_preferences where uuid='$ci' 
and attribute='connect_time'","$avp(connect_time)");
     avp_db_query("select value from usr_preferences where uuid='$ci' 
and attribute='disconnect_time'","$avp(disconnect_time)");

not working:

      avp_db_load("$ci","$avp(setup_time)");
      avp_db_load("$ci","$avp(connect_time)");
      avp_db_load("$ci","$avp(disconnect_time)");

>>-----Original Message-----
>>From: users-bounces at openser.org [mailto:users-bounces at openser.org] On
>>Behalf
>>Of tele
>>Sent: Wednesday, June 28, 2006 12:50 PM
>>To: users at 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");
>>        };
>>    
>>





More information about the Users mailing list