Blame Apple because they have full control of the iPhone.
The same can be said with the Nexus devices -- Blame Google because they have full control.
Because these devices are "one manufacture for multiple carriers" and not all carriers support various cool features (and even if they do, it doesn't mean they use the same technology), there's way too much work for Google.
Plus, it's T-Mobile's code, and unless they release it open source, Google cannot legally incorporate it.
The same concept could be made if you brought your T-Mobile phone over to AT&T and wanted to complain that you can't use WiFi calling. Would you blame AT&T because they didn't make a feature available?
I agree, it's a limiting factor (especially for the price break the Nexus devices have compared to a device like the HTC One or Samsung Galaxy S4), but you're supposed to buy a device for it's features. You buy the S4 because of things like "pause when you look away". You buy the HTC One because of things like speakers in the front. You should buy a Nexus device because you know it will be upgraded to the next version of the OS first (whether that's good or bad with apps not working) and that it's a clean install with no carrier hooks.
We all do.
But, the best we can tell, there's Operating System hooks that need to be
in place in order to get it to work (like direct access to the SIM card
information or something like that)
We all know there's other VOIP apps out there (which is what WiFi calling
is). Those are username/password based, so they can work that way. WiFi
Calling is based on your SIM device and other network activity, which may
not be available as part of the regular app framework in place and special
"root level" permissions may be required for it to work.
I would not mind putting in my T-Mobile username and password to make calls over wi-fi (if anyone is listening ^_^). If Android allowed VOIP apps to use the SIM's phone number as if it is being made from a cellular network it would be amazing but I can't imagine carriers agreeing to such a thing. We could all migrate to data-only networks.
It could also be one of those "We only want this number on one device"
Remember, Skype doesn't say you're limited to one device.
But, T-Mobile's rule is one phone number, one device. Which is why you
can't have multiple SIM cards for the same number, if you want to swap from
device to device.
If you allowed a login, people could potentially abuse the system by having
a whole family on one phone number. Or, contrary, you wouldn't be able to
swap devices easily because you'd have to go through some PITA "register
Set up a VoIP account, you can set the outbound phone number to be almost anything you want.
I use Google Voice as my main number, I can set it up so that my phone calls out from Google voice, and that's the number people see.
I don't give any other number out, and when I'm home, I use VOIP over my home network to connect to Google Voice and make outbound calls.
Soon, we will be all IP, all the time, once the the latency and buffer-bloat issues are resolved.
If you have a Google Voice number, then it's pretty easy to set up.
Making sure your Google Voice account has made a call from I.E. or Firefox, and is aware of your cell phone number, verify the Google Voice app is installed on your Android device.
Now, install SipDroid from the Google Play Store, and let it automagically create a free PBXes.org account with Google Voice integration.
That's about it.
Although Google is saying that they are removing the Interface that these services use in March, that just means you'll need to pay $5 a month for a Soho account with a phone number.
There are other ways to get Google Voice outbound dialing, but this works as well as a cell connection with a decent low latency data link, and is not as figity as the Google Voice Calling apps on the market, and thanks to SipDroid, the simpliest VOIP/Google Voice gateway to configure.
This does not use a Google Voice SIP interface, Google has been very jealous of those since they purchased GrandView.
What's currently being used is an Asterix gateway that supports the JABBER protocol used by Google Voice currently.
So it's SIPhandset -> SIPserver/PBX -> JabberGateway -> GoogleVoice.
Google is claiming they are transitioning Google Voice from the JABBER protocol, apparently that is part of their integration of Google Voice into Hangouts, which would then hopefully give you the same thing as you get from PBXes now.