Hello Andreas,
Congratulations for adding db_redis, which I find a very interesting and useful module.
I know it is not yet in its final form, but I have tried to make a REGISTER/INVITE save()/lookup() scenario by adding the db_redis snippets from the README in the default Kamailio configuration (usrloc db_mode=3). The save() succeeds, but only a "location:entry::uloc-5a8d7eb2-6bd1-1" hash and a "location:timer::0:0" set are created (I seem to miss the location:usrdom). Besides this, the lookup("location") fails. I guess I have made some wrong configurations? The REGISTER/INVITE scenario works fine for you with only the upmentioned changes to the config?
My *config* contains:
loadmodule "db_redis.so" #!define DBURL_USRLOC "redis://127.0.0.1:6379/5" #!define DBURL_ACC "redis://127.0.0.1:6379/6" #!define DBURL_AUTH "redis://127.0.0.1:6379/7"
modparam("db_redis", "schema_path", "/home/XXX/utils/kamctl/db_redis/kamailio") modparam("db_redis", "keys", "location=entry:ruid&usrdom:username,domain&timer:partition,keepalive") modparam("db_redis", "keys", "acc=entry:callid,time_hires&cid:callid") modparam("db_redis", "keys", "subscriber=entry:username,domain")
modparam("usrloc", "db_mode", 3) modparam("usrloc", "use_domain", MULTIDOMAIN) modparam("usrloc", "db_url", DBURL_USRLOC)
The lookup("location") leads to this *log*:
/1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:1683]: db_redis_query(): querying prefix (table) 'location'// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:508]: db_redis_build_query_keys(): build query keys// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:281]: db_redis_find_query_key(): checking for existence of entry key 'ruid' in query// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:332]: db_redis_find_query_key(): key 'ruid' for type 'entry' not found, unable to use this type// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:534]: db_redis_build_query_keys(): no direct entry key found, checking type keys// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:537]: db_redis_build_query_keys(): checking type 'usrdom'// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:281]: db_redis_find_query_key(): checking for existence of entry key 'username' in query// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:291]: db_redis_find_query_key(): found key in entry key// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:119]: db_redis_val2str(): converting str value '33' with len 2 to str// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:323]: db_redis_find_query_key(): entry key so far is 'location:usrdom::33'// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:281]: db_redis_find_query_key(): checking for existence of entry key 'domain' in query// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:332]: db_redis_find_query_key(): key 'domain' for type 'usrdom' not found, unable to use this type// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:537]: db_redis_build_query_keys(): checking type 'timer'// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:281]: db_redis_find_query_key(): checking for existence of entry key 'partition' in query// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:332]: db_redis_find_query_key(): key 'partition' for type 'timer' not found, unable to use this type// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:1726]: db_redis_query(): unable to build query keys, falling back to full table scan// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:1741]: db_redis_query(): done performing query// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: usrloc [udomain.c:645]: db_load_urecord(): aor 33 not found in table location// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: db_redis [redis_dbase.c:2145]: db_redis_free_result(): perform redis free result// //{1 1 INVITE 1-23806@127.0.1.1} 0(23787) DEBUG: registrar [lookup.c:233]: lookup_helper(): '33' Not found in usrloc// /
Any input is appreciated.
Many thanks, Lucian Balaceanu