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 87bf4bf98edba9ead1235a03e346890e3b200159..8aea0da9e966b85f351acff4af3e0e9ff26932f6 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 c30b1d58feff1a5e5690b9b21e831f7891572682..8c5d266a5f71bbee0c2d88f752ee6587b9aa2c98 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 -> {