[Razer Phone 2 Guides, News, & Discussion] LSS4181:
Does anyone else has issues with VoLTE stuck after hanging up? I'm on Havoc 2.9 and because of this VoLTE is completely unusable as I have to reboot the phone every time I finish a call.

I've observed the following:

1. VoLTE would work with the ims apk installed regardless of whether it's installed as user app or system app. However, it needs to be installed as system app in order to make the VoLTE icon show up near the signal indicator.

2. My phone would show a permanent "Device is VoLTE capable" notification if VoLTE is enabled. This notification does not disappear on its own (although may be hidden manually). Not sure if this is normal.

3. Phone stays "Calling..." even after the VoLTE phone call has been established (not sure if this is normal). The phone would stuck at "Hanging up" when hanging up, and apparently, it stayed "Calling..." even after the other side has already hung up, implying the phone is not aware of the hangup from the other side.

4. After the phone gets stuck on "Hanging up", nothing can be done to get out of this state except reboot. Airplane mode does not help. Also, I've ruled out Bluetooth (which already had its own issues) and Wi-Fi being the culprit as this is 100% reproducible with or without Wi-Fi or Bluetooth enabled.

EDIT: Found an excerpt that might be related to the issue.

12-07 11:19:57.721 D/StreamDBQueue( 8518): Promised revision #174041 to queue a new op
12-07 11:19:57.721 D/BaseStreamManager( 8518): Promised remove @ r#174041 for StreamItemIdAndRevision{notifKey=0|com.android.dialer|1|null|10041, packageName=com.android.dialer, id=1, revision=0, originalRevision=0, updateCount=0} (@174040): SBN removed: StreamItemIdAndRevision{notifKey=0|com.android.dialer|1|null|10041, packageName=com.android.dialer, id=1, revision=0, originalRevision=0, updateCount=0}
12-07 11:19:57.721 D/StreamDatabase( 8518): remove. itemId: StreamItemIdAndRevision{notifKey=0|com.android.dialer|1|null|10041, packageName=com.android.dialer, id=1, revision=174028, originalRevision=174024, updateCount=1}
12-07 11:19:57.726 I/Dialer (20153): InCallFragment.setCallState - PrimaryCallState, state: 9, connectionLabel:
12-07 11:19:57.727 I/Dialer (20153): InCallActivity.showMainInCallFragment - shouldShowAnswerUi: false, shouldShowRttUi: false, shouldShowVideoUi: false didShowAnswerScreen: false, didShowInCallScreen: true, didShowRttCallScreen: false, didShowVideoCallScreen: false
12-07 11:19:57.728 I/sensors-hal( 1002): batch:140, android.sensor.accelerometer/13, period=66667000, max_latency=100000000
12-07 11:19:57.728 I/sensors-hal( 1002): batch:149, android.sensor.accelerometer/13, period=66667000, max_latency=100000000 request completed
12-07 11:19:57.729 I/sensors-hal( 1002): activate:107, android.sensor.proximity/34 en=0
12-07 11:19:57.730 I/sensors-hal( 1002): activate:118, android.sensor.proximity/34 en=0 completed
12-07 11:19:57.730 I/Dialer (20153): ProximitySensor.updateProximitySensorMode - screenOnImmediately: true, dialPadVisible: false, offHook: false, horizontal: false, uiShowing: true, audioRoute: SPEAKER
12-07 11:19:57.730 I/Dialer (20153): ProximitySensor.turnOffProximitySensor - wake lock already released
12-07 11:19:57.730 I/Dialer (20153): VideoPauseController.onStateChange - hasPrimaryCallChanged: true, videoCanPause: false, isInBackground: false
12-07 11:19:57.730 I/Dialer (20153): VideoPauseController.onPrimaryCallChanged - new call: null, old call: [DialerCall_0, DISCONNECTING, [Capabilities: CAPABILITY_SUPPORT_HOLD CAPABILITY_MUTE], [Properties:], children:[], parent:null, conferenceable:[], videoState:Audio Only, mSessionModificationState:0, CameraDir:-1], mIsInBackground: false
12-07 11:19:57.731 D/msm8974_platform( 984): platform_set_channel_map mixer_ctl_name:Playback Channel Map13
12-07 11:19:57.732 I/Telecom ( 1689): Event: RecordEntry TC@1: REQUEST_DISCONNECT, internal: ICA.dC(InCall package: com.android.dialer)@AT8
12-07 11:19:57.732 D/msm8974_platform( 984): platform_set_channel_map: set mapping(1 2 0 0 0 0 0 0) for channel:2
12-07 11:19:57.732 I/Telecom ( 1689): Call: Send disconnect to connection service for call: [TC@1, DIALING, com.android.phone/com.android.services.telephony.TelephonyConnectionService, tel:*****, A, childs(0), has_parent(false), [Capabilities: CAPABILITY_SUPPORT_HOLD CAPABILITY_MUTE], [Properties:]]: ICA.dC(InCall package: com.android.dialer)@AT8
12-07 11:19:57.732 D/audio_hw_primary( 984): start_output_stream: exit
12-07 11:19:57.732 I/ImsCall ( 5844): terminate :: reason=501 ImsCall=[ImsCall objId:239253466 onHold:N mute:N mCallProfile:{ serviceType=1, callType=2, restrictCause=0, mediaProfile={ audioQuality=0, audioDirection=3, videoQuality=0, videoDirection=-1, rttMode=0 } } tech: updateRequest:NONE merging:N merge action pending:N merged:N multiParty:N confHost:N buried term:N isVideo: N wasVideo: N isWifi: N session:[ImsCallSession objId:68767109 state:INITIATED callId:-1] transientSession:null]
12-07 11:19:57.732 I/QImsService( 5844): ImsCallSessionImpl : terminate 501
12-07 11:19:57.738 I/QImsService( 5844): ImsRadioUtils : imsReason= 501
12-07 11:19:57.738 I/QImsService( 5844): ImsSenderRxr : [0018]> HANGUP [SUB0]
12-07 11:19:57.740 I/Telecom ( 1689): InCallController: Sending updateCall [TC@1, DIALING, com.android.phone/com.android.services.telephony.TelephonyConnectionService, tel:*****, A, childs(0), has_parent(false), [Capabilities: CAPABILITY_SUPPORT_HOLD CAPABILITY_MUTE], [Properties:]]: CSW.sSH@AUA
12-07 11:19:57.741 I/Telecom ( 1689): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}]: CSW.sSH@AUA
12-07 11:19:57.744 I/Telephony( 5844): GsmConnection: isAddParticipantCapable: isCapable = false
12-07 11:19:57.744 D/audio_hw_primary( 984): adev_set_parameters: enter: call_state=2;call_type=LTE;vsid=297816064
12-07 11:19:57.745 D/voice_extn( 984): update_call_states is_call_active:1 in_call:1, mode:2
12-07 11:19:57.745 D/voice_extn( 984): update_calls: enter:
12-07 11:19:57.745 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10c01000
12-07 11:19:57.745 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10dc1000
12-07 11:19:57.745 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10c02000
12-07 11:19:57.745 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10803000
12-07 11:19:57.745 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10002000
12-07 11:19:57.745 D/voice_extn( 984): update_calls: cur_state=2 new_state=2 vsid=11c05000
12-07 11:19:57.745 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=11dc5000
12-07 11:19:57.745 D/voice_extn( 984): voice_extn_set_parameters: call type is LTE
12-07 11:19:57.745 D/audio_hw_extn( 984): audio_extn_set_anc_parameters: anc_enabled:0
12-07 11:19:57.745 D/audio_hw_spkr_prot( 984): audio_extn_fbsp_set_parameters: Speaker protection disabled
12-07 11:19:57.749 I/Dialer (20153): CallList.onUpdateCall - [DialerCall_0, DISCONNECTING, [Capabilities: CAPABILITY_SUPPORT_HOLD CAPABILITY_MUTE], [Properties:], children:[], parent:null, conferenceable:[], videoState:Audio Only, mSessionModificationState:0, CameraDir:-1]
12-07 11:19:57.749 I/Dialer (20153): InCallPresenter.onCallListChange - Phone switching state: INCALL -> INCALL
12-07 11:19:57.756 I/Dialer (20153): InCallFragment.setCallState - PrimaryCallState, state: 9, connectionLabel:
12-07 11:19:57.756 I/Dialer (20153): InCallActivity.showMainInCallFragment - shouldShowAnswerUi: false, shouldShowRttUi: false, shouldShowVideoUi: false didShowAnswerScreen: false, didShowInCallScreen: true, didShowRttCallScreen: false, didShowVideoCallScreen: false
12-07 11:19:57.756 I/Dialer (20153): VideoPauseController.onStateChange - hasPrimaryCallChanged: false, videoCanPause: false, isInBackground: false
12-07 11:19:57.747 I/Telephony( 5844): GsmConnection: isAddParticipantCapable: isCapable = false
12-07 11:19:57.761 I/Telecom ( 1689): InCallController: Sending updateCall [TC@1, DIALING, com.android.phone/com.android.services.telephony.TelephonyConnectionService, tel:*****, A, childs(0), has_parent(false), [Capabilities: CAPABILITY_SUPPORT_HOLD CAPABILITY_MUTE], [Properties:]]: CSW.rE@AUU
12-07 11:19:57.761 I/Telecom ( 1689): InCallController: Components updated: [ComponentInfo{com.android.dialer/com.android.incallui.InCallServiceImpl}]: CSW.rE@AUU
12-07 11:19:57.763 I/Dialer (20153): CallList.onUpdateCall - [DialerCall_0, DISCONNECTING, [Capabilities: CAPABILITY_SUPPORT_HOLD CAPABILITY_MUTE], [Properties:], children:[], parent:null, conferenceable:[], videoState:Audio Only, mSessionModificationState:0, CameraDir:-1]
12-07 11:19:57.763 I/Dialer (20153): InCallPresenter.onCallListChange - Phone switching state: INCALL -> INCALL
12-07 11:19:57.769 I/Dialer (20153): InCallFragment.setCallState - PrimaryCallState, state: 9, connectionLabel:
12-07 11:19:57.770 I/Dialer (20153): InCallActivity.showMainInCallFragment - shouldShowAnswerUi: false, shouldShowRttUi: false, shouldShowVideoUi: false didShowAnswerScreen: false, didShowInCallScreen: true, didShowRttCallScreen: false, didShowVideoCallScreen: false
12-07 11:19:57.770 I/Dialer (20153): VideoPauseController.onStateChange - hasPrimaryCallChanged: false, videoCanPause: false, isInBackground: false
12-07 11:19:57.774 I/Dialer (20153): InCallFragment.setCallState - PrimaryCallState, state: 9, connectionLabel:
12-07 11:19:57.774 I/Dialer (20153): InCallActivity.showMainInCallFragment - shouldShowAnswerUi: false, shouldShowRttUi: false, shouldShowVideoUi: false didShowAnswerScreen: false, didShowInCallScreen: true, didShowRttCallScreen: false, didShowVideoCallScreen: false
12-07 11:19:57.782 I/Dialer (20153): CallList.onUpdateCall - [DialerCall_0, DISCONNECTING, [Capabilities: CAPABILITY_SUPPORT_HOLD CAPABILITY_MUTE], [Properties:], children:[], parent:null, conferenceable:[], videoState:Audio Only, mSessionModificationState:0, CameraDir:-1]
12-07 11:19:57.782 I/Dialer (20153): InCallPresenter.onCallListChange - Phone switching state: INCALL -> INCALL
12-07 11:19:57.793 I/Dialer (20153): InCallFragment.setCallState - PrimaryCallState, state: 9, connectionLabel:
12-07 11:19:57.794 I/Dialer (20153): InCallActivity.showMainInCallFragment - shouldShowAnswerUi: false, shouldShowRttUi: false, shouldShowVideoUi: false didShowAnswerScreen: false, didShowInCallScreen: true, didShowRttCallScreen: false, didShowVideoCallScreen: false
12-07 11:19:57.794 I/Dialer (20153): VideoPauseController.onStateChange - hasPrimaryCallChanged: false, videoCanPause: false, isInBackground: false
12-07 11:19:57.801 I/Dialer (20153): InCallFragment.setCallState - PrimaryCallState, state: 9, connectionLabel:
12-07 11:19:57.802 I/Dialer (20153): InCallActivity.showMainInCallFragment - shouldShowAnswerUi: false, shouldShowRttUi: false, shouldShowVideoUi: false didShowAnswerScreen: false, didShowInCallScreen: true, didShowRttCallScreen: false, didShowVideoCallScreen: false
12-07 11:19:57.873 I/QImsService( 5844): ImsRadioResponse : Got hangup response from ImsRadio.
12-07 11:19:57.874 I/QImsService( 5844): ImsSenderRxr : [0018]< HANGUP [SUB0]
12-07 11:19:57.874 I/QImsService( 5844): ImsCallSessionImplHandler : Message received: what = 3
12-07 11:19:57.878 E/hw-Parcel( 5844): Buffer length 16 does not match expected size 40.
12-07 11:19:57.878 W/System.err( 5844): java.util.NoSuchElementException
12-07 11:19:57.878 W/System.err( 5844):	at android.os.HwParcel.readBuffer(Native Method)
12-07 11:19:57.878 W/System.err( 5844):	at vendor.qti.hardware.radio.ims.V1_2.ImsSmsSendStatusReport.readFromParcel(ImsSmsSendStatusReport.java:56)
12-07 11:19:57.878 W/System.err( 5844):	at vendor.qti.hardware.radio.ims.V1_2.IImsRadioIndication$Stub.onTransact(IImsRadioIndication.java:1104)
12-07 11:19:57.878 E/android_os_HwBinder( 5844): Uncaught exception!
12-07 11:19:57.879 D/audio_hw_primary( 984): adev_set_parameters: enter: call_state=1;vsid=297816064
12-07 11:19:57.879 D/voice_extn( 984): update_call_states is_call_active:1 in_call:1, mode:2
12-07 11:19:57.879 D/voice_extn( 984): update_calls: enter:
12-07 11:19:57.879 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10c01000
12-07 11:19:57.879 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10dc1000
12-07 11:19:57.879 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10c02000
12-07 11:19:57.879 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10803000
12-07 11:19:57.879 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10002000
12-07 11:19:57.879 D/voice_extn( 984): update_calls: cur_state=2 new_state=1 vsid=11c05000
12-07 11:19:57.879 D/voice_extn( 984): update_calls: ACTIVE/HOLD/LOCAL_HOLD -> INACTIVE vsid:11c05000
12-07 11:19:57.879 D/voice ( 984): voice_stop_usecase: enter usecase:voicemmode1-call
12-07 11:19:57.879 D/voice ( 984): voice_set_sidetone: disable, out_snd_device: 16
12-07 11:19:57.888 D/audio_hw_primary( 984): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: suspend_playback=true
12-07 11:19:57.919 D/audio_hw_primary( 984): disable_audio_route: reset and update mixer path: voicemmode1-call speaker
12-07 11:19:57.922 D/soundtrigger( 984): audio_extn_sound_trigger_update_stream_status: uc_info->id 36 of type 2 for Event 2, with Raise=1
12-07 11:19:57.922 D/soundtrigger( 984): audio_extn_sound_trigger_update_stream_status: send event 12: usecase id 36, type 2
12-07 11:19:57.922 I/sound_trigger_platform( 984): platform_stdev_check_and_update_concurrency: Received STREAM event, event type 12, usecase type 2
12-07 11:19:57.922 D/sound_trigger_platform( 984): platform_stdev_check_and_update_concurrency: dedicated path 0, reset backend 1, tx 1, rx 0,concurrency session not allowed
12-07 11:19:57.922 D/hardware_info( 984): hw_info_append_hw_type : device_name = voice-speaker
12-07 11:19:57.922 D/hardware_info( 984): hw_info_append_hw_type : device_name = voice-speaker-qmic
12-07 11:19:57.922 D/audio_hw_primary( 984): disable_snd_device: snd_device(104: voice-speaker-qmic)
12-07 11:19:57.922 D/msm8974_platform( 984): platform_split_snd_device: snd_device(104) num devices(0) new_snd_devices(0)
12-07 11:19:57.938 I/soundtrigger( 984): audio_extn_sound_trigger_update_device_status: device 0x68 of type 1 for Event 0, with Raise=1
12-07 11:19:57.938 I/sound_trigger_platform( 984): platform_stdev_check_and_update_concurrency: Received DEVICE event, event type 0
12-07 11:19:57.938 D/sound_trigger_platform( 984): platform_stdev_check_and_update_concurrency: dedicated path 0, reset backend 1, tx 0, rx 0,concurrency session allowed
12-07 11:19:57.938 D/voice ( 984): voice_stop_usecase: exit: status(0)
12-07 11:19:57.938 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=11dc5000
12-07 11:19:57.938 D/audio_hw_extn( 984): audio_extn_set_anc_parameters: anc_enabled:0
12-07 11:19:57.938 D/audio_hw_spkr_prot( 984): audio_extn_fbsp_set_parameters: Speaker protection disabled
12-07 11:19:57.938 D/audio_hw_extn( 984): audio_extn_set_anc_parameters: anc_enabled:0
12-07 11:19:57.938 D/audio_hw_spkr_prot( 984): audio_extn_fbsp_set_parameters: Speaker protection disabled
12-07 11:19:57.947 D/audio_hw_primary( 984): adev_set_parameters: enter: call_state=1;vsid=297816064
12-07 11:19:57.947 D/voice_extn( 984): update_call_states is_call_active:0 in_call:1, mode:2
12-07 11:19:57.947 D/voice_extn( 984): update_calls: enter:
12-07 11:19:57.947 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10c01000
12-07 11:19:57.947 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10dc1000
12-07 11:19:57.947 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10c02000
12-07 11:19:57.947 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10803000
12-07 11:19:57.947 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10002000
12-07 11:19:57.947 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=11c05000
12-07 11:19:57.947 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=11dc5000
12-07 11:19:57.947 D/audio_hw_extn( 984): audio_extn_set_anc_parameters: anc_enabled:0
12-07 11:19:57.947 D/audio_hw_spkr_prot( 984): audio_extn_fbsp_set_parameters: Speaker protection disabled
12-07 11:19:57.952 D/audio_hw_primary( 984): adev_set_parameters: enter: call_state=1;vsid=297816064
12-07 11:19:57.952 D/voice_extn( 984): update_call_states is_call_active:0 in_call:1, mode:2
12-07 11:19:57.952 D/voice_extn( 984): update_calls: enter:
12-07 11:19:57.952 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10c01000
12-07 11:19:57.952 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10dc1000
12-07 11:19:57.952 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10c02000
12-07 11:19:57.952 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10803000
12-07 11:19:57.952 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=10002000
12-07 11:19:57.952 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=11c05000
12-07 11:19:57.952 D/voice_extn( 984): update_calls: cur_state=1 new_state=1 vsid=11dc5000
12-07 11:19:57.952 D/audio_hw_extn( 984): audio_extn_set_anc_parameters: anc_enabled:0
12-07 11:19:57.952 D/audio_hw_spkr_prot( 984): audio_extn_fbsp_set_parameters: Speaker protection disabled
12-07 11:19:58.939 D/audio_hw_primary( 984): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: suspend_playback=false
12-07 11:19:58.939 D/audio_hw_extn( 984): audio_extn_set_anc_parameters: anc_enabled:0
12-07 11:19:58.939 D/audio_hw_spkr_prot( 984): audio_extn_fbsp_set_parameters: Speaker protection disabled
12-07 11:19:58.967 D/audio_hw_primary( 984): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: suspend_playback=true
12-07 11:19:58.967 D/audio_hw_extn( 984): audio_extn_set_anc_parameters: anc_enabled:0
12-07 11:19:58.968 D/audio_hw_spkr_prot( 984): audio_extn_fbsp_set_parameters: Speaker protection disabled
12-07 11:19:59.419 I/vendor.qti.bluetooth@1.0-ibs_handler( 989): ProcessIbsCmd: Received IBS_WAKE_IND: 0xFD
12-07 11:19:59.419 D/vendor.qti.bluetooth@1.0-ibs_handler( 989): SerialClockVote: vote for UART CLK ON
12-07 11:19:59.420 D/vendor.qti.bluetooth@1.0-wake_lock( 989): Acquire wakelock is acquired
12-07 11:19:59.420 I/vendor.qti.bluetooth@1.0-ibs_handler( 989): ProcessIbsCmd: Writing IBS_WAKE_ACK
12-07 11:19:59.461 I/vendor.qti.bluetooth@1.0-ibs_handler( 989): ProcessIbsCmd: Received IBS_SLEEP_IND: 0xFE
12-07 11:19:59.461 D/vendor.qti.bluetooth@1.0-ibs_handler( 989): SerialClockVote: vote for UART CLK OFF
12-07 11:19:59.597 I/BgTaskExecutorImpl(27607): Starting EXCLUSIVE background task FETCH_OPT_IN_STATUSES.
12-07 11:19:59.611 D/vendor.qti.bluetooth@1.0-wake_lock( 989): Release wakelock is released
12-07 11:19:59.695 I/BgTaskExecutorImpl(27607): Starting EXCLUSIVE background task NOW_UPDATE_GCM_REGISTRATION.
12-07 11:19:59.713 W/SearchServiceCore(27607): Abort, client detached.
12-07 11:19:59.733 I/OptInChecker(27607): getSettingsStatusMap(): udcCacheApi is available.
12-07 11:19:59.734 W/OptInChecker(27607): Missing cached UDC setting for NOW_CARDS
12-07 11:19:59.734 I/OptInChecker(27607): Falling back to non-UDC sources
12-07 11:19:59.734 I/OptInChecker(27607): Setting = NOW_CARDS, optedInt = false
12-07 11:19:59.766 I/OptInChecker(27607): getSettingsStatusMap(): udcCacheApi is available.
12-07 11:19:59.904 I/MicroDataManager(27607): isInitializing-false locale not changed-true model not changed-true
12-07 11:19:59.969 D/audio_hw_primary( 984): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: suspend_playback=false
12-07 11:19:59.969 D/audio_hw_extn( 984): audio_extn_set_anc_parameters: anc_enabled:0
12-07 11:19:59.969 D/audio_hw_spkr_prot( 984): audio_extn_fbsp_set_parameters: Speaker protection disabled