[Kamailio-Users] avpops OR sqlops

Daniel-Constantin Mierla miconda at gmail.com
Thu Dec 24 15:05:54 CET 2009


Hi Alex,

the default table structure for htable is defined by sql:

CREATE TABLE htable (
     id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
     key_name VARCHAR(64) DEFAULT '' NOT NULL,
     key_type INT DEFAULT 0 NOT NULL,
     value_type INT DEFAULT 0 NOT NULL,
     key_value VARCHAR(128) DEFAULT '' NOT NULL
) ENGINE=MyISAM;

If you map over another table, then you must have at least four columns 
there (id is for generic purpose). See here descriptions of the columns:
http://kamailio.org/docs/modules/3.0.x/modules_k/htable.html#id2529061

Cheers,
Daniel

On 12/23/09 6:13 PM, alex pappas wrote:
> Hi Daniel,
>
> My problem is how to define the hash table in Kamailio.cfg. Especially 
> I don't understand how to define :
>
>
>       |key_name_column: here I understand that is the name of the key
>       = fist col (phonenumber)
>       |
>
>
>       |key_type_column == string ?
>       |
>
>
>       |value_type_column == string ?
>       |
>
>
>       |key_value_column == second col(prefix)?
>       |
>
>
>
> I get the following errors:
>
> ERROR:db_mysql:db_mysql_submit_query: driver error on query: Unknown 
> column 'key_type' in 'field list'
> ERROR:core:db_do_query: error while submitting query
> ERROR:htable:ht_db_load_table: Error while querying db
> ERROR:core:init_mod: failed to initialize module htable
> ERROR:core:main: error while initializing modules
>
> Thank you
>
> Alex
>
>
>
> On Wed, Dec 23, 2009 at 6:43 PM, Daniel-Constantin Mierla 
> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>     Hello,
>
>
>     On 12/23/09 4:28 PM, alex pappas wrote:
>>     Hi all,
>>
>>     It is possible to have some help in defining the hash table?
>>
>>     I'm giving some parameters but some of them i don't really
>>     understand them. my configuration is:
>>
>>     # --------- Htable ---------
>>     modparam("htable", "htable", "a=>dbtable=ported1;")
>>     modparam("htable", "db_url",
>>     "mysql://pskoul:pskoul123@localhost/openser")
>>     modparam("htable", "key_name_column", "phonenumber")
>>     modparam("htable", "key_value", "prefix")
>>     modparam("htable", "fetch_rows", 1000)
>>
>>     The table I want to htable is a 2 cols table (phonenumber,prefix)
>>     In mysql they are defined as varchar(10). All the phonenumber
>>     values are unique so the key in htable is phonenumber with value
>>     in prefix.
>
>     what don't you understand? I do not know what to explain. Is there
>     any error you get? At least the parameter key_value is wrong,
>     should be key_value_column.
>
>     Cheers,
>     Daniel
>
>
>>
>>     Thanks All,
>>
>>     Alex
>>
>>
>>
>>     On Wed, Dec 23, 2009 at 1:04 PM, alex pappas
>>     <rebel.pappas at gmail.com <mailto:rebel.pappas at gmail.com>> wrote:
>>
>>         Thank you Daniel,
>>
>>         I will try first oracle db and then htable which is also very
>>         interesting. When I'm done I will get back with the results.
>>
>>         Cheers
>>         Alex
>>
>>
>>
>>
>>         On Wed, Dec 23, 2009 at 11:44 AM, Daniel-Constantin Mierla
>>         <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>>
>>             Hello,
>>
>>
>>             On 12/22/09 1:25 PM, alex pappas wrote:
>>>             Hi all,
>>>
>>>             Concerning portability again :-)
>>>
>>>             Is there any way I can add in the memory all the numbers
>>>             with portability? (2.000.000 rows)?
>>>             And also reload these data a few times a day and access
>>>             this data from the  Kamailio script?
>>
>>             while I advise usage of sqlops/sql_query() instead of
>>             avpops/avp_db_query(), if you want to load such data in
>>             memory should be in shared memory. For that look at
>>             htable or maybe you can re-use pdt.
>>
>>             Cheers,
>>             Daniel
>>
>>>
>>>              Cheers
>>>             Alex
>>>
>>>
>>>
>>>             On Tue, Dec 22, 2009 at 12:56 AM, Henning Westerholt
>>>             <henning.westerholt at 1und1.de
>>>             <mailto:henning.westerholt at 1und1.de>> wrote:
>>>
>>>                 On Mon, December 21, 2009 9:50 pm, Alex Balashov wrote:
>>>                 > [..]
>>>                 > 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.
>>>
>>>                 There are the $var PVs you already mentioned, and
>>>                 then also the $shv that
>>>                 are shared variables. But they are (process) global,
>>>                 and not
>>>                 transactional. Daniel proposed and developed the new
>>>                 xavp type for sr
>>>                 which are basically extended AVPs. More informations
>>>                 can be found here:
>>>                 http://sip-router.org/wiki/devel/xavp
>>>
>>>                 Regards,
>>>
>>>                 Henning
>>>
>>>
>>>
>>>             _______________________________________________
>>>             Kamailio (OpenSER) - Users mailing list
>>>             Users at lists.kamailio.org
>>>             <mailto:Users at lists.kamailio.org>
>>>             http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>>>             http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>>
>>             -- 
>>             Daniel-Constantin Mierla
>>             *http://www.asipto.com/
>>                    
>>
>>
>>
>>
>>     _______________________________________________
>>     Kamailio (OpenSER) - Users mailing list
>>     Users at lists.kamailio.org  <mailto:Users at lists.kamailio.org>
>>     http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>>     http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>
>     -- 
>     Daniel-Constantin Mierla
>     *http://www.asipto.com/
>          
>
>
>
> _______________________________________________
> Kamailio (OpenSER) - Users mailing list
> Users at lists.kamailio.org
> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users

-- 
Daniel-Constantin Mierla
* http://www.asipto.com/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/users/attachments/20091224/ed7b1b3e/attachment-0001.htm>


More information about the Users mailing list