Pixel 4a and VoWiFi? (IMS “not registered”)

I have a Pixel 4a newly set up with iodé 6.9. In the Phone Information window, VoLTE appears to be provisioned, though the control is disabled. WiFi Calling is not provisioned.

The IMS Service Status shows IMS is, “not registered,” and everything is unavailable.

VoLTE does appear enabled in the calling settings, though.

Have you checked your APN setting to ensure it is accurate? If you can share your country and carrier we can do a bit of checking. As IMS / 4G VoLTE depends on a data connection, this would need to be set correctly to register I think.

If that is set correctly, is it possible your carrier has the device blacklisted and or not approved on their “whitelist”? Have you contacted them to check?

It’s Magenta in Austria. The Access Point Names shows two items, though only one is selectable. I also tried resetting to default and rebooting, but the setting stays the same.

With the SIM being detected, but IMS not registering, I think you need to contact the carrier to see what is going on. If you tap on “T-Mobile A Internet” it should bring up more details, but it looks like it is the right APN. The second MMS entry is just for MMS which I am not sure if you use much at all in Austria?

Have you actually tested VoLTE calling? i.e. Does the phone remain on LTE during a voice call?

I see I can edit the APN and under APN Type only default and supl are checked.

I can check ims, but on reboot IMS is still not registered.

I guess I will have to check with the provider to see if the device is blacklisted or not.

1 Like

Good idea. I just started a call while LTE was displayed on the status bar. As soon as the call started, the LTE indicator disappeared. I guess that indicates VoLTE is not workking.

2 Likes

I just spoke with technical support at the provider (Magenta.at) who confirmed 1) both VoLTE and VoWiFi are enabled for my account, and 2) this particular phone is not blacklisted in any way, it should just work. (They had no specific advice to offer about this phone make or model, they’re accustomed to helping almost exclusively with Apple or Samsung phones.)

1 Like

I wonder if a new SIM (or eSIM?) would have different results.

I had a look at the ADB logging for anything mentioning IMS during an airplane mode toggle and got the following which does mention IMS along with SUPL, another APN type.

11-25 15:51:18.082 2931 3486 I QImsService: ImsSenderRxr : [UNSL]< UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED[SUB0]
11-25 15:51:21.007 1825 2858 D ConnectivityService: registerNetworkAgent NetworkAgentInfo{network{116} handle{501621903373} ni{MOBILE[LTE] CONNECTING extra: internet.t-mobile.at} created=2025-11-25T14:51:21.007Z Score(Policies : TRANSPORT_PRIMARY ; KeepConnected : 0) lp{{LinkAddresses: DnsAddresses:Domains: null MTU: 0 Routes:}} nc{[ Transports: CELLULAR Capabilities: SUPL&IMS&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&NOT_ROAMING&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED&MMTEL&NOT_BANDWIDTH_CONSTRAINED LinkUpBandwidth>=14Kbps LinkDnBandwidth>=14Kbps Specifier: <TelephonyNetworkSpecifier [mSubId = 2]> SubscriptionIds: {2} UnderlyingNetworks: Null]} factorySerialNumber=5}
11-25 15:51:21.179 2886 3299 D QCNEJ/WwanInfoRelay: onCapabilitiesChanged: 116 [ Transports: CELLULAR Capabilities: SUPL&IMS&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&NOT_ROAMING&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED&MMTEL&NOT_BANDWIDTH_CONSTRAINED LinkUpBandwidth>=14Kbps LinkDnBandwidth>=14Kbps Specifier: <TelephonyNetworkSpecifier [mSubId = 2]> SubscriptionIds: {2} UnderlyingNetworks: Null]
11-25 15:51:21.477 2886 3299 D QCNEJ/WwanInfoRelay: onCapabilitiesChanged: 116 [ Transports: CELLULAR Capabilities: SUPL&IMS&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED&MMTEL&NOT_BANDWIDTH_CONSTRAINED LinkUpBandwidth>=14Kbps LinkDnBandwidth>=14Kbps Specifier: <TelephonyNetworkSpecifier [mSubId = 2]> SubscriptionIds: {2} UnderlyingNetworks: Null]

OK good to have it cleared up they don’t see an issue on their side. I would suggest a few things:

  1. disable “Roaming”, that way we can be sure you are connecting to your provider’s towers.
  2. Check under “Preferred Network Type” maybe you have 5G in your area and spotty 4G towers? Anyway, what other options are there?
  3. Screenshot or post all the details under the active APN entry.

For me WiFi calling on Telekom Germany also doesn’t work in my 4a with iodé, same SIM works fine on Pixel 8 with iodé. VoLTE works in both cases.

1 Like

Thanks, rik.

  1. Roaming is disabled, but I thought this meant “data roaming” anyway
  2. Preferred network type is LTE (only other choice is 3G)
  3. APN screenshots follow.

T-Mobile A Internet. “ims” is unchecked here but checking it and reloading does not cause the IMS to become registered.

