Friday 15 July 2016

Developing ePDG/(P/I/S)-SCSF : Problem enabling WiFi Calling on HTC-10



I realize this is a big ask but I'm hitting a brick wall and looking for some suggestions.

I am developing a Wifi Calling feature for an MVNO.
Wifi calling is basically IMS over an untrusted Wifi network and is fully specified in 3GPP.
I have built all the network subsystems needs (ePDG, P-SCSF, I-SCSF,S-SCSF) and have access to the HSS for authentication.

I have been using a Samsung Galaxy S5 (SM-G901F) with an Orange ROM and after some minor configuration tweaks in ims_config_data.db I can get Wifi Calling enabled, point it to my ePDG and it works great.

So I'm now trying to get the same functionality working on the HTC-10. I bought the device directly from HTC.
When I use an EE SIM card, Wifi calling option is present in the Call settings and Wifi calling works fine.

When I use my MVNO SIM card, first problem WiFi calling option was absent. I fixed this easy enough by tweaking the files in /system/customize/MNSprop. So now I have the WiFi Calling menu item back. However I can't enable it. It is not greyed out but when I select the checkbox, the tick appears and disappears immediately. There is very little to see in adb logcat


Code:


07-15 18:16:57.153  2430  2430 D WFCSwitchPreference: onCheckedChanged isChecked: true
07-15 18:16:57.154  2430  2430 D WFCSwitchPreference: isWarningWFC:false
07-15 18:16:57.154  2430  7674 D WFCSwitchPreference: EVENT_SET_WFC_STATUS_PREFERENCE sWFCStatusCurr = 0, sWFCStatusNew = 1, sWFCPreferenceCurr = 0
07-15 18:16:57.163  2430  7674 I WFCSwitchPreference: EVENT_SET_WFC_STATUS_PREFERENCE pref = -1
07-15 18:16:57.164  2430  2430 D WFCSwitchPreference: onBindView
07-15 18:16:57.164  2430  2430 D WFCSwitchPreference: onBindView mControlEnable = false, sWFCStatusCurr = 0
07-15 18:16:57.165  6347  6357 D WFCPhoneProvider: wfcphonesettings <- name=PREFERRED_OPTION value=-1
07-15 18:16:57.167  2430  7674 I WFCSwitchPreference: EVENT_SET_WFC_STATUS_PREFERENCE delete last selected mode = true
07-15 18:16:57.188  2430  7674 I WFCSwitchPreference: EVENT_SET_WFC_STATUS_PREFERENCE result = false
07-15 18:16:57.202  2430  2430 D WFCSwitchPreference: mMainHandler.handleMessage: UI_MSG_SET_CONTROL mCheckBoxView: android.widget.CheckBox{f38020f V..D..C.. ......ID 1248,64-1376,235 #7f11011c app:id/checkbox}
07-15 18:16:57.203  2430  2430 D WFCSwitchPreference: onCheckedChanged isChecked: false
07-15 18:16:57.213  2430  2430 D WFCSwitchPreference: onBindView
07-15 18:16:57.213  2430  2430 D WFCSwitchPreference: onBindView mControlEnable = true, sWFCStatusCurr = 0



I've tried comparing the good situation with the EE SIM and the bad situation with the MVNO SIM and I've come to a conclusion that the main difference is that neither imscmservice or ims_rtp_daemon is running on the bad SIM. Both these processes are started when property sys.ims.DATA_DAEMON_STATUS = 1. (according to init.target.rc)


What I can't figure out is what triggers DATA_DAEMON_STATUS to bet set to 1.


If anyone has got any suggestions I'd be very happy to try.

Thanks for reading.



No comments:

Post a Comment