WebRTC is perceived by many as a technology that allows for in-browser, zero download, voice and video communication. While this is true, it is also an open source media engine that can be used in different ways. Cloud9 Technologies uses WebRTC with a twist. This is because of 2 reasons: their application and the market in which they operate.
Leo Papadopoulos is CTO & Technology Evangelist for Cloud9 Technologies. We both know each other from our previous business life so I asked him to share the details of how they used WebRTC and other technologies for building their service.
Q. What is Cloud9 Technologies all about?
We see ourselves as pioneers in delivering next generation, high performance Cloud Communications Services for targeted segments of the B2B market. We specifically focus on segments that need reliability, security, compliance, and superior support. Our early adopters are financial institutions and the voice and messaging services used by institutional traders, called trader voice. The Cloud9 (c9tec) solution lets firms transition from expensive, propriety hardware and private networks to applications deployed on commercially available devices. We deliver this as a service with an easy to understand and deploy SaaS business model.
Q. How do you make use of WebRTC in your service, what was your main reason to select this technology?
We wanted to focus on our application and we needed a voice engine. We looked at traditional stacks like SIP but they were way too stringent, required expensive and inflexible application servers, forced us to use signaling that simply did not meet our needs, and did not include the actual voice engine itself. We quickly realized that all the existing protocols were really just variants of old telephony protocols. Quite simply, you cannot develop modern communications services using protocols made to simulate phone lines.
We looked at WebRTC. It allowed voice & video connections, it included methods for ICE/STUN/TURN, it included SRTP for secure voice, it included OPUS which is a modern voice CODEC, and importantly it did not force us to use a predefined signaling protocol. It was almost as if someone designed this just for us.
We compiled WebRTC into our application much like the browser manufacturers do. However, it is on top of this that we added our intellectual property that allows us to deliver the unique and special needs of our customers. We layered in a user interface specific to our customers. Reliability and automatic recovery to keep communications continuous. Instrumentation that allows us to deliver proactive support, along with compliance features that regulatory agencies require of our customers, and many more features.
Q. Your use of WebRTC is not common, you have decided not to benefit from the zero download option and compile it into your application. What are the reasons for this decision and do you see this changing in the future?
Most of the attention that WebRTC gets comes from companies that provide toolkits and APIs and also obviously a lot of focus on call centers. We would characterize these opportunities as consumer oriented or B2C at best. That environment has a higher tolerance for browser based solutions and modest support levels and reliability.
Our business focus is the enterprise and B2B services. So when we looked at WebRTC, we said this is cool but how can we make it work at an enterprise level? We’ve done that and it is one of the things that distinguishes Cloud9.
As for the zero download option – our view is that browsers are disposable and not suitable for an enterprise grade B2B service. They are a great option for remote access but if you really want to deliver a service to a high end clientele it needs to be packaged in an application with the performance, service levels and support expected by Fortune 100 companies. This is particularly true for our target markets.
Q. What are you using for signaling on top of WebRTC?
Just like a lot of the WebRTC community we use a WebSocket server for signaling. We implement this using a Node.js server which has amazing performance. The actual signaling that we use is proprietary and is part of what makes our application special. It is within this signaling that we take some historically very complex features and implement them in a new much simpler method. This would have been impossible to do using traditional VoIP signaling protocols. However, the combination of WebSockets and Node.js unleash amazing new power.
Q. What technologies are you using in your backend?
There are many technologies available to developers today. The only thing holding anyone back is imagination. Putting these tools together in the right way and adding your own ‘special sauce’ will lead to success. Here are just some of the tools in our toolbox:
- Voice/Video Engine – WebRTC, OPUS, VP9
- Web services and signaling – HTML5, WebSocket, Apache, Node.js
- Development – C#, .NET, jQuery, PHP, MySQL, C++, Visual Studio
- Amazon Web Services – EC2, VPC, S3, RDS, Route 53, CloudWatch, SNS, IAM, & more.
We think this is pretty cool. You can build and deploy a high performance global communication solution without ever talking to a carrier or telecommunications equipment provider.
You could not do that even 10 years ago. In today’s world if you are building your own infrastructure, then you’re probably not investing enough on your service or application and that means that someone else will probably beat you in the market. The tools are there and we all must use them.
Q. Are you using any 3rd party services behind the scenes?
We are using:
- Amazon Web Services for all our servers, storage, and databases.
- Twilio for global SMS messaging.
We are also investigating Microsoft Azure because they seem to have some really nice new products that allow for much better solutions for secure encrypted storage in the cloud.
Q. What would you want to see coming into WebRTC as roadmap?
I think for us the most important thing for WebRTC is voice quality and reliability. To this end here are a few specific features we would like to see:
- 5msec packet support, for codecs that support it, including 5msec audio frame support for AEC, noise reduction, etc. More than the CODEC all the audio algorithms should support small packets for latency critical environments.
- RTCP-XR VoIP metric and statistics summary block report support. This allows us to better deliver superior support to our customers by seeing their problems before they do.
- Customizable audio filters, for example a multiband EQ.
- Configurable STUN ping period. The default period is too fast and uses too much bandwidth and CPU as a result. This has been addressed at the last IETF meeting but hasn’t been finalized and guidelines have not been published yet.
Q. Any future plans for Cloud9 Technologies you would want to share?
We see a very broad opportunity for WebRTC. In fact we think it’s transformational and will ultimately change the way you think about communications and messaging and everything from browsers and call centers to the very way you make a call or message with your cell phone.
- Our focus is on the high end of the B2B market where service levels and performance matter.
- Our services are designed for work groups and teams, as well as individuals. Team engagement and collaboration is a key part of any enterprise. Technologies like WebRTC let companies like Cloud9 deliver secure and compliant services in today’s mobile and global environment.
We support team collaboration both within and between enterprises. Much attention has been placed on collaboration within an enterprise but many of these services miss the mark when it comes to engagement between companies. We think this is a largely underserved market opportunity and look to leverage WebRTC and Cloud services to transform the way business counterparties connect and communicate.