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 <mico...@gmail.com <mailto:mico...@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:pskoul...@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.pap...@gmail.com <mailto:rebel.pap...@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
        <mico...@gmail.com <mailto:mico...@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.westerh...@1und1.de
            <mailto:henning.westerh...@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@lists.kamailio.org
            <mailto:Users@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@lists.kamailio.org  <mailto:Users@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@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@lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users

Reply via email to