twilio / twilio-video-app-ios

A collaboration application built with the Twilio Video iOS SDK
Apache License 2.0
246 stars 54 forks source link

Add CallKit support #212

Closed timrozum closed 2 years ago

timrozum commented 2 years ago

Use CallKit to integrate the Twilio video call with the system call interface.

CallKit provides these benefits:

  1. Previously if the app was not playing or recording audio and it moved to the background, it would be suspended. This would end the video call with no warning to the user. CallKit will prevent the app from being suspended in the background.
  2. CallKit increases the audio priority of the app so that calls are not interrupted by media apps or games.
  3. Interruptions from other calling apps are handled better. The video call is put on hold instead of being suspended and disconnected with no warning to the user.

These are some of the cases I tested:

  1. Room disconnects with error when the user is on the system call screen and another calling app is on hold.
  2. Room disconnects with error when the video call is on hold.
  3. Room disconnects with error when the app is in the foreground.
  4. User ends call from the system call UI.
  5. User ends call in the app.
  6. The app is interrupted by a PSTN call.
  7. The app is interrupted by a VOIP call.
  8. Playing music from another app does not interrupt the video call.
  9. Switch between 2 calls using the system call UI.