Reputation: 2871
I'm trying to create an iOS application with video chat, using QuickBlox-WebRTC.
My controller is a QBRTCClientDelegate
and everything seems to work "kind of well". The following calls are hit (not in order):
didReceiveNewSession
initializedLocalMediaStream
receivedRemoteVideoTrack
acceptedByUser
But unfortunately, startedConnectingToUser
and connectedToUser
never happens.
On the caller side, I see the following in the logs:
2016-02-09 23:28:38:105 TestProject[1194:4052297] rtc::Did receive signal: accept from: 8760016
2016-02-09 23:28:38:158 TestProject[1194:4052328] rtc::Did receive signal: iceCandidates from: 8760016
2016-02-09 23:28:38:259 TestProject[1194:4052295] rtc::Did receive signal: iceCandidates from: 8760016
2016-02-09 23:28:38:262 TestProject[1194:4052295] rtc::Did receive signal: iceCandidates from: 8760016
2016-02-09 23:28:38:318 TestProject[1194:4052295] rtc::Did receive signal: iceCandidates from: 8760016
2016-02-09 23:28:38:412 TestProject[1194:4052327] rtc::Did receive signal: iceCandidates from: 8760016
2016-02-09 23:28:40:878 TestProject[1194:4052297] rtc::<Peer:0x155793250, UID:8760016, r:Offer> Send local offer sdp
2016-02-09 23:28:45:839 TestProject[1194:4052297] rtc::<Peer:0x155793250, UID:8760016, r:Offer> Send local offer sdp
2016-02-09 23:28:50:876 TestProject[1194:4052299] rtc::<Peer:0x155793250, UID:8760016, r:Offer> Send local offer sdp
2016-02-09 23:28:55:865 TestProject[1194:4052297] rtc::Close connection for user 8760016
2016-02-09 23:28:55:866 TestProject[1194:4052297] rtc::Invalidate timer:dialing timer, background task id 5 ...
2016-02-09 23:28:55:874 TestProject[1194:4052308] rtc::<Peer:0x155793250, UID:8760016, r:Offer> Renegotiation needed
2016-02-09 23:28:55:876 TestProject[1194:4052297] rtc::<Peer:0x155793250, UID:8760016, r:Offer> Remove local media stream: [com.quickblox.mediastream.device-iphone.6.plus_ios-9.2.1_userid-8762474]:A=1:V=1]
2016-02-09 23:28:55.897 TestProject[1194:4052297] dealloc QBRTCLocalAudioTrack
2016-02-09 23:28:55:896 TestProject[1194:4052297] rtc::<Peer:0x155793250, UID:8760016, r:Offer> Ice connection change:Closed
2016-02-09 23:28:55.897 TestProject[1194:4052297] dealloc QBRTCLocalVideoTrack
2016-02-09 23:28:55:898 TestProject[1194:4052307] rtc::Stop rtc video capturer
2016-02-09 23:28:55.902 TestProject[1194:4052297] Destroy local media stream
2016-02-09 23:28:55:902 TestProject[1194:4052297] rtc::<Peer:0x155793250, UID:8760016, r:Offer> Signaling state changed: Closed
2016-02-09 23:28:55:902 TestProject[1194:4052297] rtc::Destroy dialing timer
On the callee side, I see the following:
2016-02-09 23:28:36:418 TestProject[97959:2233683] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Signaling state changed: Stable
2016-02-09 23:28:36:418 TestProject[97959:2233683] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Send queued ICE candidates, count: 0
2016-02-09 23:28:37:500 TestProject[97959:2233685] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> ICE gathering changed: Gathering
2016-02-09 23:28:37:500 TestProject[97959:2234170] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Set session description
2016-02-09 23:28:37:500 TestProject[97959:2234170] rtc::Send Answer: <Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer>
2016-02-09 23:28:37:500 TestProject[97959:2234170] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Queued ICE candidates, count: 0
2016-02-09 23:28:37:500 TestProject[97959:2234170] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Send queued ICE candidates, count: 1
2016-02-09 23:28:37:612 TestProject[97959:2234066] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Queued ICE candidates, count: 0
2016-02-09 23:28:37:613 TestProject[97959:2234066] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Send queued ICE candidates, count: 1
2016-02-09 23:28:37:706 TestProject[97959:2234170] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Queued ICE candidates, count: 0
2016-02-09 23:28:37:706 TestProject[97959:2234170] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Send queued ICE candidates, count: 1
2016-02-09 23:28:37:881 TestProject[97959:2234173] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Queued ICE candidates, count: 0
2016-02-09 23:28:37:881 TestProject[97959:2234173] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Send queued ICE candidates, count: 1
2016-02-09 23:28:38:131 TestProject[97959:2233685] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> ICE gathering changed: Complete
2016-02-09 23:28:38:132 TestProject[97959:2234172] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Queued ICE candidates, count: 0
2016-02-09 23:28:38:132 TestProject[97959:2234172] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Send queued ICE candidates, count: 1
2016-02-09 23:28:41:914 TestProject[97959:2234172] rtc::Did receive signal: call from: 8762474
2016-02-09 23:28:41:914 TestProject[97959:2234172] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Queued Remote SDP
2016-02-09 23:28:46:708 TestProject[97959:2234172] rtc::Did receive signal: call from: 8762474
2016-02-09 23:28:46:709 TestProject[97959:2234170] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Queued Remote SDP
2016-02-09 23:28:51:891 TestProject[97959:2234170] rtc::Did receive signal: call from: 8762474
2016-02-09 23:28:51:891 TestProject[97959:2233683] rtc::<Peer:0x7fbbe3b54cb0, UID:8762474, r:Answer> Queued Remote SDP
...and it repeats the last two rows.
I've checked how it happens in the sample application and it seems my app never gets to the part when the following happens:
2016-02-09 12:48:49:006 sample-videochat-webrtc[278:20551] rtc::Did receive signal: iceCandidates from: 2436266
2016-02-09 12:48:49:007 sample-videochat-webrtc[278:19893] rtc::<Peer:0x1477ec80, UID:2436266, r:Answer> Set remote ICE candidates, count: 20
2016-02-09 12:48:50:921 sample-videochat-webrtc[278:20551] rtc::<Peer:0x1477ec80, UID:2436266, r:Answer> Ice connection change:Connected
What am I missing here? Comparing my implementation and the sample's, I couldn't notice much difference.
Upvotes: 0
Views: 490
Reputation: 2871
It has turned out to be a simple syntax-related mistake. When creating the session, I've used:
QBRTCSession *newSession = [QBRTCClient.instance
createNewSessionWithOpponents:@[receipientStr]
withConferenceType:QBRTCConferenceTypeVideo];
But the right syntax is
QBRTCSession *newSession = [QBRTCClient.instance
createNewSessionWithOpponents:@[@(receipientStr.intValue)]
withConferenceType:QBRTCConferenceTypeVideo];
With this modification, the video is fully working now.
Upvotes: 1