accept method

void accept(
  1. String callerName,
  2. String callerNumber,
  3. String destinationNumber,
  4. String clientState,
  5. String callId,
  6. IncomingInviteParams invite,
  7. Map<String, String> customHeaders,
  8. bool isAttach, {
  9. List<Map<String, dynamic>>? preferredCodecs,
})

Accepts an incoming call.

callerName The name of the caller. callerNumber The number of the caller. destinationNumber The destination number (usually the current user's number). clientState The client state. callId The unique ID of the call. invite The incoming invite parameters. customHeaders Custom headers to include in the answer. isAttach Whether this is an attach call.

Implementation

void accept(
  String callerName,
  String callerNumber,
  String destinationNumber,
  String clientState,
  String callId,
  IncomingInviteParams invite,
  Map<String, String> customHeaders,
  bool isAttach, {
  List<Map<String, dynamic>>? preferredCodecs,
}) async {
  final sessionId = _selfId;
  final Session session = await _createSession(
    null,
    peerId: Uuid().v4(),
    sessionId: sessionId,
    callId: callId,
    media: 'audio',
  );
  _sessions[sessionId] = session;

  await session.peerConnection?.setRemoteDescription(
    RTCSessionDescription(invite.sdp, 'offer'),
  );

  await _createAnswer(
    session,
    'audio',
    callerName,
    callerNumber,
    destinationNumber,
    clientState,
    callId,
    customHeaders,
    isAttach,
    preferredCodecs,
  );

  onCallStateChange?.call(session, CallState.active);
}