[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