[iOS] Poor call quality on iOS with a lot of jittery
Issue Summary
Hey when I make a call from/to iOS the quality of the call is very poor. I've tested it using Android and Web and it worked well.
I've also used the twilio_voice_quickstart just to make sure that the problems wasn't with the iOS package it self, and it's working fine.
Do you know how can I solve this? Am I the only one experiencing it?
Steps to Reproduce
- Make a call from/to an iOS device
Any other relevant information. For example, why do you consider this a bug and what did you expect to happen instead?
I'm using IPhone 13 Pro Max with iOS 17.4.1
I've discover that this issue is being cause by listening to the isHolding event, since is trigger the Hold function in the iOS code
Did you find a solution for this? Facing the same issue. Here's what it looks like for me:
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
flutter: voip-onCallStateChanged CallEvent.unhold
flutter: voip-onCallStateChanged CallEvent.hold
@kirilllapshev by the way this issue is probably a dupe of #207 the maintainer has commented on that one also
Hey @jd-bus as I inspected the code the error lays in the iOS layer in the isOnHold event, that is triggering hold()
Here is the problem https://github.com/cybex-dev/twilio_voice/blob/master/ios/Classes/SwiftTwilioVoicePlugin.swift#L234-L236 when we listen to isOnHold we are not supposed to toggle call.isOnHold flag
@cybex-dev is there any specific reason to toggle it?
Hey @jd-bus as I inspected the code the error lays in the iOS layer in the isOnHold event, that is triggering hold()
Here is the problem https://github.com/cybex-dev/twilio_voice/blob/master/ios/Classes/SwiftTwilioVoicePlugin.swift#L234-L236 when we listen to isOnHold we are not supposed to toggle
call.isOnHoldflag@cybex-dev is there any specific reason to toggle it?
Great spotting, thank you!
Yes - this is erroneous and should not be toggled. I'll address in next update.