On 20 March 2013 03:05, David Thomson <jdavidthomson(a)hotmail.com> wrote:
hi,
I have two kamailio 3.3.4 servers sharing one database. usrloc module is
loaded on both machines. The DNS name for the machines is shared (i.e
siptest.testdomain.com with 2 public ip's - one for Server1 and one for
Server2) and setup in round robin mode.
The scenario is as follows:
User 1 registers to Server1
User 2 registers to Server2
User1 tries to call User2 but Server1 throws an error and the call doesn't
ever connect to User2:
WARNING: usrloc [udomain.c:321]: non-local socket
<udp:xxx.xxx.xxx.xxx:5060>...ignoring.
Hi
I think you can use the t_replicate function within your register route so
that each server will replicate the registration request to the other.
I did this many years ago on OpenSER using the following just before the
consume_credentials() line.
On each of the servers you want to check that the src_ip is not that of the
OTHER sever so they don't keep sending back and forth forever :-) So in the
example below 10.0.1.1 is the IP of the other server.
--------8<-----------------------------------------
if (!src_ip==10.0.1.1) {
t_replicate("udp:10.0.1.1:5060");
xlog("L_INFO", "Replicating $ct, URI = $ru");
};
consume_credentials();
--------8<-----------------------------------------
Have a look at
http://www.kamailio.org/docs/modules/3.3.x/modules/tm.html#t_replicate
Hope this helps.
-Barry