diff --git a/src/sip/sipcall.cpp b/src/sip/sipcall.cpp index 9458bcddd4e349bd3bc73220d58302c9ae32bf62..08d07f1d9a1682cec44fe9f3da7b5957ae6d35b3 100644 --- a/src/sip/sipcall.cpp +++ b/src/sip/sipcall.cpp @@ -2399,7 +2399,7 @@ SIPCall::updateAllMediaStreams(const std::vector<MediaAttribute>& mediaAttrList, addMediaStream(newAttr); auto& stream = rtpStreams_.back(); // If the remote asks for a new stream, our side sends nothing - stream.mediaAttribute_->muted_ = isRemote; + stream.mediaAttribute_->muted_ = isRemote ? true : stream.mediaAttribute_->muted_; createRtpSession(stream); JAMI_DBG("[call:%s] Added a new media stream [%s] @ index %i", getCallId().c_str(), @@ -2771,8 +2771,7 @@ SIPCall::handleMediaChangeRequest(const std::vector<DRing::MediaMap>& remoteMedi // If the offered media does not differ from the current local media, the // request is answered using the current local media. if (not checkMediaChangeRequest(remoteMediaList)) { - answerMediaChangeRequest(MediaAttribute::mediaAttributesToMediaMaps(getMediaAttributeList()), - true); + answerMediaChangeRequest(MediaAttribute::mediaAttributesToMediaMaps(getMediaAttributeList())); return; } diff --git a/test/unitTest/media_negotiation/media_negotiation.cpp b/test/unitTest/media_negotiation/media_negotiation.cpp index 333402560549ff8cad70699f86aef266f038f6ae..4483fcbeb5dd7b4335e39ec7258bff57a513ef71 100644 --- a/test/unitTest/media_negotiation/media_negotiation.cpp +++ b/test/unitTest/media_negotiation/media_negotiation.cpp @@ -999,6 +999,7 @@ MediaNegotiationTest::audio_only_then_caller_add_video() scenario.offerUpdate_.emplace_back(audio); scenario.offerUpdate_.emplace_back(video); scenario.answerUpdate_.emplace_back(audio); + video.muted_ = true; scenario.answerUpdate_.emplace_back(video); scenario.expectMediaRenegotiation_ = true; scenario.expectMediaChangeRequest_ = true;