Hello, I have two sip clients. Client1 registers to kamailio1, Client2 registers to kamailio2. Kamailio1 and kamalio2 sharing one database. I want to make call between client1 and client2. What should I do?
Another question is that I want to achieve load balancing with kamailios. The architecture is described as: I run one kamailio instance as load balancer, other to help make calls, and the load balancer dispatchs requests to other kamailios.
So, how should I do that? Has anyone ever achieved this? Give me a hand, thanks very much.
Hello,
On 09/06/2013 02:52 AM, yuanshui lee wrote:
Hello, I have two sip clients. Client1 registers to kamailio1, Client2 registers to kamailio2. Kamailio1 and kamalio2 sharing one database. I want to make call between client1 and client2. What should I do?
Another question is that I want to achieve load balancing with kamailios. The architecture is described as: I run one kamailio instance as load balancer, other to help make calls, and the load balancer dispatchs requests to other kamailios.
So, how should I do that? Has anyone ever achieved this? Give me a hand, thanks very much.
If you're having the client register to two different Kamailio servers, you can use the differing 'domains' for them to route the call.
If you're having different clients registrar on different registrars, the 'socket' parameter in the 'location' table indicates which registrar the request came into.
For instance, if kamailio1 is xxx.xxx.xxx.xxx and kamailio2 is yyy.yyy.yyy.yyy, the 'socket' column for the respective bindings in the 'location' table will contain either
udp:xxx.xxx.xxx.xxx:5060
or
udp:yyy.yyy.yyy.yyy:5060
So, if you do a registrar lookup on kamailio1 and find the 'socket' to be the other server, you can just route the call over to it laterally.
The 'socket' data doesn't get loaded into anywhere accessible by default when you do a lookup(). To get it, you must call reg_fetch_contacts():
http://kamailio.org/docs/modules/4.0.x/modules/registrar.html#idp1933672
Then, the 'socket' will be accessible via $ulc(profile=>socket). See this for more information:
http://kamailio.org/docs/modules/4.0.x/modules/registrar.html#idp1950400
-- Alex