Microsoft News

Microsoft takes the Lumia 930 to the Cornbury music festival

Microsoft News

China's going after Microsoft, but what for?

Editorials

Analysis of Microsoft's Q4 2014 results

Editorials

Xbox Video and Music are getting 'streamlined' says Nadella

Surface

Video of Microsoft's secret labs offers a look into the world of Surface

Windows Phone News

5.8 million Lumia smartphones sold this last quarter

General News

Microsoft generates $23.38 billion in revenue for FY14 Q4

General News

Microsoft focuses on design to unify separate platforms

General News

Microsoft to hold one big IT conference in May 2015 as they replace TechEd [Update]

Microsoft News

Microsoft 'betrayed' Finland, says Finnish finance minister of layoffs

Editorials

Putting the Microsoft job cuts into perspective

Microsoft News

Stephen Elop explains how recent job cuts will affect Microsoft's handset division

Microsoft News

Microsoft to cut 18,000 jobs in the next year

Microsoft News

Microsoft layoffs allegedly happening tomorrow, will be largest in company history

Apps

Skype adds free group calling support for Windows 8.1 Modern app

Microsoft News

Microsoft widens its renewable energy commitment with wind farm deal in Illinois

Microsoft News

'Microsoft needs to change', says CEO Satya Nadella

Microsoft News

Microsoft set to lay off large amounts of staff in upcoming organizational changes

Rumors

Is Microsoft readying a Lumia device that runs Android?

Microsoft News

Bought new Windows hardware? Trade in your old devices with Microsoft's Buy Back scheme

Skype for Windows Phone
73

Understanding Skype’s limitations on Windows Phone

Do you want to know why Skype is the way it is? We go into detail as to how the network works & why it's not so great on Windows Phone--yet.

Soon after Skype for Windows Phone beta came out (and went gold months thereafter), users were dismayed to discover the app didn’t work, well, like Skype. That is, it couldn’t run in the background to receive phone calls or IMs from friends and family.  Circulating reports suggested that perhaps “push notifications were too slow” or that the problem was a result of “[…] how Skype works and how the Windows Phone OS works.”

The real reason? Well, it’s complicated

