QuickBlox / quickblox-ios-sdk

QuickBlox iOS SDK for messaging and video calling
https://quickblox.com/developers/IOS
MIT License
397 stars 359 forks source link

Web to iOS call is not Connecting #1357

Closed RaviGautam closed 1 year ago

RaviGautam commented 1 year ago

Hi Team,

I am using the following SDKs for iOS- pod 'QuickBlox','2.17.4' pod 'Quickblox-WebRTC','2.7.5'

I also tried the following latest iOS versions as well but same issue. QuickBlox (2.19.0) Quickblox-WebRTC (2.8.1)

And using the following JS SDK for Web- https://github.com/QuickBlox/quickblox-javascript-sdk/releases/tag/2.12.6

I am calling from Web to iOS and getting an error to set the answer due to one extra parameter coming from the Web i.e.

a=extmap-allow-mixed

I am successfully able to connect call iOS to iOS and iOS to Web but not the Web to iOS

Here is the complete log of the error when accepting the call from the Web to iOS-

<sdp>v=0 o=- 7659755522196448755 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE 0 a=extmap-allow-mixed a=msid-semantic: WMS 95dd650a-07fb-4b2b-8753-964fad49fa0c m=audio 53805 UDP/TLS/RTP/SAVPF 111 63 103 9 0 8 105 13 110 113 126 c=IN IP4 206.189.91.108 a=rtcp:9 IN IP4 0.0.0.0 a=candidate:2128419428 1 udp 2122260223 192.168.1.9 50718 typ host generation 0 network-id 1 network-cost 50 a=candidate:3325332814 1 udp 1686052607 180.188.224.206 30442 typ srflx raddr 192.168.1.9 rport 50718 generation 0 network-id 1 network-cost 50 a=candidate:1243388 1 tcp 1518280447 192.168.1.9 9 typ host tcptype active generation 0 network-id 1 network-cost 50 a=candidate:3805370878 1 udp 41885695 206.189.91.108 53805 typ relay raddr 180.188.224.206 rport 30442 generation 0 network-id 1 network-cost 50 a=candidate:2619259750 1 udp 25108223 206.189.91.108 56956 typ relay raddr 180.188.224.206 rport 2563 generation 0 network-id 1 network-cost 50 a=ice-ufrag:hlZ2 a=ice-pwd:2qKOHrENlnQ5zoOCllVrZQKI a=ice-options:trickle a=fingerprint:sha-256 00:2B:0A:EA:32:78:DD:BE:F3:E6:00:7A:0D:1C:43:AF:0D:0A:2F:C6:F7:25:51:CB:B2:25:54:DB:1E:E4:65:5D a=setup:actpass a=mid:0 a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid a=sendrecv a=msid:95dd650a-07fb-4b2b-8753-964fad49fa0c c4bb4e88-a156-4b26-8d63-35156daad3df a=rtcp-mux a=rtpmap:111 opus/48000/2 a=rtcp-fb:111 transport-cc a=fmtp:111 minptime=10;useinbandfec=1 a=rtpmap:63 red/48000/2 a=fmtp:63 111/111 a=rtpmap:103 ISAC/16000 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:105 CN/16000 a=rtpmap:13 CN/8000 a=rtpmap:110 telephone-event/48000 a=rtpmap:113 telephone-event/16000 a=rtpmap:126 telephone-event/8000 a=ssrc:1317064716 cname:c6VKzyZCYztvEfyK a=ssrc:1317064716 msid:95dd650a-07fb-4b2b-8753-964fad49fa0c c4bb4e88-a156-4b26-8d63-35156daad3df </sdp><moduleIdentifier>WebRTCVideoChat</moduleIdentifier><signalType>call</signalType><platform>web</platform></extraParams></message> 2023-08-11 15:35:42.582 rtc::[Signaling Processor] - Did receive signal: call from: 138186370 2023-08-11 15:35:42.583 rtc::[PCON]<138186370, R:Answer> Create answer (webrtcsdp.cc:370): Failed to parse: "a=extmap-allow-mixed". Reason: Expects at least 2 fields. (RTCLogging.mm:31): (RTCSessionDescription.mm:61 -[RTCSessionDescription nativeDescription]): Failed to create session description: Expects at least 2 fields. line: a=extmap-allow-mixed 2023-08-11 15:35:42.585 rtc::[PCON]<138186370, R:Answer> Set remote session description 2023-08-11 15:35:42.585 rtc::[Connection] Start answer error: Error Domain=org.webrtc.RTCPeerConnection Code=-1 "SessionDescription is NULL." UserInfo={NSLocalizedDescription=SessionDescription is NULL.}

