Set stream directions to INACTIVE when using local hold in a conference.

cusax-fix 4773
Boris Grozev 13 years ago
parent d0a4297332
commit ce0f4d86fb

@ -1549,23 +1549,26 @@ public void setLocallyOnHold(boolean locallyOnHold)
if(locallyOnHold)
{
MediaStream audioStream = getStream(MediaType.AUDIO);
MediaDirection direction
= getPeer().getCall().isConferenceFocus()
? MediaDirection.INACTIVE
: audioStream.getDirection().and(MediaDirection.SENDONLY);
if(audioStream != null)
{
audioStream.setDirection(
audioStream.getDirection().and(
MediaDirection.SENDONLY));
audioStream.setMute(locallyOnHold);
audioStream.setDirection(direction);
audioStream.setMute(true);
}
MediaStream videoStream = getStream(MediaType.VIDEO);
direction = getPeer().getCall().isConferenceFocus()
? MediaDirection.INACTIVE
: videoStream.getDirection().and(MediaDirection.SENDONLY);
if(videoStream != null)
{
videoStream.setDirection(
videoStream.getDirection().and(
MediaDirection.SENDONLY));
videoStream.setMute(locallyOnHold);
videoStream.setDirection(direction);
videoStream.setMute(true);
}
}
/*
@ -1580,7 +1583,7 @@ else if (!CallPeerState.ON_HOLD_MUTUALLY.equals(getPeer().getState()))
{
audioStream.setDirection(
audioStream.getDirection().or(MediaDirection.SENDONLY));
audioStream.setMute(locallyOnHold);
audioStream.setMute(false);
}
MediaStream videoStream = getStream(MediaType.VIDEO);
@ -1590,7 +1593,7 @@ else if (!CallPeerState.ON_HOLD_MUTUALLY.equals(getPeer().getState()))
{
videoStream.setDirection(
videoStream.getDirection().or(MediaDirection.SENDONLY));
videoStream.setMute(locallyOnHold);
videoStream.setMute(false);
}
}
}

Loading…
Cancel
Save