T-Mobile A MMS (not really relevant but it’s there)

I realized I do have an extra active SIM card from another provider I can test as well, though not for a couple of days.

There’s a warning on the LineageOS page for sunfish that, “Additionally, some devices require that VoLTE/VoWiFi be utilized once on stock to provision IMS.” I didn’t do this; I went straight to iodé without trying stock first.

I haven’t yet been able to find out more specific information about this warning, though.

1 Like

According to the guys over on the LineageOS reddit this warning doesn’t actually apply to Pixel phones, it just comes from the template used to make those pages, so this likely is inapplicable.

Also my SIM card in another (Nothing) device had IMS registered with VoLTE, and the SIM card from that phone (same carrier) similarly had no IMS registered in this Pixel 4a.

I wonder if the IMS not-registered message in Phone Info is actually inaccurate. I tried a VoLTE testing app (com.sleeptech.volteplus) and it claimed 1) Pixel 4a supports VoLTE in general, 2) my carrier supports VoLTE, and 3) (most surprisingly) VoLTE is presently active on my device.

Of course I can’t address how trustworthy the app itself is. If anyone knows of any others which are reliable I’d welcome the recommendation.

On saving a radio log from adb, it appears to me iodé simply fails completely to register IMS on this device, even though it’s supposed to be able to. Where should I report this as an actual bug?

Here’s an excerpt of apparently relevant lines:

