init static method

Future<SIPService> init({
  1. int localPort = 5060,
  2. OnIncommingCall incomingCallStrategy = OnIncommingCall.ignore,
  3. String stunSrv = 'stun.l.google.com:19302',
})

Implementation

static Future<SIPService> init({
  int localPort = 5060,
  OnIncommingCall incomingCallStrategy = OnIncommingCall.ignore,
  String stunSrv = 'stun.l.google.com:19302',
}) async {
  try {
    if (initialized == false) {
      // we have tried but we couldn't initialize before
      // so avoid initializing again
      return Future.error('SIPService not initialized (err: $initializeErr)');
    }
    if (initialized == true && _instance != null) {
      // already initialized
      return _instance!;
    }
    final initResult = await frs.init(
      localPort: localPort,
      incomingCallStrategy: incomingCallStrategy,
      stunSrv: stunSrv,
    );
    if (initResult != 0) {
      // throw error
      throw 'Failed to initialize PJSUA with error code: $initResult';
    }

    final service = SIPService();
    initialized = true;
    _instance = service;

    return service;
  } catch (e) {
    // set initialized to false on error so we would not try again, that will crash the app
    initialized = false;
    initializeErr = e.toString();
    return Future.error(initializeErr.toString());
  }
}