onCallAnswered method

  1. @override
Future<void> onCallAnswered(
  1. RoomClient room
)
override

Override in subclasses as needed.

Implementation

@override
Future<void> onCallAnswered(RoomClient room) async {
  final dismissed = Completer<void>();

  void onMessage(RoomEvent message) {
    if (message is RoomMessageEvent) {
      if (message.message.type == 'dismiss') {
        logger.info('dismissed by ${message.message.fromParticipantId}');
        if (!dismissed.isCompleted) {
          dismissed.complete();
        }
      }
    }
  }

  room.listen(onMessage);

  final Portable agent = factory();
  logger.info(
    '${room.localParticipant!.getAttribute("name")} answering call and joining room',
  );

  await agent.start(room: room);

  await Future.any([dismissed.future, room.protocol.done]);

  await agent.stop();
}