12-05 09:06:10.451  2923  2923 E RILJ    : Feature android.hardware.telephony.ims is declared, but service IMS is missing [PHONE0]
12-05 09:06:10.912  2923  2923 E ImsPhoneCallTracker: [0] getCarrierConfigBundle: carrier config is null, skipping.
12-05 09:06:10.912  2923  2923 E ImsPhoneCallTracker: [0] updateCarrierConfiguration: carrier config is null, skipping.
12-05 09:06:10.919  2923  2923 D ImsPhone: [0] updateDataServiceState: defSs = {mVoiceRegState=1(OUT_OF_SERVICE), mDataRegState=1(OUT_OF_SERVICE), mChannelNumber=-1, duplexMode()=0, mCellBandwidths=[], mOperatorAlphaLong=null, mOperatorAlphaShort=null, isManualNetworkSelection=false(automatic), getRilVoiceRadioTechnology=0(Unknown), getRilDataRadioTechnology=0(Unknown), mCssIndicator=unsupported, mNetworkId=-1, mSystemId=-1, mCdmaRoamingIndicator=-1, mCdmaDefaultRoamingIndicator=-1, mIsEmergencyOnly=false, isUsingCarrierAggregation=false, mArfcnRsrpBoost=0, mNetworkRegistrationInfos=[NetworkRegistrationInfo{ domain=CS transportType=WWAN registrationState=UNKNOWN networkRegistrationState=UNKNOWN roamingType=NOT_ROAMING accessNetworkTechnology=UNKNOWN rejectCause=0 emergencyEnabled=false availableServices=[] cellIdentity=null voiceSpecificInfo=null dataSpecificInfo=null nrState=**** rRplmn= isUsingCarrierAggregation=false isNonTerrestrialNetwork=TERRESTRIAL}, NetworkRegistrationInfo{ domain=PS transportType=WWAN registrationState=UNKNOWN networkRegistrationState=UNKNOWN roamingType=NOT_ROAMING accessNetworkTechnology=UNKNOWN rejectCause=0 emergencyEnabled=false availableServices=[] cellIdentity=null voiceSpecificInfo=null dataSpecificInfo=null nrState=**** rRplmn= isUsingCarrierAggregation=false isNonTerrestrialNetwork=TERRESTRIAL}, NetworkRegistrationInfo{ domain=PS transportType=WLAN registrationState=UNKNOWN networkRegistrationState=UNKNOWN roamingType=NOT_ROAMING accessNetworkTechnology=UNKNOWN rejectCause=0 emergencyEnabled=false availableServices=[] cellIdentity=null voiceSpecificInfo=null dataSpecificInfo=null nrState=**** rRplmn= isUsingCarrierAggregation=false isNonTerrestrialNetwork=TERRESTRIAL}], mNrFrequencyRange=0, mOperatorAlphaLongRaw=null, mOperatorAlphaShortRaw=null, mIsDataRoamingFromRegistration=false, mIsIwlanPreferred=false, mIsUsingNonTerrestrialNetwork=false} imsSs = {mVoiceRegState=1(OUT_OF_SERVICE), mDataRegState=1(OUT_OF_SERVICE), mChannelNumber=-1, duplexMode()=0, mCellBandwidths=[], mOperatorAlphaLong=null, mOperatorAlphaShort=null, isManualNetworkSelection=false(automatic), getRilVoiceRadioTechnology=0(Unknown), getRilDataRadioTechnology=0(Unknown), mCssIndicator=unsupported, mNetworkId=-1, mSystemId=-1, mCdmaRoamingIndicator=-1, mCdmaDefaultRoamingIndicator=-1, mIsEmergencyOnly=false, isUsingCarrierAggregation=false, mArfcnRsrpBoost=0, mNetworkRegistrationInfos=[NetworkRegistrationInfo{ domain=CS transportType=WWAN registrationState=UNKNOWN networkRegistrationState=UNKNOWN roamingType=NOT_ROAMING accessNetworkTechnology=UNKNOWN rejectCause=0 emergencyEnabled=false availableServices=[] cellIdentity=null voiceSpecificInfo=null dataSpecificInfo=null nrState=**** rRplmn= isUsingCarrierAggregation=false isNonTerrestrialNetwork=TERRESTRIAL}, NetworkRegistrationInfo{ domain=PS transportType=WWAN registrationState=UNKNOWN networkRegistrationState=UNKNOWN roamingType=NOT_ROAMING accessNetworkTechnology=UNKNOWN rejectCause=0 emergencyEnabled=false availableServices=[] cellIdentity=null voiceSpecificInfo=null dataSpecificInfo=null nrState=**** rRplmn= isUsingCarrierAggregation=false isNonTerrestrialNetwork=TERRESTRIAL}, NetworkRegistrationInfo{ domain=PS transportType=WLAN registrationState=UNKNOWN networkRegistrationState=UNKNOWN roamingType=NOT_ROAMING accessNetworkTechnology=UNKNOWN rejectCause=0 emergencyEnabled=false availableServices=[] cellIdentity=null voiceSpecificInfo=null dataSpecificInfo=null nrState=**** rRplmn= isUsingCarrierAggregation=false isNonTerrestrialNetwork=TERRESTRIAL}], mNrFrequencyRange=0, mOperatorAlphaLongRaw=null, mOperatorAlphaShortRaw=null, mIsDataRoamingFromRegistration=false, mIsIwlanPreferred=false, mIsUsingNonTerrestrialNetwork=false}
12-05 09:06:10.959  2923  2923 D TNP     : registerNetworkOffer: [ Transports: CELLULAR|SATELLITE Capabilities: MMS&SUPL&DUN&FOTA&IMS&CBS&IA&RCS&XCAP&EIMS&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&MCX&NOT_VCN_MANAGED&ENTERPRISE&VSIM&BIP&MMTEL&PRIORITIZE_LATENCY&PRIORITIZE_BANDWIDTH&NOT_BANDWIDTH_CONSTRAINED Specifier: <android.net.MatchAllNetworkSpecifier@0> EnterpriseId: 1&2&3&4&5 UnderlyingNetworks: Null]
12-05 09:06:11.273  2923  2923 D ImsStateCallbackController: ImsStateCallbackController created
12-05 09:06:11.278  2923  2923 D ImsStateCallbackController: updateFeatures: oldSlots=0, newNumSlots=1
12-05 09:06:11.298  2923  3223 D ImsStateCallbackController: onExternalRcsStateChanged slotId=0, state=UNAVAILABLE, reason=NO_IMS_SERVICE_CONFIGURED
12-05 09:06:11.312  2923  2923 D ImsProvisioningController: MmTelFeatureListener[0] created
12-05 09:06:11.313  2923  2923 D ImsProvisioningController: RcsFeatureListener[0] created
12-05 09:06:11.313  2923  2923 D ImsProvisioningController: ProvisioningCallbackManager[0] ProvisioningCallbackManager create
12-05 09:06:11.380  2923  3226 D ImsProvisioningController: MmTelFeatureListener[0] subId is not changed
12-05 09:06:11.380  2923  3226 D ImsProvisioningController: RcsFeatureListener[0] subId is not changed
12-05 09:06:11.380  2923  3226 D ImsProvisioningController: ProvisioningCallbackManager[0] subId is not changed 
12-05 09:06:11.471  2923  2923 D SST     : [0] setPowerStateToDesired: mDeviceShuttingDown=false, mDesiredPowerState=true, getRadioState=1, mRadioPowerOffReasons=[], IMS reg state=false, pending radio off=false
12-05 09:06:11.664  2923  2923 D ImsManagerIM [0]: ImsService not up yet - timeout waiting for connection.

I really think you need to flash stock on your P4a and test. I highly suspect you will find the problem remains. Sadly, at least in my opinion, there are just way too many gremlins in the VoLTE codebase and network negotiations to rely on documentation. Yes the OS does play a part, but I think it will be more productive to confirm via another OS if iodéOS has any issue or not. But digging into the code just to later find that it was not even relevant will be a long and complicated road.

If the bug exists in iodéOS only, then probably it is best to cross-check with LineageOS for microG to see if it works there. Then, if this behavior is the same as iodéOS (I would suspect that to match at least) we look to register the bug with the LineageOS team.

You’re completely right, of course.

So you tried stock “Google Android” and still unable to register? I have had a similar case before that my carrier was able to do some black box adjustments to get it to register… so possibly still worth passing this back to them. At least you don’t now have to explain how you are running a custom ROM etc.