[LineageOS Questions & Answers] Alias Bongo:
I'm not entirely sure which forum would be most appropriate to post this under, but this seems like a decent candidate, so I'm starting here. If this would fit better somewhere else, please feel to redirect me, and/or even move the thread if appropriate. I think I've read all the appropriate sticky threads et cetera, but if I do make / am making a faux pas, please let me know.

As you're probably aware (https://www.xda-developers.com/t-mobile-att-require-volte-phone-calls-shut-down-3g/), T-Mobile is expected to shut down its non-VoLTE voice service in January of 2021. As a result, it's imperative for anyone who gets phone service through them to have a phone with working VoLTE support before that point. As that includes me, I've been looking into that.

I currently have a Samsung Galaxy S5, purchased through T-Mobile back in 2015 (if I'm not mistaken, it's a SM-G900T). There seem to be fairly solid statements that this model does support VoLTE under the stock ROM, and indeed T-Mobile support seems to think that it should be working.

I run LineageOS - specifically klte, which matches that model. I'm currently on the August 30th, 2020 "nightly" build of version 16.0 (which was the latest available for that model as of earlier today), on top of TWRP 3.3.1 (ditto). I only recently upgraded from TWRP 2.8.7 and (IIRC) LineageOS 14.1, which I'd been running since sometime in 2017 for reasons that are out of scope but I can describe briefly if desired. The upgrade was specifically in hopes that newer LineageOS would have VoLTE support options which the earlier version did not, but that seems to have been a futile hope.

After some fairly extensive digging (mostly online, but with some poking around on my own device and in my own backups et cetera), I've concluded that while it is theoretically possible to have VoLTE support on this device under LineageOS, it's likely to be effectively impossible in practice. Threads such as https://xdaforums.com/galaxy-s5/devs-only/port-ims-manager-to-klte-t3551084 (not the only place I've looked, but probably the last before giving up) seem to indicate that the only way to get it to work - short of reverse engineering enough of the underlying system to be able to reimplement Samsung's closed IMS implementation for that model - would be to find a Galaxy S5 with the stock ROM and working VoLTE, and copy the appropriate files out of that and into the correct places on the LineageOS-based version of the system.

I thought I'd kept a backup of the stock ROM which my S5 came with, but I haven't managed to find any sign of it in my archives. I don't think I have any other way to get at the correct files, never mind figure out where they need to go and get them there; I certainly couldn't justify buying another S5 just to be able to extract the stock ROM.

As linked from the thread referenced above, there do appear to be, or have been, other custom ROMs for the Galaxy S5 which include - or included - VoLTE support. However, I'm otherwise quite happy with LineageOS, and don't want to switch to another custom ROM line - especially since I want to avoid the data loss that would come with wiping my phone to install another ROM, unless there's absolutely no way to avoid it.

Are there any prospects for my being able to get VoLTE working on this phone under LineageOS? If so, what would I need to do to manage that, within the January deadline?

If not, or if what prospects there are don't pan out, I'm going to need to acquire a new smartphone which will be able to have VoLTE under LineageOS, and preferably one which will at least approximate meeting the other criteria which led me to select the Galaxy S5 in the first place and stick with it all this time. In particular, A: I all but insist on a conveniently user-swappable battery (I carry at least one fully-charged spare in my back pocket at all times), not so much for field battery life extension as to be able to replace the battery rather than the phone when the battery inevitably bloats and dies (I'm on something like my seventh battery for this S5), B: I really like having separate dedicated "home", "back", and (for lack of a better term) "active applications list" buttons, and the only model I know for sure has them is the S5 itself, and C: I very much want to have a traditional headphone jack. Expandable storage, in the form of a suitable SD-card slot, would also be nice but is not strictly required.

What models can I expect to be able to get VoLTE working on under LineageOS, with good support in other regards, within that January deadline? The model-support information I've been able to find in searching thus far does not seem to provide any clear indication on this point.

I don't expect recommendations on what smartphone models will be able to also meet my other criteria, although of course it would be nice; that would probably fit better under the "what phone should I buy next?" thread over in General Q&A.