[Kamailio-Users] "Permanent" AVP

Henning Westerholt henning.westerholt at 1und1.de
Mon Jan 25 19:29:11 CET 2010


On Monday 25 January 2010, Antonio Reale wrote:
> > you should upgrade for such features:
> > - in 1.5.x you can use htable to cache value in shared memory and perhaps
> > offers what you need
> > - in 3.0.0 you still have htable, but you have also the global avps, you
> > can set/get them with $avp(g.name). You can load at startup within route
> > event_route[htable:mod-init] { ... } via sqlops
> 
> I migrated to kamailio 3.0 and I used custom cfg file parameters as
> explained here:
> http://www.kamailio.org/dokuwiki/doku.php/features:new-in-3.0.x#custom_cfg_
> file_parameters just simple and clear solution.
> At this point there are three possible solution (probably four, using
> cfg_db module): htable, global AVPs and custom cfg file parameters.
> Can someone give a very brief comparison between the three
> implementations? Is one better than the others?
> Thanks.

Hi Antonio,

from the performance POV this three ways make probably not that much a 
difference, but i'd differ them over the intendent use case:

1. global AVPs

This is the oldest mechanism, i think they were implemented as a list in the 
core. In kamailio we moved them to the pseudo-variables, but they still have 
certain core parts. I'd use them if you've a smaller set of values to store, 
like one or two values you set during startup.

2. htable

This is a mechanism coming from the kamailio side, they implement a hash table 
like you probably know from other languages as perl or java. As this implement 
a key-value storage which is basically arbitrary large (depending on the 
memory) i'd use them to store certain attributes, like the number of failed 
authentification per user (as described in the mod docs).

3. custom cfg params

This is a mechanism coming from the SER side, i think. If I understand the 
docs correctly i'd use them if i have certain attributes which belong to a 
bigger group or class, like a hostname or simliar. Its probably easier to add 
structure to your values as if you use the (global) AVPs.

Hope that helps,

Henning



More information about the Users mailing list