Hello,
We found an issue when using nat pinger
Previously our system had 1 Kamailio as entry point and we were using
usrloc in mode 2 so:
modparam("usrloc", "db_mode",2)
modparam("usrloc", "db_url",
"mysql://openser:openserrw@<DB_IP>/openser")
On our system we like to use the pinger NAT_HELPER module to keep the
connections alive for the users of our system.
Now we're trying to configure two Kamailio K1 and K2 as entry point of the
system and having both of them active at the same time with a virtual IP as
common entry point for both.
I believe this approach requires to flush information on the usrloc
immediately because following use case can happen and needs to work:
- A registers on K1 server
- B registers on K2 server
-After 5 seg B makes an INVITE to A through K2=> we need K2 kamailio
instance to be able to locate A immediately and not wait until the first
Kamailio flushes the info to the db. (it looks to be around 20/30 seg by
default on mode 2 I think , correct so this looks to be too much time)
So to improve this we tried to change to use usrloc in mode 3 instead of
mode 2. But then we've a big issue: when enabling the pinger module for
NATted users we see it opens a new connection to the db for each OPTIONS
ping we want to send. That looks too many connections for our MySQL server
because for eg if I leave two users registered for 1 hour after some time I
start to see errors like:
13(5292) ERROR: <core> [db_query.c:130]: error while submitting query
13(5292) ERROR: usrloc [dlist.c:151]: raw_query failed
13(5292) ERROR: nathelper [nathelper.c:3459]: failed to fetch contacts
13(5292) ERROR: db_mysql [km_dbase.c:117]: driver error on query: Too many
conne
How should this problem be approached? Could this be due to wrong mysql
configuration? But anyway if for each ping done by NAT_PINGER we make a
query to the db I think this is a lot of "noise" for the db as pings happen
often!
Thanks
BR
Albert
Show replies by date