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. Its important to note here that call routing isnt 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 couldnt possibly run in the background let alone receive calls from other users. But thats 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? Wont 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 its running in the foreground.