More Related Content
Similar to Moscow erlang users meeetup 2013 01-12 erlrtpproxy
Similar to Moscow erlang users meeetup 2013 01-12 erlrtpproxy (20)
Moscow erlang users meeetup 2013 01-12 erlrtpproxy
- 4. A common VoIP issue
• IPv4+UDP+NAT+Lotsofports(RTP,RTCP,audio,video)
• IPv6isn'tgoingtofixthatfully.
• Transcoding
• Lawfulinterception
• Dumb(proprietary)hardwareclients
• Statsretrieval
• Prepaidsolutions
- 5. A traditional approach
• SetupsomeMiTMcomponent
• SIPBack-2-BackUA+RTPproxy=SessionBorderController
• JustasingleRTPproxy
• Within-kernelprocessing(usingnetfilter,whichisfastbutfeature-poor)
• Withprocessinginuserspace(somewhatslow,butfeature-rich)
• RelyonSTUN/TURN/ICEwhichWON'Tworkreliably(compareGoogleTalkwithSkypebeingbehindtheNAT)
- 8. What about performance?
• Somewhatslow(~10-15%slower)intermsofCPUperClient(itdoesmoreanditstillnotwell
optimized).
• Awaytoobetterintermsofscalability
• Nocommandreplypenaltyduetonumberofclients.
• Noadditionallatencyafterafewhundredofclients(“fewhundred”isapracticallimitforRTPproxy).
• Fasterreplies(~10timesfasterthanRTPproxy)
- 9. Conclusion (a techie PoV)
• JustrewriteinErlangandyou'llgetlinearscalabilityforfree.
• Ifyoudo“justrewriteinErlang”you'llprobablyloosesomeCPUcycles.AskMaxLapshinaboutpossible
optimizations(nexttalk).
• Muchsmallerandcleanercodebase(especiallywithregardstoprotocolparsing)
• Linearandpredictableresourcerequirements CPU,memory,NICthroughput.–
- 10. Conclusion (an ISV view)
• Nomatterwhatyourcustomerwants youcanimplementitblazinglyfast.–
• Opensourcingwasagoodidea I'vegotalotsofbugreports,usecases,andrandomideas.–
• Reliableandrock-solid Irebootedittwiceaftertheinstallation.–
• [petro@mediapro~]$uptime
• 15:53:18up328days,16:53, 1user, loadaverage:0.47,0.49,0.54