I thought I will share my recent success with everyone and provide some insight.
First of all, especial thanks to folks from XDA Developers, Microsoft user community and helpful T-Mobile technical staff for helping me navigate through the issue.
As I understood, successful IMS registration on a phone is what enables VoLTE and Wi-Fi calling. This requires three components:
A. Handset to support this feature
B. IMEI registered with carrier
C. SIM card to support this feature
While VoLTE and Wi-Fi calling are 3GPP standards, most carriers do not enable by default for all handsets because (A) they want you to buy their handsets and (B) E-911 regulations require carriers to ensure that the service works reliably.
This is primarily the reason as to why VoLTE does not work on many unlocked phones. This landscape is changing especially with CDMA carriers as they transition from CDMA to LTE (GSM) standard. At the end of their migration, carriers like Sprint (USA), Verizon (USA), Reliance Jio (India), China Telecom (China) will be LTE only, forcing them to provide better support for IMS registration process with unlocked phones.
After buying phone from AT&T, I followed the instructions on AT&T site to unlock my Lumia 640. This followed by using Windows Device Recovery Tool to format the phone.
I then followed the instructions posted on XDA site to de-brand Lumia 640. On step 11, I REPLACED THE COMMAND PROVIDED ON THE SITE, with the following:
thor2 -mode uefiflash -ffufile "C:\Lumia\RM-1073\RM1073_02177.00000.15203.26115_RETAIL_prod_si gned_1001_023F70_TMO-US.ffu" -do_full_nvi_update -do_factory_reset
This command allows the phone to use band 12, instead of just enabling it on user interface. I learnt this first hand when I travelled to an area where T-Mobile had 2G and LTE over band 12. I was on 2G the entire time.
Once you have de-branded the phone, check if IMS registration is successful. The easiest way to know that is to navigate into settings>about and look for IMS registration field. If this says “unregistered”, then call T-Mobile and have your IMEI number registered.
Companies like Apple and Google (Nexus), share IMEI numbers with carriers and hence the phone (auto) registration process is smoother. But Microsoft doesn’t care (or want) you to use their product and hence make the process more painful. This is primarily the reason as to why AT&T’s HD Voice works automatically on AT&T branded Lumia 950 but not on unlocked dual-sim Lumia 950.
When you call T-Mobile do not tell them that it’s a de-branded Lumia 640 as they will simply hang up on you. Simply share IMEI number and the firmware number to make sure that you are on the latest firmware as supported by T-Mobile.
Disable Wifi and restart the phone, this will force the phone to connect to T-Mobile network for all connections.
If registering IMEI number doesn’t resolve the issue, then request for a new SIM card. T-Mobile will be happy to send you one for free.
Once you get the new SIM (as in my case), disable Wifi restart the phone and it should work.
Once that is complete, feel free to use “Windows Insider” app to upgrade to Windows Mobile 10.