createGroupCallFromRoomStateEvent method
Future<void>
createGroupCallFromRoomStateEvent(
- CallMembership membership, {
- bool emitHandleNewGroupCall = true,
Create a new group call from a room state event.
Implementation
Future<void> createGroupCallFromRoomStateEvent(
CallMembership membership, {
bool emitHandleNewGroupCall = true,
}) async {
if (membership.isExpired) {
Logs().d(
'Ignoring expired membership in passive groupCall creator. ${membership.toJson()}');
return;
}
final room = client.getRoomById(membership.roomId);
if (room == null) {
Logs().w('Couldn\'t find room ${membership.roomId} for GroupCallSession');
return;
}
if (membership.application != 'm.call' && membership.scope != 'm.room') {
Logs().w('Received invalid group call application or scope.');
return;
}
final groupCall = GroupCallSession(
client: client,
voip: this,
room: room,
backend: membership.backend,
groupCallId: membership.callId,
application: membership.application,
scope: membership.scope,
);
if (groupCalls.containsKey(
VoipId(roomId: membership.roomId, callId: membership.callId))) {
return;
}
setGroupCallById(groupCall);
onIncomingGroupCall.add(groupCall);
if (emitHandleNewGroupCall) {
await delegate.handleNewGroupCall(groupCall);
}
}