Hello,
What will be the best way to save ISP Information in Kamailio memory?
I have the following information for each ISP into the DB:
*ISP Name | ISP IP | ISP Username | ISP Password | ISP Prefix*
ISP1 | 1.1.1.1 | user | pass |
1234
This info it's not changed/updated too often, so I want to avoid querying
the DB on every call and get this info directly from the memory.
I was thinking to use htable for that, so I created a htable as an array
for that and loaded all the information there manually, something like that:
*kamcmd htable.sets isp ISP1[address] 1.1.1.1*
* kamcmd htable.sets isp ISP1[username] user*
* kamcmd htable.sets isp ISP1[password] pass*
* kamcmd htable.sets isp ISP1[prefix] 1234 *
*$sht( isp => ISP1[address]) == "1.1.1.1"*
* $sht( isp => ISP1[username]) == "user" *
* $sht( isp => ISP1[password]) == "pass" *
* $sht( isp => ISP1[prefix]) == "1234" *
So far so good, I'm able to get this information from the htable and use it
whenever I need it.
Now, the problem comes when I want to load all this information
automatically from the DB. How can I setup htable module to get the array
key (address, username...) from the database automatically on server
restart, and append this array_key to the column value?
I've tried this way:
modparam("htable", "htable",
"isp=>size=8;dbtable=isp;cols='trunk_name[address],trunk_address'")
But it's not working unfortunately, getting back this error: You have an
error in your SQL syntax; check the manual that corresponds to your MariaDB
server version for the right syntax to use near '[address]'
If I'm setting this way:
modparam("htable", "htable",
"isp=>size=8;dbtable=isp;cols='trunk_name,trunk_address'")
and setting trunk_name value to: ISP1[address], then it's working fine, but
in this case I will have to create by one column for each array key, which
may be confusing and it's a lot of unnecessarily information into the DB.
Is it possible to do that, or better to trigger a script on each restart
which will load this information from the DB into htable?
Thanks