Skype is a peer-to-peer (P2P) Voice over IP (VoIP) client. P2P meaning that each Skype user – like you – is part of an intertwined graph of other users throughout the world. But not all users are equal. Some users on the network are “super nodes”, an ornate term assigned to a user that acts as a broker, moving data around on behalf of its locally connected peers and Skype. It is this decentralization of network responsibility that lets Skype maintain such high stability and simultaneous user counts – 35 million as of last count in March. (Startup competitor Tango isn't nearly as complex; it simply uses a client-to-server model based on the open XMPP protocol.)


Here’s how a piece of that network would look visualized with cute circles and lines:

Figure 1: Simplified visualization of Skype peer-to-peer network

In the figure above, Skype users -- you and I -- are represented by the smaller circles. We’re connected to a super node with lots of CPU power and bandwidth. The line connecting us to Skype’s login servers is present to demonstrate that some data aren’t sent through local super nodes. In this case, super nodes don’t handle login requests for obvious security reasons.

Let’s move on to how a Skype call is made.

First, for the sake of brevity, let’s assume that you already added John Doe to your Skype client’s contact list. Generally speaking, the software found John’s details via a complex traversal of the Skype P2P network. The important take away here is that your local super node helped you find John and passed on all the details needed (e.g. IP address) to make a successful call.


Let’s give him a ring.

Figure 2: Simplified visualization of a Skype to Skype call in progress.

In this figure, a Skype user – you – is initiating a direct connection with John Doe; he receives the call and you both chat for 12 hours about favorite cookie recipes. It’s important to note here that call routing isn’t performed through Skype servers at all. In most cases, direct communication is possible and utilized. In other rare cases, Skype may use an intermediate node, e.g. the super node, to relay traffic.

Cue Windows Phone.

You probably know by now that Windows Phone 7.5 “Mango” ushered in support for fast application switching (multitasking) and background agents, little bits of code that can be programmed to run in the background. However, none of these agents support running for an indefinite amount of time or have the ability to maintain persistent network connections. That means that the application couldn’t possibly run in the background let alone receive calls from other users. But that’s where notifications swoop in and save the day, right?

Well, no. Remember when we called John Doe in an earlier example? That call was direct; Skype client to Skype client. There wasn't a Skype server in the middle of that transaction, just two users waving each other down and having a chat. Where would you install a Windows Phone notification server? On a super node? Nope, most calls are direct, remember? What about a server at Skype headquarters? Won’t do any good there either. The only option is to notify the user at receipt of an actual call, something the Skype for Windows Phone client can only do if it’s running in the foreground.

You see the dilemma now.

With Skype for Windows Phone having been announced all the way back at the Microsoft MIX conference in 2011, the anticipation (and vitriol) levels for app availability were off the charts. Not to mention all the other platforms had Skype already. So Microsoft had no choice: They worked with Skype to push out a “1.0” application knowing damn well they’d piss off half of their user base. But they delivered the application with the promise that users could expect a better version in the future.

And from what we’ve heard of the next version of Windows Phone “Apollo”, Microsoft and Skype will make good on that promise too. Back in February, it was reported that Skype would become a first class citizen on Windows Phone. So with Apollo nearing, it’s not long before all this becomes a hazy memory of Windows Phone’s growing pains.

[It's important to note that Microsoft is working with Skype to change how their network operates, specifically the way super nodes are created and operate; the network is evolving as you read this. So while I tried to remain as accurate as possible, there may be errors.]

9
loading...
0
loading...
101
loading...
0
loading...

Comments

There are 73 comments. Sign in to comment

XboxOmac says:

But doesn't it work great on other platforms? iOS and Android?

Curtieson says:

Did you read the article?  Though, I guess to understand why it doesn't work on WP7 and why it works on Android does take the knowledge that Android would allow everything access to everything wether it is front and center or not.  Great for getting 10 different apps to send you notifications instantly, TERRIBLE for battery life.

futurix says:

iOS does not allow Skype to run in the background and yet it still receives the calls just fine. How come?
I suspect that the real reason is that push notifications on WP7 are very unreliable, thus Skype cannot reply on them to initiate calls like on other platforms...

That's exactly it. Even Rene Ritchie at our sister site iMore told us that Skype kills the battery on the iPhone.

It's certainly a trade off and it was like that on Windows Mobile too--have it on, all the time for universal presence but have to worry about the battery.

MS is obviously looking to change the whole structure of the network which will not only benefit Windows Phone but iOS and Android later too as their clients can be re-written.

zacman says:

*Phoning* with skype kills the the battery fast. Running it in the background does not. Even Skype for S60 works fine and battery is no issue at all.

as147 says:

But MS had the OCS instant messaging client of their on Windows Mobile and it maintained and sent out presence status of all users on the buddy list and when an IM came in it would pause the foreground app and bring it to the user's attention via a pop up!
So is this just the case that WP7 in certain respects hasn't got the necessary maturity levels yet?

Eirenarch says:

Do you suggest that Skype on iOS has some kind of special treatment that allows it to run in the backgroun while other third party apps cannot?

Curtieson says:

From the link posted earlier (for the iOS): "Most apps are moved to the suspended state shortly after entering the background. Only apps that provide important services to the user are allowed to continue running for any amount of time."
So that means if the app needs to continue to run, it can through specific coding. Or that is how I read it.

Windcape says:

Yes, actually, since iOS offers a VoIP API that allows a application to slumber in the background. If you're not a VoIP app, you're not allowed to use this API.
You can find several examples of applications that used to cheat, and use the VoIP API on iOS, that later got suspended from the marketplace, and had to change behaviour.

Eirenarch says:

I got the impression that the article implies Skype got some special treatment on iOS not available to third party apps. Basically the reason Skype on WP sux is because the OS lacks similar API.

Well, I know now about why Skype for windows phone isn't as good as Skype for android or IOS.

But this is so stupid. -_-

To stupid, didn't read

Hiiiiiiiii says:

You mean "too stupid", right? As only a stupid person would not know the difference between too and to.

How did u get the link to work?

schlubadub says:

Press the link icon at top-right of the comment (next to reply arrow) OR press-and-hold on the comment until you see 'reply to' and 'follow links' OR swipe left, press 'Show in Browser' and select link in comments. The first 2 need the latest version of the app.

I meant how do u insert the link to have that? I know how to click it.

Article isn't correct.

Duffau says:

I have a hard time believing you really are that uninformed. This is why you get called a troll when you post. You really gotta have more going on in your life, I barely have time to check this site out, yet you have time to troll. Also, when Daniel said to, it seemed like he was addressing you, but I may have misread it.

expectafight says:

Are you serious with this? 

Big Supes says:

Roll on Apollo...

massifheed says:

OK, well, this isn't a major problem, so long as when Apollo comes along every Windows Phone can run a version that lets Skype operate as it should. However, if the dreaded fragmentation rumours are true, then not only will you have a large amount of WP users who are stuck with an out of date OS, they will also have no fix for the Skype background running issue.
Well, I really hope that Apollo and a working Skype integration happens across all WP models and generations. Otherwise this will be a rather large own-goal for MS.
Having just bought a Lumia 900, I'm really hoping MS doesn't leave us folks behind.
 

KumarNix says:

And if the Apollo won't support our phones ? Doomed .

KumarNix says:

Nice article BTW, at least now we know the reason for lack of background running .

4ty-phive says:

Can someone tell me why video chat across platforms (wp7-android, for instance) are so crappy looking? Never had a great experience with Skype (or Tango, for that matter). Coming from iOS, facetime was awesome. Is Skype better when using between the same platform (wp7-wp7)? Just wondering.

black.jesus says:

Facetime only works on WIFI. It doesn't work if you are running on 3g. It's pretty easy to have a good quality videochat if you are on wifi with and your average home or business broadband connection.

Windcape says:

Live video calls can't really be buffered to the extend that, say YouTube videos, can be. This means you have to adjust the bitrate of the stream constantly depending on the connection speed.
Which usually results in very poor video from mobile devices. However, you should also factor in the camera quality and the light settings around you. 
General rule of thumb is that WiFi gets you a lot better quality than 3G. I have never personally tested on 4G, so I can't tell you if there's any improvement in the area on that.

phazer89 says:

Apparently Skype doesn't work on the 610 now, although it would be strange if it was working during beta.

murani says:

First, great article. It lays out clearly the difficulty and reasons why Skype doesn't run in the same way it does on other mobile platforms. Most people either don't know or have forgotten that Microsoft had to rework Skype's internals to get it to be more stable when handling much larger traffic that it will see in the future. Skype works but if people are honest its not the most stable thing in the world.
I don't think anyone realizes how much stuff is changing, for the better, with Windows Phone going forward. A whole new world and i'm looking forward to June and see where each of Android, iOS 6, and WP Apollo stacks up.

Bruno H says:

But as I understand it, there is limitations like this in iOS to. Does iOS allow the skype background service to run for ever? If so then that would kill battery life on iOS as much as on Android. Does anybody know how this works on iOS?

That's how it works...just runs in the background, looking for incoming pings. And yes, it zaps battery life too.

BK-one says:

I understand all the negativity about Skype not working the the background but honestly does everyone use Skype that much that is worth complaining this much about? When I want to Skype with someone (once or twice a month) I just send the other party a text first to see if they want to Skype? Its easy for someone to text or call and not be properly dressed or busy. Video calling requires both parties to provide more attention so it's only courteous that I ask them if they want to and what time. Basically schedule a Skype call. Maybe its just me

Banstyle says:

I would use Skype if it was on my phone but since it's not available in any meaningful way it's hard to say how much I would use it if given the chance. I'm excited that it might come to Kinect some day but they demoed that like 2 years ago and it still has yet to surface.

schlubadub says:

Skype is much more than video calling... I use it for IM 95% of the time, 4% for phone calls and gaming group conversations, and 1% for video calls. I want skype to sit in the background for IM mainly. It's a bit redundant for calls on a mobile, as I can just use my mobile plan for that... and I have more minutes to use than data. Over wifi is a different story, but I usually have a PC for Skype when on home or work wifi.

Nakazul says:

I have friends that never leaves Skype, and they use it for gaming, chatting, texting. So yes, there is a lot of active users on there.

I think that the issue is that people with big data plans want to use Skype for calls instead of costly minutes. Long-distance calls, in particular can be outrageously expensive. I, for example, have relatives in another country. On my cell it costs me 40¢/minute to talk to them. On the other hand, I have a 5gb/month data plan, of which I only rarely use more than 2gb. Skype has plans that would allow me to call those relatives as much as I like for about $15/month. Just using my phone instead of Skype would only allow me 37½ minutes of talk time for the same cost. Now if Skype works on my phone just like making a regular call, like they're hinting at for Apollo, now I've gained the ability to calls those relatives and receive calls from them whenever and for however long without breaking the bank. Remember, Skype does regular old voice calls too.

shmuntz says:

Well, iOS is years ahead in multitasking and no-idiocy departments, no shit it can handle Skype properly. Hopefully next year molasses-slow MS will catch up.

Someone doesn't know what they're talkin about

ahuczek says:

I mean he said it like a condescending idiot but he's still right. Should have never been an issue to begin with

ChrisSsk says:

A small error, supernodes are no longer made up of regular users with lots of CPU power and bandwidth. Supernodes now are computers hosted by Microsoft.
This isnt a change from P2P to a server architecture. Its just that the supernodes are hosted by Microsoft.
Ars Technica covered it a few weeks ago:
http://arstechnica.com/business/2012/05/skype-replaces-p2p-supernodes-wi...

Read the bottom of the article.

Daniel, about Skype in Windows Phone 8... The fix about receiving calls will be made in a native integration in the OS or in the official app too??
The first one the carriers can block it, and this will be a problem...

ckeledjian says:

In order to use push notifications your app needs to work with a server (from which it will receive and relay the notifications). That's how Tango works. Skype call setup is serverless, direct to the IP address and the recipient cannot answer if it not running somehow in the background. I think the trade off is sufficient and makes sense. At this point I don't see anybody willing to sacrifice battery life for being able to receive a video call at any time. Let's face it, video calls are not that big yet. In a few months, we'll have Skype integrated just like Messenger and Facebook in Windows Phone 8, using the push notification system.

RaRa85 says:

It doesn't bother me much. I just text my friends prior to getting on and we work out what time we're both available. And it works great!

XboxOmac says:

Microsoft is just going to have to recreate the Skype network.

ChrisSnazell says:

A couple things ...

#1 XMPP
Although XMPP's presence funtionality is client-server, the VoIP aspects are P2P.
 
The XMPP server is used to broker a peer-to-peer connection between two clients. Once the connection's made over SIP or another protocol the XMPP server's no longer necessary. This is essentially what the supernodes' are doing in the current Skype network.
 
Since XMPP servers can be federated across multiple machines you can build out a Skype-equivalent network on XMPP. Which is how GTalk seems to have been built.

#2 VoIP on iOS
It's unlikely that Skype is permanently running in the background on iOS.
 
iOS has explicit background support for VoIP apps so that once the app has established a connection with its service it can be suspended until such time as the connection receives traffic from the service. iOS manages the connection until data has been received, at which point iOS brings the VoIP app up in the background to handle the traffic and only moves it to the foreground when user interaction's required. Once the traffic's been handled the app's suspended once again.
 
Relevant sections of the iOS App Programming Guide:
Implementing Long-Running Background Tasks
Tips for Developing a VoIP App
 

Eirenarch says:

This!
This is a flaw in the Windows Phone OS that needs to be fixed. This comment is much more helpful than the article itself because it explains how the OS could provide the necessary functionality for Skype to work as intended (without going for Android's all in approach)

Hey Chris,

Thanks for the notes, I'll go back and follow this up. I'm not certain Tango uses any P2P capabilies offered by the XMPP protocol/standard. GTalk may do this, but Tango may not.

 

ChrisSnazell says:

No problem.
 
I was looking into XMPP as a mechanism for data sharing between users of one of my apps. It's a wee bit tricky to use in the mobile world since XMPP's core "presence" system assumes a long-running connection which is impractical for third-parties on mobile. It has to be bridged into the platform's push notification system.
 
Intriguingly it looks like Apple's Push Notification system may be built on top of XMPP.

albadi88 says:

So we should expect same thing with viber too right???

metrop021 says:

Pretty sure it's gonna be integrated into the OS in windows phone 8 so don't worry about it

Los says:

Well it was a lose lose situation for Microsoft cause people kept complaining they wanted Skype now but now that they have it, they are still complaining. Its a rushed product and that's what you get when you want it NOW. Had people been patient and let MS take its time with it, they could have addressed those issues. So for now, stop complaining cause you got what you wanted

Oxygen22 says:

The fact is  Skype works on other platforms and not on WP7!
 
The systems is this, the network is that...These explanations you give? No one cares! Especially the users who don't have any knowledge in operating systems.
 
Just admit that WP7 has weak points, that MS has to correct!
 
I hope they fixe and integrate skype in the OS.
 
 
 
 
 

Yep exactly this.
When I read comments like "give it more time, WP7 is still the newest OS to the market" I feel like saying nobody cares. End users don't care about any fact other than this:
does it work?
does it work as well / better than android / iOS?
They don't care about battery they don't about excuses no matter how valid they may be. Us lot pussyfooting around the situation isn't helping anyone because rather than telling MS we reasoning it out.
And yes EVERYONE is justified in saying this situation about skype is atricious for the simple fact that Microsoft owns skype. If Microsoft can't get microsofts own stuff to work well on its own products, what kind of faith does that put in users? 
I read so many comments bashing android and iOS here, yet all I think is, you know what, one crash here, minor missing feature there, at least they work, and in the way people expect them to work
Ultimately, this was a nice informative read, but still the fact remains; not good enough Microsoft.

Banstyle says:

My question is.. where is it for Kinect? Kinect has a damn microphone and camera, so where is it? What's the hold up there? They demoed facetime-like functionality when Kinect first surfaced but it's still nowhere to be found, and yet, someone on PS Vita can use Skype in the background. There's no excuse. I expect to hear something Skype related at E3 or I'll be furious.

Banstyle says:

(Good article btw)

Windcape says:

We're recruiting for the Xbox team in London, http://www.microsoft-careers.com/search?q=xbox+AND+skype&filter=true&locale=en_US&location=london

I think that might answer your questions :-)

Banstyle says:

I look forward to your announcements at E3 on when I can Skype from my TV, thanks. ^___^

jdep1 says:

I'm not a Skype user so correct me if I'm wrong, but doesn't MS own Skype?

Windcape says:

Yes, Microsoft owns Skype. We're a Microsoft Division today. However, the Windows Phone client was developed at Skype in Stockholm, not in Redmond.

mccasive says:

That was very informative and a well written article. There has always been a problem with Skype architecture which has previously scared many potential investors and buyers away. In 2010 Google was at verge of acquiring Skype when Larry Page pulled the plug at the eleventh hour citing the same problems highlighted in this article. According to the article which appeared in MSNBC in 2010, there was a little dissention betweens Larry Page and Eric Schmidt over the last minute pull out but Larry preferred building a new platform from the ground than to buy a crippled Skype and rebuild it. As new owners I believe MS is rebuilding Skype and wouldn't want to waste too much resources working around the crippled software but optimize the rebuilt Skype for WP8. I was very pissed off with this limitation on window phone but after reading this article, it makes a lot of sense to me for MS to optimize Skype for WP8.

mccasive says:

I always make videos calls over Tmobile 4G on my Radar and the video quality is awesome. Sometimes I tether the Radar on my Lumia 900 and still get a very good quality Skype video on it.

RayWP7 says:

Very nice break down for people that want to know what's up. Though it seems that many readers lack the power of reasoning and induction or simply aren't reading the bloody article before commenting. Again, thanks for a great break down.

polychromenz says:

Great explanation but it overlooks the obvious fact that back when MS said this would be available by last August  that Skype knew what their infrastructure was and so did MS. SO why promise something that isnt technically possible. And as time marched on neither was upfront enough to set the record straight in public because they dont want to be embarrased.
 
I will only go WP8 once they have Skype running and it is getting good reviews. No Skype in WP8 and I will go back to Android.
 
I don't mind that things are not technically possible, I do object to being mislead.

expectafight says:

Don't know if all of that is fair. 
 
Getting it to market and how a product performs once it gets there are two separate things.  This is excerbated with the infrastructure issues.  I personally don't mind seeing the client out and watching the updates come down rather than just waiting for the finished product but I know that's just me.  People are WAY too quick to call doom & gloom for anything related to MS so I know the blogosphere wouldn't accept either.

based_graham says:

Its better for MS to fix Skype in the long run rather than forcing a bad build into WP. This will not only benefit WP but the service overall. Especially with IMessage and Facetime almost being the standard now.

coldfish85 says:

This is only partially true article. However a very knowledgeable and logical comments to read. Great discussion, learned few new things. Skype's network structure is going through some major haul and the future looks better for windows phone. Apollo upgrade wouldn't bring much change on how Skype functions, it will change after Skype's network restructure is completed.

bellskar says:

 
I can recall here about an OS that could do most of the things in a smartphone, which today's smartphone OSes can not do.... even if combined.....
It's the Symbian, that you guys rejected to adopt only for its UI..... And most of the reviewers who call it a crap OS, haven't even used it for a while....
A result of a fact like Racism with an OS (that is not from their homeland.)
Any ways.... I don't know about this article's source of information... but the logic is that a client is always re-written for a specific platform... if it was being written for Windows Phone, then it doesn't mean that it's architecture needs to be changed for the sake of a platform to make it able to run on it.... Multitasking on Windows Phone does provide a client application the ability to run for longer period of time in the background if it could maintain with foreground experience.
"A resource-intensive task runs for a longer period of time, but only when the device is in a state where resource-intensive processing will not disrupt the foreground experience"
Simple they will need to write Skype's code as according to the platform's requirements for background execution... 
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202866(v=vs.92).aspx