diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java index 87bf4bf98..8aea0da9e 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java @@ -729,6 +729,7 @@ public class JingleRtpConnection extends AbstractJingleConnection + ContentAddition.summary(contentAcceptMap)); modifyLocalContentMap(rtpContentMap); sendContentAccept(contentAcceptMap); + this.webRTCWrapper.setIsReadyToReceiveIceCandidates(true); } catch (final Exception e) { Log.d(Config.LOGTAG, "unable to accept content add", Throwables.getRootCause(e)); webRTCWrapper.close(); @@ -862,7 +863,6 @@ public class JingleRtpConnection extends AbstractJingleConnection webRTCWrapper.setRemoteDescription(sdp).get(); setRemoteContentMap(restartContentMap); if (isOffer) { - webRTCWrapper.setIsReadyToReceiveIceCandidates(false); final SessionDescription localSessionDescription = setLocalSessionDescription(); setLocalContentMap(RtpContentMap.of(localSessionDescription, isInitiator())); // We need to respond OK before sending any candidates @@ -2473,6 +2473,7 @@ public class JingleRtpConnection extends AbstractJingleConnection handleIqTimeoutResponse(response); } }); + this.webRTCWrapper.setIsReadyToReceiveIceCandidates(true); } private void setLocalContentMap(final RtpContentMap rtpContentMap) { diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java index c30b1d58f..8c5d266a5 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java @@ -561,6 +561,7 @@ public class WebRTCWrapper { } synchronized ListenableFuture setLocalDescription() { + this.setIsReadyToReceiveIceCandidates(false); return Futures.transformAsync( getPeerConnectionFuture(), peerConnection -> {