Hi,

 

I have an application as follows:

 

Multiple Kamailio Nodes

Shared Postgres database

 

Auth information will be stored in DB and accessed with Authdb.

 

Here is the behavior I seek:

 

I would like all the Kamailo nodes to cooperate in updating the database, each updating data as appropriate:

 

  1. When a registration comes in to any Node, and it authenticated, create or update a database record in location table.
  2. When a registration expires on that Node, delete database record in location table.
  3. When INVITE comes in on any Node, ignore local cache and always lookup() record from database.

 

#1 and #2 are used so that a third SIP system can query the database and look up the Node a NAT’d subscriber is ‘connected’ to.

#3 is to let NON-NAT’d subscribers be contacted from any Node.

 

Now I have something close to this now – using following settings:

 

modparam("usrloc", "db_mode", 1)        # immediately write registrations to the database.

modparam("usrloc", "db_timer_clean", 0) # do not expire DB records separately

modparam("usrloc", "db_check_update", 1)

 

This takes care of #1 and #2 above. However, #3 seems to still be relying purely on local cache and does not hit the database.

 

Is there a way to do #3? I can set db_mode to 3 but that would seem to have other effects besides merely making lookup() read from database.

 

Thanks in advance,

 

Jawaid