voximplant / flutter_callkit

Flutter SDK for CallKit integration to Flutter applications on iOS
MIT License
53 stars 18 forks source link

iOS 16 CallKit closes after 60 seconds #29

Open AndreyKomarichev10 opened 1 year ago

AndreyKomarichev10 commented 1 year ago

On iOS 16 devices, CallKit closes after 60 seconds. In previous versions of iOS (14, 15), it could be displayed for 90 seconds, and then we closed it by ourselves. We have tried other packages for CallKit, but they still have the same issue. Have anyone faced the same issue and knows how to bypass it?

UPD: logs that we get when CallKit is finished

flutter: [[FlutterCallKit.INFO](http://fluttercallkit.info/)] FCXProvider > executeTransaction
flutter: [[FlutterCallKit.INFO](http://fluttercallkit.info/)] FCXTransaction > getActions
flutter: [[FlutterCallKit.INFO](http://fluttercallkit.info/)] FCXProvider > FCXEndCallAction
flutter: [[FlutterCallKit.INFO](http://fluttercallkit.info/)] FCXProvider > reportCallEnded
flutter: [[FlutterCallKit.INFO](http://fluttercallkit.info/)] FCXEndCallAction > fulfill
flutter: [[FlutterCallKit.INFO](http://fluttercallkit.info/)] FCXCallObserver > callChanged

I assume, that we are getting declined events from the system.

AndreyKomarichev10 commented 1 year ago

I've removed handling of declined events, but CallKit is still closed after 60 seconds. So, I think, we are getting declined events from the system, and the system closes callKit on the decline even if we haven’t told so. Our logs:

FlutterCallKit.performEndCallAction has been called
New Call Kit VoIP messages action = VoipAction.declined has been received
YesVladess commented 1 year ago

Hello, we investigated you case, and it seems, that you are right, Apple did add 60 sec timeout for incoming call in iOS 16 vs lower versions, where there was no timeout at all. This is undocumented change, and since the call is ending after 60 sec no matter what we do, i am afraid there is no way to bypass this new restriction.