import 'package:flutter/services.dart' show EventChannel; import 'liblinphone_flutter_platform_interface.dart'; import 'models/call_type.dart'; import 'models/registration_state.dart'; import 'models/call_state.dart'; class LiblinphoneFlutter { final _registrationEventsStream = EventChannel( 'liblinphone_flutter.nuark.xyz/registration_events', ); final _callEventsStream = EventChannel( 'liblinphone_flutter.nuark.xyz/call_events', ); Stream get registrationEvents => _registrationEventsStream.receiveBroadcastStream().map((dynamic event) { return RegistrationState.fromOrdinal(event); }); Stream get callEvents => _callEventsStream.receiveBroadcastStream().map((dynamic event) { print("call event: $event"); return CallState.fromOrdinal(event); }); Future checkPermissions() async => LiblinphoneFlutterPlatform.instance.checkPermissions(); Future initialize() async => LiblinphoneFlutterPlatform.instance.initialize(); Future register( String username, String password, String serverIp, int serverPort, ) async => LiblinphoneFlutterPlatform.instance.register( username, password, serverIp, serverPort, ); Future unregister() async => LiblinphoneFlutterPlatform.instance.unregister(); Future makeCall(String callTo, bool isVideoEnabled) async => LiblinphoneFlutterPlatform.instance.makeCall(callTo, isVideoEnabled); Future answerCall() async => LiblinphoneFlutterPlatform.instance.answerCall(); Future hangupCall() async => LiblinphoneFlutterPlatform.instance.hangupCall(); Future inCall() async => LiblinphoneFlutterPlatform.instance.inCall(); Future callType() async => LiblinphoneFlutterPlatform.instance.callType(); Future toggleVideo() async => LiblinphoneFlutterPlatform.instance.toggleVideo(); Future toggleMicrophone() async => LiblinphoneFlutterPlatform.instance.toggleMicrophone(); Future stop() async => LiblinphoneFlutterPlatform.instance.stop(); }