Under the Hood with Facebook Video Calling, Powered by Skype
Yesterday, Facebook and Skype launched Facebook video calling, powered by Skype, which allows users to call and see each other right from facebook.com. At Skype, we are super excited about this product, which we closely collaborated with Facebook on many of the parts of the solution in a true team effort. We think users will love its ease of use and simplicity. It combines the quality and scale of Skype video calling with the social experiences of Facebook in a way that we believe makes for a powerful combination.
Without a doubt, techies around the world will want to know how we did it. How did we integrate Skype and Facebook? Will it scale? Does it use the Skype client?
The first step of the user experience is on facebook.com. While looking at the profile page or while in a chat, users will now see buttons which allow them to initiate a video call with their friends. Those buttons are rendered as part of the Facebook Web page. When a user clicks on the “call” button, the page will check for the existence of the Skype video calling software, which is an optimized version of Skype’s desktop software that powers the video calling experience; we call this the plug-in. If the Skype plug-in hasn’t been used before, the user is prompted to install it. Facebook’s servers interact with Skype’s technology through a proprietary REST API that we have developed. Through that API, Facebook automatically creates an anonymous Skype account for new callers (or ‘callees’). Our REST API also allows Facebook servers to obtain a login credential that can be used to log the user into Skype using the anonymous account.
Once the plug-in has been downloaded and installed, and the caller logged into it anonymously (a process which happens automatically – invisibly to the user), a handshake takes place through Facebook’s server infrastructure. This handshake alerts the ‘callee’ that the caller wishes to call them. By using Facebook infrastructure for this, we allow calls to be initiated prior to installation of a plug-in on the callee’s computer. Together, we believe this brings real virality to this feature and reduces the barriers between people communicating.
The user interface you see for the video itself is rendered by the Skype runtime. It’s the same video quality you’d expect from a normal Skype video call, since it is a normal Skype video call. It just happens to be invoked from within Facebook, and uses a slim UI.
One of Skype’s challenges in providing this functionality was scale. Even though Skype leverages its P2P technology to help achieve scale, we still rely on server infrastructure for several parts of the solution. To handle all of this, Skype has substantially increased server counts and added bandwidth in all of our data centers. The actual voice and video traffic utilizes Skype’s global P2P network, allowing for great quality without needing thousands of expensive servers. Together, we’ll be rolling the new capability out over the next week or so and carefully monitoring load and quality as we go. As a result, some of you will see video calling buttons on Facebook, and others will not. If you see those buttons, please go ahead and click on it – you’ll be able to call anyone on your Facebook friend list.
We think this is awesome technology. We’ve combined everything that makes Skype great – our quality, our P2P technology, our scale – with the world’s number one social property on the Web, and brought those two things together in a completely seamless way.
We hope you enjoy it!