Transitioning from the legacy circuit-switched voice network to IP Multimedia Subsystem (IMS) gives us the opportunity to use advanced cellular services such as Voice over LTE (VoLTE), Wi-Fi Calling (VoWiFi), and Rich Communication Services (RCS). Now that 5G support is ready to land on the budget segment, several carriers are gradually phasing out old school 2G/3G infrastructures and even require VoLTE for all devices connecting to their 4G LTE and 5G networks. T-Mobile and AT&T, for example, are going to block voice and data service for phones that don’t support VoLTE in the near future.
Here comes the elephant in the room: How does a regular consumer with a carrier unlocked model ensure VoLTE (and VoWiFi) compatibility of their smartphones with the service provider? When we are talking about OEMs like ASUS, the whole situation is really complicated. In case you want to pick up any current-gen ASUS ROG Phone or the ASUS ZenFone branded smartphone — including the recently launched ROG Phone 3 and the ZenFone 7/7 Pro — as your next phone, you will be surprised to know that none of them officially support VoLTE on the aforementioned U.S. carriers. The good news is that XDA’s aftermarket development community has once again come to the rescue.
This time, XDA Recognized Developer HomerSp has found a way to fiddle with the Qualcomm Snapdragon modem’s internal diagnostic interface and set the correct parameters so that the target ASUS smartphone can seamlessly support advanced IMS services like VoLTE on T-Mobile’s network. While the developer successfully tested the method on the ASUS ROG Phone II, users on our forums got it working on their ZenFone 6 as well. According to XDA Recognized Developer Captain_Throwback and XDA Senior Member bs3pro, modifying those parameters (AKA vendor prop values) on the ROG Phone 3 is sufficient to get VoLTE and VoWiFi working on T-Mobile, which means the mod is compatible with the latest ASUS phones, too!
How to enable T-Mobile VoLTE/VoWiFi on ASUS smartphones
Step 1 – Enable the hidden Qualcomm diagnostic mode
- Make sure you have root access.
- Download a recent build of Qualcomm Product Support Tools (QPST), Qualcomm USB drivers, and the AsusVoLTE app made by HomerSp.
- Either use the AsusVoLTE app or the remote connection feature of QPST to trigger the Qualcomm diagnostic mode. For further details, take a look at this thread.
Step 2 – Set appropriate prop values
*#*#3642623344#*#*through the stock dialer app.
- This secret code can be used to force-enable VoLTE/VoWiFi right from the phone, but it does not survive a reboot.
- Alternatively, execute the following set of commands from an elevated shell:
setprop persist.vendor.dbg.ims_volte_enable 1 setprop persist.vendor.dbg.volte_avail_ovr 1 setprop persist.vendor.dbg.vt_avail_ovr 1 setprop persist.vendor.dbg.wfc_avail_ovr 1
- You can also use the AsusVoLTE app to set these values.
If everything goes right, you should be able to see the VoLTE (or VoWiFi) icon in the status bar at this point after toggling Mobile data off then on again.
(Optional) Step 3 – Modify the EFS partition
You may need to push the carrier configs to the EFS partition of the target ASUS device for better compatibility. To do this, follow the steps as mentioned in the thread linked below.
It is worth mentioning that AT&T, unlike T-Mobile, maintains a whitelist for VoLTE (AKA “HD Voice”) compatibility. Although there are some successful reports of enabling VoLTE on the carrier using this guide, your mileage may vary.