99 lines
2.9 KiB
Dart
99 lines
2.9 KiB
Dart
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<RegistrationState> get registrationEvents =>
|
|
_registrationEventsStream.receiveBroadcastStream().map((dynamic event) {
|
|
return RegistrationState.fromOrdinal(event);
|
|
});
|
|
|
|
Stream<CallState> get callEvents =>
|
|
_callEventsStream.receiveBroadcastStream().map((dynamic event) {
|
|
print("call event: $event");
|
|
return CallState.fromOrdinal(event);
|
|
});
|
|
|
|
Future<bool> checkPermissions() async =>
|
|
LiblinphoneFlutterPlatform.instance.checkPermissions();
|
|
|
|
Future<bool> initialize() async =>
|
|
LiblinphoneFlutterPlatform.instance.initialize();
|
|
|
|
Future<bool> register(
|
|
String username,
|
|
String password,
|
|
String serverIp,
|
|
int serverPort,
|
|
) async => LiblinphoneFlutterPlatform.instance.register(
|
|
username,
|
|
password,
|
|
serverIp,
|
|
serverPort,
|
|
);
|
|
|
|
Future<bool> unregister() async =>
|
|
LiblinphoneFlutterPlatform.instance.unregister();
|
|
|
|
Future<bool> makeCall(
|
|
String callTo,
|
|
bool isVideoEnabled,
|
|
String notificationTitle,
|
|
String notificationMessage,
|
|
) async => LiblinphoneFlutterPlatform.instance.makeCall(
|
|
callTo,
|
|
isVideoEnabled,
|
|
notificationTitle,
|
|
notificationMessage,
|
|
);
|
|
|
|
Future<bool> answerCall(
|
|
String notificationTitle,
|
|
String notificationMessage,
|
|
) async => LiblinphoneFlutterPlatform.instance.answerCall(
|
|
notificationTitle,
|
|
notificationMessage,
|
|
);
|
|
|
|
Future<bool> hangupCall() async =>
|
|
LiblinphoneFlutterPlatform.instance.hangupCall();
|
|
|
|
Future<bool> inCall() async => LiblinphoneFlutterPlatform.instance.inCall();
|
|
|
|
Future<CallType> callType() async =>
|
|
LiblinphoneFlutterPlatform.instance.callType();
|
|
|
|
Future<bool> toggleVideo() async =>
|
|
LiblinphoneFlutterPlatform.instance.toggleVideo();
|
|
|
|
Future<bool> toggleMicrophone() async =>
|
|
LiblinphoneFlutterPlatform.instance.toggleMicrophone();
|
|
|
|
Future<bool> stop() async => LiblinphoneFlutterPlatform.instance.stop();
|
|
|
|
Future<void> syncCurrentState() async =>
|
|
LiblinphoneFlutterPlatform.instance.syncCurrentState();
|
|
|
|
Future<bool> sendDtmf(String tone) async =>
|
|
LiblinphoneFlutterPlatform.instance.sendDtmf(tone);
|
|
|
|
Future<bool> stopCallService() async =>
|
|
LiblinphoneFlutterPlatform.instance.stopCallService();
|
|
|
|
Future<bool> setMicGain(double level) async =>
|
|
LiblinphoneFlutterPlatform.instance.setMicGain(level);
|
|
|
|
Future<double> getMicGain() async =>
|
|
LiblinphoneFlutterPlatform.instance.getMicGain();
|
|
}
|