answer method

void answer(
  1. MediaStream stream, {
  2. AnswerOption? callOptions,
})

Implementation

void answer(MediaStream stream, {AnswerOption? callOptions}) {
  if (_localStream != null) {
    logger.warn(
      "Local stream already exists on this MediaConnection. Are you answering a call twice?",
    );
    return;
  }

  _localStream = stream;

  if (callOptions?.sdpTransform != null) {
    callOptions?.sdpTransform = callOptions.sdpTransform;
  }
  final op = PeerConnectOption(
      payload: PeerConnectOption(
          stream: _localStream,
          sdp: options!.payload!.sdp,
          connectionId: options!.payload!.connectionId,
          metadata: options!.payload!.metadata));
  _negotiator?.startConnection(op.payload!);

  // Retrieve lost messages stored because PeerConnection not set up.
  final messages = provider?.getMessages(connectionId);

  if (messages != null) {
    for (var message in messages) {
      handleMessage(message);
    }

    open = true;
  }
}