[VoiceOps] Load balancing

John Todd jtodd at loligo.com
Sat Nov 7 13:20:50 EST 2009

On Nov 7, 2009, at 12:36 AM, Simon Woodhead wrote:

> RTP failover is a different story and different vendors do it
> different ways. JT, I don't agree with you (for once!) that there is a
> massive amount of data to sync; all a slave system needs to know is
> the RTP ports on which it can expect to receive traffic and bridge
> details. The commercial solutions we've looked at work on mac address
> assumption (not IP address) and a slave can be a slave for many
> masters as it is not actually handling full RTP for the master. It
> isn't in FreeSwitch but I wouldn't expect it to be the challenge it is
> perceived as being if someone has the motivation to tackle it. I agree
> though, the VM based FT solutions are packet-by-packet mirrors so
> there would be a lot to sync but who would run media on a VM anyway?!
> All the best,
> Simon

Simon -

   Perhaps if all you're talking about is a load balancing system for  
RTP which doesn't terminate or transcode, then possibly RTP failover  
is "easier". And I can see how that could be done - it's fairly  
complex, but not implausible.  So I suppose I'm wrong in saying it's  
that difficult in reference to the original question, which was (I  
believe) for a really simple load balancing solution for RTP.  Maybe  
even "mediaproxy" (or mediaproxy 2.0) could get an extension that  
supported this type of synchronization; it seems to be the lightest- 
weight solution out there currently.

   In my world (the B2BUA/application server world) the state of media  
needs to be kept, since things like RTP sequence numbers,  
jitterbuffer, RTCP stats, RFC2833 sequence status, and all of the  
"ugly details" need to be recorded do a truly fault-tolerant  
replication.  This doesn't even touch the other things like  
application state, database calls for upper-layer call handling, CDR  
synchronization, and other stuff higher up the model.

   Lots of people run media on a VM.  Twilio, for example, bases its  
business on that architecture.  Almost every voice app that runs on  
cloud computing infrastructure will be terminating RTP on a VM - it  
doesn't make sense just to relay media _through_ a VM when it's far  
more efficient to do point-to-point RTP.  So that kind of narrows down  
the audience using VMs as people who are probably using them to  
terminate/originate RTP.  You're thinking "service provider/ITSP" and  
I'm talking about "application provider."  Application providers or  
even transcoders require a lot more state-keeping to minimize the  
transition disruption between two physical systems in the event of a  
failure - it's difficult.  The problem is that there are constantly  
blurring layers unless you're doing strictly transport.


More information about the VoiceOps mailing list