@@ -1039,8 +1039,11 @@ export default function initWebRtc(signaling, _callParticipantCollection, _local
10391039 return
10401040 }
10411041
1042- if ( webrtc . webrtc . isAudioAllowed ( ) === ! ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_AUDIO )
1043- && webrtc . webrtc . isVideoAllowed ( ) === ! ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_VIDEO ) ) {
1042+ const hasPublishAudioPermissions = ! ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_AUDIO )
1043+ const hasPublishVideoPermissions = ! ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_VIDEO )
1044+
1045+ if ( webrtc . webrtc . isAudioAllowed ( ) === hasPublishAudioPermissions
1046+ && webrtc . webrtc . isVideoAllowed ( ) === hasPublishVideoPermissions ) {
10441047 return
10451048 }
10461049
@@ -1057,11 +1060,8 @@ export default function initWebRtc(signaling, _callParticipantCollection, _local
10571060 hasVideoSenders ||= ! ! videoSender
10581061 } )
10591062
1060- const removeSender = ( hasAudioSenders && ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_AUDIO ) )
1061- || ( hasVideoSenders && ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_VIDEO ) )
1062-
1063- const hasPublishAudioPermissions = ! ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_AUDIO )
1064- const hasPublishVideoPermissions = ! ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_VIDEO )
1063+ const removeSender = ( hasAudioSenders && ! hasPublishAudioPermissions )
1064+ || ( hasVideoSenders && ! hasPublishVideoPermissions )
10651065
10661066 if ( ! hasPublishAudioPermissions ) {
10671067 // If permissions were revoked, disable media devices
@@ -1079,8 +1079,8 @@ export default function initWebRtc(signaling, _callParticipantCollection, _local
10791079 }
10801080
10811081 if ( webrtc . webrtc . isLocalMediaActive ( )
1082- && ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_AUDIO )
1083- && ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_VIDEO ) ) {
1082+ && ! hasPublishAudioPermissions
1083+ && ! hasPublishVideoPermissions ) {
10841084 webrtc . stopLocalVideo ( )
10851085
10861086 // If the MCU is used and there is no sending peer there is no need
@@ -1100,10 +1100,10 @@ export default function initWebRtc(signaling, _callParticipantCollection, _local
11001100 // reconnection.
11011101 if ( webrtc . webrtc . isLocalMediaActive ( ) && removeSender ) {
11021102 let flags = signaling . getCurrentCallFlags ( )
1103- if ( ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_AUDIO ) ) {
1103+ if ( ! hasPublishAudioPermissions ) {
11041104 flags &= ~ PARTICIPANT . CALL_FLAG . WITH_AUDIO
11051105 }
1106- if ( ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_VIDEO ) ) {
1106+ if ( ! hasPublishVideoPermissions ) {
11071107 flags &= ~ PARTICIPANT . CALL_FLAG . WITH_VIDEO
11081108 }
11091109
@@ -1128,8 +1128,8 @@ export default function initWebRtc(signaling, _callParticipantCollection, _local
11281128
11291129 // If media is not active but the participant does not have publishing
11301130 // permissions there is no need to start the media nor reconnect.
1131- if ( ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_AUDIO )
1132- && ! ( currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_VIDEO ) ) {
1131+ if ( ! hasPublishAudioPermissions
1132+ && ! hasPublishVideoPermissions ) {
11331133 return
11341134 }
11351135
@@ -1162,8 +1162,8 @@ export default function initWebRtc(signaling, _callParticipantCollection, _local
11621162 webrtc . on ( 'localMediaError' , forceReconnectOnceLocalMediaError )
11631163
11641164 const constraints = {
1165- audio : currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_AUDIO ,
1166- video : currentParticipant . participantPermissions & PARTICIPANT . PERMISSIONS . PUBLISH_VIDEO ,
1165+ audio : hasPublishAudioPermissions ,
1166+ video : hasPublishVideoPermissions ,
11671167 }
11681168 webrtc . startLocalVideo ( constraints )
11691169 }
0 commit comments