On Sep 17, 2014, at 8:13 AM, Bruno Emer <brunoemer@gmail.com> wrote:

Hello!

I am relatively new to Kamailio and I'm trying to create a new enviroment using it in my company. I am thinking about use Amazon to host the servers and use OpsWorks to automatically escalate then if necessary. To accomplish this, my idea is to separate the servers, using one dedicated server to run as WebSocket, one to run as proxy and one as a Registrar. I'll be using just one database to store informations to all of my servers. With this, if I need more resources later, I can just create new servers with the specific roles (WebSockets, Proxy, Registrar).

By now, the idea is clear, but the point is that I don't know how to separate the WebSockets server from the proxy server. Actually, I can do this, but when I have one agent using a regular softphone and one agent using WebSockets (with JSSIP) they are not able to establish a session if the softphone user starts it. Now, I want to know if is there a way to use two websockets servers, register users using both of then and start sessions between then, with a separated proxy and registrar.

Has anyone done this before? Is possible to use kamailio like this?

Most things are possible.  There are a few questions you'll want to ask.  How reliable does this need to be?  How many endpoints and of which type, sip or webrtc?  

You mention that you have something half working, calls can go one direction.  You  didn't talk about rtp here.  How do you want to handle relaying rtp or will that not be needed and why do you think so?

Kamailio is very reliable and can scale vertically before needing to scale horizontally.  If you have a small number of clients say less than thousands, I wouldn't bother separating the different functions except for what you need to give you redundancy which isn't happening in the system you describe.

Collocating all functions on two servers is a good way to start.  You would use srv records for both sip and webrtc endpoints to load balance and failover.  The complexity is quite high for a setup like this so one server may offer you enough availability for a time and that time might even be counted in months or years.

--FC