[SR-Users] howto synchronize ruid across multiple proxy instances

Andrew Pogrebennyk apogrebennyk at sipwise.com
Thu Sep 18 11:35:17 CEST 2014


Hi,
OK, thanks for the clarification. Maybe we will check the
load_db_contacts("userid") way with Victor.

Regards,
Andrew

On 09/15/2014 12:04 PM, Daniel-Constantin Mierla wrote:
> Hello,
> 
> On 12/09/14 15:42, Andrew Pogrebennyk wrote:
>> Hi,
>> let's say I'm running two proxies/registrars that need to access Shared
>> location DB in db_mode=1 (all changes to usrloc are immediately
>> reflected in database too). I have observed that if the UAC re-registers
>> before the previous registration's expiry and the new REGISTER reaches
>> the other proxy than the one that processed the registration originally,
>> this new proxy is going to insert the second record for the same
>> username into location table instead of updating the existing
>> registration.
>>
>> I assume the problem is the ruid calculation,
> if the proxy doesn't have the record in memory, it will not matter if it
> is with same ruid or not, it will create a new record. If it is the same
> ruid, it will be a failure when inserting in database, not updating it
> there, leaving the old record in place.
> 
> Also, even if this one will overwrite in database, the other proxy will
> still have in memory and will route calls to it.
> 
> Alex mentioned in a separate email the db only mode - that could be a
> solution.
> 
> Also, you can try deleting the record from db via sqlops based on
> username, domain, contact uri if the registered() returns false for that
> user, before doing save().
> 
> If looking at writing C code to get it done, maybe it can be achieved
> with a new function to load_db_contacts("userid") to be called before
> save().
> 
> Back on ruid, just for sake of clarifications, by the way ruid is
> generated, is unlikely to get it the same across many systems, because
> it uses pid and local counters.
> 
> Cheers,
> Daniel




More information about the sr-users mailing list