doneservices / flutter_callkeep

iOS CallKit and Android ConnectionService bindings for Flutter
57 stars 38 forks source link

iOS outbound call timer not working #70

Open melio-matt opened 4 weeks ago

melio-matt commented 4 weeks ago

Hello

I'm using sip_ua and if I place a call it then provides a callback to say the call is initiating. At this point I call startCall on flutter_callkeep. If I then return to the home screen I will the dynamic island has a call in progress but the timer will still be a zero.

I added the flutter_callkeep a call to sharedProvider?.reportOutgoingCall in CallKit which I call when the call has been answered, however this does not result in the timer being started either. When going to the native phone screen it seems that CallKit thinks the call is still in the connecting phase.

From what I can see in the readme and the example there is only a call to startCall. Am I missing some other step?

I also added in an update call for iOS as for inbound calls the server does not send me the caller's name and so I need to do a local lookup after flutter_callkeep has signalled the incoming call to CallKit. This works well and updates with the name I find in my lookup.

melio-matt commented 3 weeks ago

I can see the sharedProvider?.reportOutgoingCall is something that has been implemented in the provider callback in SwitftCallKeepPlugin by attaching functions in the Call object.

How are these methods meant to be called? More basically how after starting a call from the Flutter side can I then call to say the call is connecting or been answered?

melio-matt commented 3 weeks ago

I've managed to get the timer working by changing by call of sharedProvider?.reportOutgoingCall to be the one with the connectedAt argument. I've also managed to get it to work getting the Call from the call manager and setting the connectedData field which calls the call backs. Both of these have been using my own function that I've added to the plugin. However I cannot see anyway of doing this from the Flutter side, am I missing something?