MT#62063 `isSDPBodyHold()` support inactive and sendonly

Support only two types of holds for `isSDPBodyHold()`.

Change-Id: I0eb8442f28ca48d539ff8df7778a1cdba53865d3
mr13.3.1
Donat Zenichev 2 years ago
parent a8881ea2d2
commit 8e95e186c3

@ -138,23 +138,27 @@ static MediaActivity getMediaActivity(const SdpMedia &m)
}
/**
* Checks, whether SDP of given type has sendonly / recvonly / inactive
* Checks, whether SDP of given type has sendonly / inactive
*/
static bool isSDPBodyHold(const AmSdp &sdp)
{
/* if no meidas present, take into consideration the session level */
if (sdp.media.empty() &&
getMediaActivity(sdp.attributes, Sendrecv) != Sendrecv)
if (sdp.media.empty())
{
return true;
MediaActivity session_activity = getMediaActivity(sdp.attributes, Sendrecv);
if (session_activity != Sendrecv && session_activity != Recvonly)
return true;
}
for (std::vector<SdpMedia>::const_iterator m = sdp.media.begin();
m != sdp.media.end(); ++m)
{
/* only resume audio streams */
if (m->isAudio() && getMediaActivity(*m) != Sendrecv)
return true;
if (m->isAudio()) {
MediaActivity media_activity = getMediaActivity(*m);
if (media_activity != Sendrecv && media_activity != Recvonly)
return true;
}
}
return false;

Loading…
Cancel
Save