[SR-Users] usrloc + multimaster replication

Sergey Okhapkin sos at sokhapkin.dyndns.org
Mon Apr 8 12:51:30 CEST 2013


I'm running kamailio 3.X with the following patch for years, works fine to me 
with distributed servers and replication:

diff --git a/modules_k/usrloc/udomain.c b/modules_k/usrloc/udomain.c
index b52bb76..e457cc5 100644
--- a/modules_k/usrloc/udomain.c
+++ b/modules_k/usrloc/udomain.c
@@ -318,6 +318,7 @@ static inline ucontact_info_t* dbrow2info( db_val_t *vals, 
str *contact)
                ci.sock = grep_sock_info( &host, (unsigned short)port, proto);
                if (ci.sock==0) {
                        LM_WARN("non-local socket <%s>...ignoring\n", p);
+                       return 0;
                }
        }


On Monday 08 April 2013 04:52:35 Alex Balashov wrote:
> I know I'm revisiting a problem that has been discussed in multiple
> threads from various angles, so I might be rightly accused of laziness
> in neglecting to research them all.  All the same:
> 
> I have proxy1 and proxy2 writing to database A and database B,
> respectively.  Database A and database B are active-active masters,
> synchronised via some replication system attached to the underlying DB
> technology.
> 
> The 'location' table is also replicated this way. We know that 'usrloc'
> doesn't work so well with this: one instance of Kamailio will
> periodically delete the other's contacts, even if they have a nonlocal
> SIP domain.
> 
> Is there any db_mode that can be used (other than 0/purely in-memory) to
> make this work right?  Or is that the essential problem that p_usrloc is
> written to solve?
> 
> Thanks,
> 
> -- Alex



More information about the sr-users mailing list