diff --git a/lib/src/voip/call.dart b/lib/src/voip/call.dart index 4c2ed37e..cba98f92 100644 --- a/lib/src/voip/call.dart +++ b/lib/src/voip/call.dart @@ -400,12 +400,15 @@ class CallSession { } Future initWithInvite(CallType type, RTCSessionDescription offer, - SDPStreamMetadata? metadata, int lifetime) async { + SDPStreamMetadata? metadata, int lifetime, bool isGroupCall) async { await _preparePeerConnection(); - final stream = await _getUserMedia(type); - if (stream != null) { - addLocalStream(stream, SDPStreamMetadataPurpose.Usermedia); + /// only add local stream if it is not a group call. + if (!isGroupCall) { + final stream = await _getUserMedia(type); + if (stream != null) { + addLocalStream(stream, SDPStreamMetadataPurpose.Usermedia); + } } if (metadata != null) { diff --git a/lib/src/voip/voip.dart b/lib/src/voip/voip.dart index 5db996a8..5dcb25fb 100644 --- a/lib/src/voip/voip.dart +++ b/lib/src/voip/voip.dart @@ -197,7 +197,8 @@ class VoIP { content['offer']['type'], ); await newCall - .initWithInvite(callType, offer, sdpStreamMetadata, lifetime) + .initWithInvite( + callType, offer, sdpStreamMetadata, lifetime, confId != null) .then((_) { // Popup CallingPage for incoming call. if (!delegate.isBackgroud && confId == null) {