[Kamailio-Users] avpops OR sqlops
Alex Balashov
abalashov at evaristesys.com
Mon Dec 21 21:50:09 CET 2009
On 12/21/2009 03:42 PM, Henning Westerholt wrote:
> On Mon, December 21, 2009 9:27 pm, Alex Balashov wrote:
>> [..]
>> In short, I don't think sqlops is materially faster, but it is a more
>> modern and sophisticated way to talk to your database and you should use
>> it for that reason.
>
> Hey Alex,
>
> as AVPs are also more or less just a special kind of pseudo-variable, like
> the exported interface from the sqlops module there should be indeed no
> notable speed difference, especially on today fast systems. But indeed
> sqlops have the more appropriate interface and I would recommend it for
> new deployments, for the reasons you summarized.
Indeed.
Having said that, AVPs are still very useful and necessary because they
persist across the lifetime of a transaction, so you can access them in
subsequent reply and failure routes. This is not true of user
pseudovariables ($var(...)), nor, as far as I know, of any other class
of pseudovariable at this point except special transaction-persistent
ones exported by modules.
As a result, it is often necessary for me to take data from $dbr
(sqlops) and load it into arrays of AVPs, such as for example when doing
custom fail-over in failure_route that uses logic for which dispatcher
is not suitable. I store a set of gateways in an AVP array along with
another AVP value indicating the current array index and iterate over
them in failure_route, and so on.
Daniel taught me how to use AVP arrays once, although I noticed this is
not mentioned anywhere in the avpops documentation. It should be
published somewhere, as it is one of the most useful programmatic
features of Kamailio.
Henning/Daniel, does Kamailio 3/SR offer any kind of better substitute
for what I am doing with AVPs as described above? In other words, are
there any transaction-persistent pseudovariables and/or namespace
containers that are easier to deal with syntactically, and provide more
advanced data structure primitives like arrays? I am aware of htable,
but I need something local to a transaction, not global.
--
Alex Balashov - Principal
Evariste Systems
Web : http://www.evaristesys.com/
Tel : (+1) (678) 954-0670
Direct : (+1) (678) 954-0671
More information about the Users
mailing list