I've noticed odd behavior on my reference app that I'm making for Android using liblinphone (not the linphone app) resulting in the device locking up when on an LTE or 3G connection.
- Device I'm testing on is an Android Nexus 6P, Marshmallow
- Using Liblinphone 3.9.1 for Android
- The linphone core is running in a backround service. All calls to linphonecore.iterate() are running in a single thread scheduled executor with 200ms delay. All calls to core methods are passed to the same executor thread.
1) Linphone android client makes a IP to a circuit switch call to a mobile number.
2) Mobile client will respond and a call session is established normally.
3) Mobile client will end the call
4) Linphone android client receives a terminate->end, but does NOT get a release event. Android client will still continue to think there is an on going audio stream until I trigger linphoneCall.terminateCall().
However, I think there is something that is not released at the kernel level which causes the device to lock up. Normally when I get a release event, CPU/Kernel usage goes down to 0%. When this situation happens, it initially hovers at 10 to 15% and then gets regular spikes to 100% at which point the device is locked up. Strangely, this seems to happen when Android client is on LTE.
Have you experienced similar situations before? Is there any way to Android client recover from this situation?