[sr-dev] git:master: avpops: add a note to the docs that avp_db_query is deprecated and sqlops is better

Daniel-Constantin Mierla miconda at gmail.com
Fri Oct 4 14:39:27 CEST 2013


On 10/4/13 2:29 PM, Ovidiu Sas wrote:
> Maybe we should simply remove it.
> It has been quite a while since it was 'deprecated' in mailing list discussions.
It is still good if the target value has to be stored in an avp.

Cheers,
Daniel

>
> -ovidiu
>
> On Fri, Oct 4, 2013 at 8:23 AM, Henning Westerholt <hw at kamailio.org> wrote:
>> Module: sip-router
>> Branch: master
>> Commit: 0978c77d694cecd1b7813775a498f6495ae844dc
>> URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=0978c77d694cecd1b7813775a498f6495ae844dc
>>
>> Author: Henning Westerholt <hw at kamailio.org>
>> Committer: Henning Westerholt <hw at kamailio.org>
>> Date:   Fri Oct  4 14:22:39 2013 +0200
>>
>> avpops: add a note to the docs that avp_db_query is deprecated and sqlops is better
>>
>> ---
>>
>>   modules/avpops/README               |   53 +++++++++++++++++++----------------
>>   modules/avpops/doc/avpops_admin.xml |    7 ++++
>>   2 files changed, 36 insertions(+), 24 deletions(-)
>>
>> diff --git a/modules/avpops/README b/modules/avpops/README
>> index 95d529b..5e6d0c9 100644
>> --- a/modules/avpops/README
>> +++ b/modules/avpops/README
>> @@ -10,7 +10,7 @@ Ramona-Elena Modroiu
>>
>>      <ramona at rosdev.ro>
>>
>> -   Copyright © 2004, 2005 Voice Sistem SRL
>> +   Copyright © 2004, 2005 Voice Sistem SRL
>>        __________________________________________________________________
>>
>>      Table of Contents
>> @@ -133,6 +133,9 @@ Chapter 1. Admin Guide
>>      AVPs and SIP messages and a function for testing/checking the value of
>>      an AVP.
>>
>> +   If you just need a way to execute SQL statements in a Kamailio
>> +   configuration script, please consider use the sqlops module instead.
>> +
>>      AVPs are persistent per SIP transaction, being available in "route",
>>      "branch_route" and "failure_route". A tutorial providing more
>>      information (detailed explanations and commented examples) can be found
>> @@ -239,7 +242,7 @@ modparam("avpops","use_domain",1)
>>
>>      Name of column containing the uuid (unique user id).
>>
>> -   Default value is "uuid".
>> +   Default value is “uuid”.
>>
>>      Example 1.5. Set uuid_column parameter
>>   ...
>> @@ -250,7 +253,7 @@ modparam("avpops","uuid_column","uuid")
>>
>>      Name of column containing the username.
>>
>> -   Default value is "username".
>> +   Default value is “username”.
>>
>>      Example 1.6. Set username_column parameter
>>   ...
>> @@ -261,7 +264,7 @@ modparam("avpops","username_column","username")
>>
>>      Name of column containing the domain name.
>>
>> -   Default value is "domain".
>> +   Default value is “domain”.
>>
>>      Example 1.7. Set domain_column parameter
>>   ...
>> @@ -272,7 +275,7 @@ modparam("avpops","domain_column","domain")
>>
>>      Name of column containing the attribute name (AVP name).
>>
>> -   Default value is "attribute".
>> +   Default value is “attribute”.
>>
>>      Example 1.8. Set attribute_column parameter
>>   ...
>> @@ -283,7 +286,7 @@ modparam("avpops","attribute_column","attribute")
>>
>>      Name of column containing the AVP value.
>>
>> -   Default value is "value".
>> +   Default value is “value”.
>>
>>      Example 1.9. Set value_column parameter
>>   ...
>> @@ -294,7 +297,7 @@ modparam("avpops","value_column","value")
>>
>>      Name of integer column containing the AVP type.
>>
>> -   Default value is "type".
>> +   Default value is “type”.
>>
>>      Possible column values are
>>        * 0 - AVP with string name and string value
>> @@ -322,7 +325,7 @@ modparam("avpops","type_column","type")
>>             + 'value_type='('integer'|'string')
>>             + 'table='string
>>
>> -   Default value is "NULL".
>> +   Default value is “NULL”.
>>
>>      Example 1.11. Set db_scheme parameter
>>   ...
>> @@ -346,7 +349,7 @@ modparam("avpops","db_scheme",
>>      5.12. is_avp_set(name)
>>      5.13. avp_print()
>>
>> -5.1. avp_db_load(source,name)
>> +5.1.  avp_db_load(source,name)
>>
>>      Loads from DB into memory the AVPs corresponding to the given source.
>>      If given, it sets the script flags for loaded AVPs. It returns true if
>> @@ -384,7 +387,7 @@ avp_db_load("$uuid","$avp(s:404fwd)/fwd_table");
>>   avp_db_load("$ru","$avp(i1:123)/$some_scheme");
>>   ...
>>
>> -5.2. avp_db_store(source,name)
>> +5.2.  avp_db_store(source,name)
>>
>>      Stores to DB the AVPs corresponding to the given source.
>>
>> @@ -400,7 +403,7 @@ avp_db_store("$tu","$avp(i:678)");
>>   avp_db_store("$ru/username","$avp(email)");
>>   ...
>>
>> -5.3. avp_db_delete(source,name)
>> +5.3.  avp_db_delete(source,name)
>>
>>      Deletes from DB the AVPs corresponding to the given source.
>>
>> @@ -417,9 +420,11 @@ avp_db_delete("$ru/username","$avp(email)");
>>   avp_db_delete("$uuid","$avp(s:404fwd)/fwd_table");
>>   ...
>>
>> -5.4. avp_db_query(query[,dest])
>> +5.4.  avp_db_query(query[,dest])
>>
>> -   Make a database query and store the result in AVPs.
>> +   Make a database query and store the result in AVPs. This command is
>> +   deprecated, please use the more flexible and advanced sqlops module
>> +   instead.
>>
>>      The meaning and usage of the parameters:
>>        * query - must be a valid SQL query. The parameter can contain
>> @@ -431,8 +436,8 @@ avp_db_delete("$uuid","$avp(s:404fwd)/fwd_table");
>>          used in the query makes you vulnerable to SQL injection, e.g. make
>>          it possible for an outside attacker to alter your database content.
>>        * dest - a list with AVP names where to store the result. The format
>> -       is "$avp(name1);$avp(name2);...". If this parameter is ommited, the
>> -       result is stored in "$avp(i:1);$avp(i:2);...". If the result gives
>> +       is “$avp(name1);$avp(name2);...”. If this parameter is ommited, the
>> +       result is stored in “$avp(i:1);$avp(i:2);...”. If the result gives
>>          many rows, then multiple AVPs with corresponding name will be
>>          added. The value type of the AVP (string or integer) will be
>>          derived from the type of the columns. Please note that only this
>> @@ -455,7 +460,7 @@ avp_db_query("select password, ha1 from subscriber where username='$tu'",
>>   avp_db_query("delete from subscriber");
>>   ...
>>
>> -5.5. avp_delete(name)
>> +5.5.  avp_delete(name)
>>
>>      Deletes from memory the AVPs with name or, if empty, all AVPs.
>>
>> @@ -477,7 +482,7 @@ avp_delete("i");
>>   avp_delete("a3");
>>   ...
>>
>> -5.6. avp_pushto(destination,name)
>> +5.6.  avp_pushto(destination,name)
>>
>>      Pushes the value of AVP(s) into the SIP message.
>>
>> @@ -507,7 +512,7 @@ avp_pushto("$du","$avp(i:679)");
>>   avp_pushto("$br","$avp(i:680)");
>>   ...
>>
>> -5.7. avp_check(name,op_value)
>> +5.7.  avp_check(name,op_value)
>>
>>      Checks the value of the AVP(s) against an operator and value.
>>
>> @@ -562,7 +567,7 @@ $var(id)=2;
>>   avp_check("$xavp(op=>foo[*])","fm/$xavp(op=>fm[$var(id)])/g");
>>   ...
>>
>> -5.8. avp_copy(old_name,new_name)
>> +5.8.  avp_copy(old_name,new_name)
>>
>>      Copy / move an avp under a new name.
>>
>> @@ -583,7 +588,7 @@ avp_copy("$avp(i:678)", "$avp(s:345)/g");
>>   avp_copy("$avp(old)","$avp(new)/gd");
>>   ...
>>
>> -5.9. avp_printf(dest, format)
>> +5.9.  avp_printf(dest, format)
>>
>>      NOTE: since Kamailio 1.3.0 the function has been moved to core and it
>>      is an alias to pv_printf().
>> @@ -607,7 +612,7 @@ avp_copy("$avp(old)","$avp(new)/gd");
>>   avp_printf("$avp(i:20)", "This is a $rm request with call-id $hdr(call-id)");
>>   ...
>>
>> -5.10. avp_subst(avps, subst)
>> +5.10.  avp_subst(avps, subst)
>>
>>      Perl/sed-like subst applied to AVPs having string value.
>>
>> @@ -649,7 +654,7 @@ avp_subst("$avp(i:678)/$avp(i:679)/g", "/(.*)@(.*)/\1@$rd/");
>>      after the first src_avp is processed, it will be added in avp list and
>>      next processing will use it.
>>
>> -5.11. avp_op(name,op_value)
>> +5.11.  avp_op(name,op_value)
>>
>>      Different integer operations with avps.
>>
>> @@ -681,7 +686,7 @@ avp_op("$avp(i:678)", "add/i:345/g");
>>   avp_op("$avp(number)","sub/$avp(number2)/d");
>>   ...
>>
>> -5.12. is_avp_set(name)
>> +5.12.  is_avp_set(name)
>>
>>      Check if any AVP with name is set.
>>
>> @@ -700,7 +705,7 @@ if(is_avp_set("$avp(i:678)"))
>>       log("AVP with integer id 678 exists\n");
>>   ...
>>
>> -5.13. avp_print()
>> +5.13.  avp_print()
>>
>>      Prints the list with all the AVPs from memory. This is only a
>>      helper/debug function.
>> diff --git a/modules/avpops/doc/avpops_admin.xml b/modules/avpops/doc/avpops_admin.xml
>> index 84434b7..aa3b85a 100644
>> --- a/modules/avpops/doc/avpops_admin.xml
>> +++ b/modules/avpops/doc/avpops_admin.xml
>> @@ -29,6 +29,11 @@
>>                  testing/checking the value of an AVP.
>>                  </para>
>>                  <para>
>> +               If you just need a way to execute SQL statements in a
>> +               &kamailio; configuration script, please consider use the
>> +               <emphasis>sqlops</emphasis> module instead.
>> +               </para>
>> +               <para>
>>                  AVPs are persistent per SIP transaction, being available in "route",
>>                  "branch_route" and "failure_route". A tutorial providing more information (detailed
>>                  explanations and commented examples) can be found on the SIP-router web site.
>> @@ -500,6 +505,8 @@ avp_db_delete("$uuid","$avp(s:404fwd)/fwd_table");
>>                          </title>
>>                          <para>
>>                          Make a database query and store the result in AVPs.
>> +                       This command is deprecated, please use the more
>> +                       flexible and advanced <emphasis>sqlops</emphasis> module instead.
>>                          </para>
>>                          <para>
>>                          The meaning and usage of the parameters:
>>
>>
>>
>> _______________________________________________
>> sr-dev mailing list
>> sr-dev at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>
>
>

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Trainings - Berlin, Nov 25-28; Miami, Nov 18-20, 2013
   - more details about Kamailio trainings at http://www.asipto.com -




More information about the sr-dev mailing list