Facebook, Skype and the mechanics of the hook up

Facebook’s Skype video chat integration wasn’t that much of a surprise, considering all the speculation over the past year and the early reports of the news last week. But it didn’t mean the actual job of bringing Skype’s video service into Facebook’s website was easy, said Jonathan Rosenberg, Skype’s chief technology strategist.

He told GigaOM that the actual job, which began about six months ago, involved a lot of slimming down of Skype’s native client and making it work in a browser, creating the back-end integration between Facebook and Skype and scaling up Skype’s network to handle the flood of traffic.

“We anticipate some really heavy usage, well in excess of what Skype sees today,” Rosenberg said.

Cut the client fat

The first big challenge was taking what is normally about a 20 megabyte native PC or Mac Skype client and stripping it down into a less-than-3-megabyte runtime, which works in conjunction with a JavaScript plug-in. Skype essentially ripped out much of the user interface and unneeded features of its Skype client to create a slim piece of software that could be quickly downloaded. The runtime provides some APIs, and the plug-in delivers those APIs through Javascript for access to Facebook.

Facebook’s team built the chat icons and video buttons, and it handles the download of the plug-in. Skype takes over during the actual call, logging into the plug-in and runtime and relying on its existing infrastructure to complete the call.

Where callers have no name

Rosenberg said 98 percent of Facebook video chats are identical to traditional Skype calls, save for some small rendering code for the video UI. In order to access Skype’s network, Skype actually has to create an anonymous Skype login for each Facebook video chat user, even if he has his own Skype login. A Facebook user’s identity must then be mapped to the Skype login to ensure that the call can go through.

That was something Skype spent time to get right, to make sure users were connecting to the people they intended to call and that their personal accounts were not able to be accessed by others, said Rosenberg. “There were a lot of security things we needed to do to make sure it would just happen as users expected,” he said.

Many browsers = headaches

Getting Skype calls to work in a browser turned out to be more of a challenge, because Skype had to take into account how browsers operated. One of the biggest issues was dealing with the fact that users often can have several tabs open with Facebook. Skype had to be able to handle each instance of Facebook and ensure that the different tabbed versions were able to communicate correctly with the runtime.

“We knew this would be an issue, but it was more complicated than we thought,” Rosenberg said. “It turns out there is just a lot of concurrency use cases.”

Another issue was dealing with different browser and operating system combinations, making sure Facebook video chat would work on all configurations. That testing, along with performance tuning, took up much of the last month before Wednesday’s launch. Even now, Facebook video chat doesn’t work on Macs running the upcoming OS X Lion operating system, which was seeded last week to developers.

Scaling up behind the scenes

On the back end, Skype has bought more servers and bandwidth in its data centers to handle the extra traffic it expects. It still relies on its peer-to-peer network, the same video and audio codecs, for transport, but it needs more infrastructure to scale up reliablity for Facebook and handle the handshake between the two networks.

One key decision has been to rely completely on dedicated supernodes to facilitate Facebook video calls and to bring them all into Skype’s own data centers or into Amazon’s EC2 cloud. Supernodes select Skype clients that often sit on the public Internet, act as directories that help guide calls through the P2P network, and are usually used during recovery efforts after an outage. The fact that Skype is taking this step shows that it is serious about getting off to a good start on Facebook.

More features to come?

Skype’s integration opens up some interesting possibilites for future video chat services through Facebook. Rosenberg declined to say if Skype video chat will come to Facebook’s mobile apps or if group video chat will come to Facebook’s site. He said that Skype just rolled out its Android app and is still working on ramping that up.

But he said it’s technically possible, as is group chat for the browser. Bringing group chat to the desktop browser, however, would require an update to the runtime, which was slimmed down by pulling out features like group video calls and instant messaging. It might take a little time, but I don’t doubt that we’ll see both features come in the future. Skype CEO Tony Bates said on Wednesday that the integration was a chance to introduce Facebook users to Skype’s paid products, things like group video chat.

You can read more about the Skype-Facebook integration on Skype’s blog.