Hello,

I currently have Freeswitch acting as a B2BUA, handling registrations, routing, etc for a prototype voice application I have built.

Now I'm at the point where it's time to actually scale it out, and I'm looking at a few different options for the SIP proxy + registration later. Essentially, what I would like to have (I think), is:

1) Stateless SIP proxy with consistent hashing to route to:
2) Transaction-stateful SIP proxy handling registrations and initial routing

Ideally, the only thing that's stored across the cluster (if possible) would be registrations, in something like memcache/redis. Then, of course, each node might have its own internal state of transactions that it's tracking. I'd prefer the only thing to care about dialog state to be Freeswitch.

Finally, the decisions about which FS instance to route to would be made by my application as well, based on runtime rules.

Is this something people here have done before? Are there other suggestions on how to scale out kamailio to multiple instances.

Thanks in advance,
Colin