Any help would be appreciated.

Thanks

VladimirNybozhinsky commented 1 year ago

@RaviGautam Hi This is Vladimir from QuickBlox.

Information about quick start with JS Video Calling can be found in the Quickblox documentation. If this doesn't solve your problem, please provide more information and logs.

To help us with your case we request the following points:

  1. When did this issue happen? Did the issue happen before or after implementing recent changes into your code?
 2. What platforms is this issue for: Android, iOS or Web?
 3. What SDK versions are you using for each platform?
Please make sure that you use the latest version of iOS/Android/JavaScript/React Native/Flutter SDK.
Here is the link to download
  2. Is this issue intermittent or permanent?
 5. What are the steps to reproduce on our side?
 6. Did you get this issue in your code or on samples?
 7. Please try to reproduce the issue on our samples in order to understand if the issue is related to the client-side implementation or server-side performance.
 8. Please provide us with full REST + XMPP + WebRTC logs (from Xcode/ Android studio/ other) as an attachment to this ticket in .txt format. There should be QB SDKs logs from application start till request and "wrong" response (error).
You can find out how to gather logs here: Gathering logs guides - QuickBlox Help Center

You need to add the following information in addition:

  1. Version of QuickBlox React Native SDK.
  2. Platform where the issue is reproduced (Android, iOS, or both).
  3. Version of the platform (e.g. Android 11, iOS 13).
  4. Devices in use (e.g. Redmi 8, iPhone 12).
  5. React Native version.
  6. Information from react-native info.
  7. Information from npm list.

Try to test the problem on our samples, such IOS Videochat and JS Videochat.

Also pay attention to the content of the logs that you sent, they contain a description of the problem why the IOS side cannot make a call to the Web side: "Failed to create session description: Expects at least 2 fields. line: a=extmap-allow-mixed 2023-08-11 15:35:42.585 rtc::[PCON]<138186370, R:Answer> Set remote session description 2023-08-11 15:35:42.585 rtc::[Connection] Start answer error: Error Domain=org.webrtc.RTCPeerConnection Code=-1 "SessionDescription is NULL." UserInfo={NSLocalizedDescription=SessionDescription is NULL.}"

Best regards, Vladimir

PS: I invite you to join our discord: https://discord.com/channels/1042743094833065985/1047415850354884638

RaviGautam commented 1 year ago

Hi @VladimirNybozhinsky , Thanks for your reply. I have provided all the details about the platform, versions, and scenarios.

And you mention that the error has all the related information to fix the issue, but there is no provision to set the session description manually, which is not accessible. Any help would be appreciated.

Thanks

VladimirNybozhinsky commented 1 year ago

@RaviGautam Hi! Have you tried to reproduce the problem on our samples? IOS Videochat and JS Videochat.

VladimirNybozhinsky commented 1 year ago

I noticed that you are not using the current version of js sdk. Please update the SDK to the latest version. https://github.com/QuickBlox/quickblox-javascript-sdk/releases/tag/2.15.5

This should solve your problem. We have fixed this known issue in the current versions of the SDK, as not all platforms support this option yet.

`/**

Best regards, Vladimir

RaviGautam commented 1 year ago

Thanks @VladimirNybozhinsky, Sorry, I did not try the samples. I am already working to update our JS SDK for Web. I will let you know when its done. Thanks