You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using Twilio Video SDK with CallKit integration in iOS VoIP applications, the speaker button visual state does not persist correctly when users interact with the native CallKit interface. Audio routing continues to work correctly (audio is routed through speaker), but the UI state becomes desynchronized, showing speaker as "off" when it's actually "on".
Environment Details
Twilio Video SDK Version: 5.9.0
iOS Version: iOS 17.0+ (tested on multiple versions)
Xcode Version: 16.4
Device Type: iPhone 13
Language: Swift
Integration: CallKit + Twilio Video SDK
Problem Description
During an active VoIP call using Twilio Video SDK with CallKit integration:
User starts a VoIP call (audio)
User switches to the native Phone app interface (CallKit UI)
User taps the speaker button in the native interface
Expected: Audio routes to speaker AND speaker button remains visually selected
Actual: Audio routes to speaker correctly BUT speaker button visual state reverts to unselected
Reproduction Steps
Create a VoIP app using Twilio Video SDK with CallKit integration
Start a VoIP call (audio)
Switch to the native Phone app interface (swipe up or use CallKit UI)
Tap the speaker button in the native interface
Observe that:
Audio correctly routes to speaker
Speaker button visual state briefly shows as selected
Speaker button visual state reverts to unselected after ~0.5-1 seconds
Technical Details
I reviewed the sample application and applied the necessary modifications to enforce to route audio output through the speaker. Despite these changes, the issue seems to be also present in the sample app.
You can find the sample code that was implemented to test here in my fork:
This issue affects all VoIP applications using Twilio Video SDK with CallKit integration. The workarounds are complex and don't provide a complete solution.
Issue Summary
When using Twilio Video SDK with CallKit integration in iOS VoIP applications, the speaker button visual state does not persist correctly when users interact with the native CallKit interface. Audio routing continues to work correctly (audio is routed through speaker), but the UI state becomes desynchronized, showing speaker as "off" when it's actually "on".
Environment Details
Problem Description
During an active VoIP call using Twilio Video SDK with CallKit integration:
Reproduction Steps
Technical Details
I reviewed the sample application and applied the necessary modifications to enforce to route audio output through the speaker. Despite these changes, the issue seems to be also present in the sample app.
You can find the sample code that was implemented to test here in my fork:
tc-fborges#1
Sample Video
Grabacion.de.pantalla.2025-07-18.a.la.s.11.37.20.a.m.mov
Additional Context
This issue affects all VoIP applications using Twilio Video SDK with CallKit integration. The workarounds are complex and don't provide a complete solution.
Reporter: Fernando Borges
Date: July, 18th. 2025