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, String notificationTitle, String notificationMessage, ) async => LiblinphoneFlutterPlatform.instance.makeCall( callTo, isVideoEnabled, notificationTitle, notificationMessage, ); Future answerCall( String notificationTitle, String notificationMessage, ) async => LiblinphoneFlutterPlatform.instance.answerCall( notificationTitle, notificationMessage, ); 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(); Future syncCurrentState() async => LiblinphoneFlutterPlatform.instance.syncCurrentState(); Future sendDtmf(String tone) async => LiblinphoneFlutterPlatform.instance.sendDtmf(tone); Future stopCallService(String tone) async => LiblinphoneFlutterPlatform.instance.stopCallService(); }