QuickBlox / quickblox-react-native-samples

quickblox-react-native-samples
BSD 3-Clause "New" or "Revised" License
17 stars 27 forks source link

Quickblox voice/audio issue #56

Open ahsanbhatti98 opened 1 year ago

ahsanbhatti98 commented 1 year ago

Hello,

I've successfully integrated the QuickBlox 1-1 video and audio call SDK into my React Native app, following the provided sample code in the documentation. However, I'm encountering some critical issues that require immediate assistance.

The primary problem is related to cross-platform communication. When making calls from Android to Android, both audio and video work seamlessly.Also when IOS users call Android user it is also working fine. However, when calling from an Android device to an iOS device, the recipient on iOS cannot hear the sender's audio. Additionally, when iOS users call each other, there are sporadic issues with voice transmission – it works intermittently.

These issues are impeding my app's release schedule, and I'm seeking help on GitHub to collaborate with the QuickBlox community to find a solution. Your expertise and support in resolving these voice-related problems would be greatly appreciated.

Thank you in advance for your assistance, and I look forward to working with the GitHub community to address these issues.

ahsanbhatti98 commented 1 year ago

That's package.json of react native app "dependencies": { "@react-native-async-storage/async-storage": "^1.13.3", "@react-native-community/masked-view": "^0.1.10", "@react-native-community/netinfo": "^6.0.0", "@react-navigation/native": "^6.0.2", "@react-navigation/native-stack": "^6.1.0", "@react-navigation/stack": "^6.0.7", "final-form": "^4.20.0", "quickblox-react-native-sdk": "^0.9.1", "react": "17.0.2", "react-final-form": "^6.5.0", "react-native": "0.68.5", "react-native-callkeep": "^4.0.1", "react-native-flash-message": "^0.1.15", "react-native-gesture-handler": "^1.8.0", "react-native-incall-manager": "^3.3.0", "react-native-permissions": "^3.3.1", "react-native-push-notification": "^8.1.1", "react-native-reanimated": "^2.8.0", "react-native-safe-area-context": "^3.1.7", "react-native-screens": "^3.6.0", "react-native-voip-push-notification": "^3.1.0", "react-redux": "^7.2.0", "redux": "^4.0.5", "redux-logger": "^3.0.6", "redux-persist": "^6.0.0", "redux-saga": "^1.1.3", "reselect": "^4.1.5" }, Steps to reproduce this issue : Prepare two Android and two iOS devices. Set up the sample code from the GitHub repository (https://github.com/QuickBlox/quickblox-react-native-samples/tree/master/webrtc-sample). Adjust the config file as needed and run the app. Build and install the APK and IPA on both devices using the provided sample code. Upon testing, you'll notice the following:

Audio and video calls from Android to Android work seamlessly. Calls from iOS to Android also function properly. However, when calling from an Android device to an iOS device while the app is in the foreground, audio is not transmitted (Note: Ensure you do not accept calls through CallKit VoIP; accept them within the app). Additionally, calls from iOS to iOS experience intermittent audio issues. We appreciate your assistance and any insights on resolving these challenges.

elangovansword commented 1 year ago

We have a similar issue for calls from web browser to iOS devices. There is no audio. We noticed the following in the iOS device logs. There is an audio interruption and a change of route to output that is not set to anything. Could this be the issue?

React Native SDK version: quickblox-react-native-sdk 0.9.4

(RTCLogging.mm:31): (RTCAudioSession.mm:477 -[RTCAudioSession handleInterruptionNotification:]): Audio session interruption began.\ 2023-11-07 21:16:45.717 rtc::[QBRTCAudioSession] Did begin interruption.\ (RTCLogging.mm:31): (RTCAudioSession.mm:504 -[RTCAudioSession handleRouteChangeNotification:]): Audio route changed:\ (RTCLogging.mm:31): (RTCAudioSession.mm:517 -[RTCAudioSession handleRouteChangeNotification:]): Audio route changed: CategoryChange to :AVAudioSessionCategorySoloAmbient\ (RTCLogging.mm:31): (RTCAudioSession.mm:536 -[RTCAudioSession handleRouteChangeNotification:]): Previous route: <AVAudioSessionRouteDescription: 0x282673e30, \ inputs = (\ ); \ outputs = (\ "<AVAudioSessionPortDescription: 0x282673fe0, type = Speaker; name = Speaker; UID = Speaker; selectedDataSource = (null)>"\ )>\ Current route:<AVAudioSessionRouteDescription: 0x28267fd20, \ inputs = (\ ); \ outputs = (\ )>\