Tích hợp thư viện Flutter
Thông tin cấu hình
- Cấu hình tổng đài:
SERVICE_ID,SERVICE_KEY,SERVICE_NAME,SERVICE_AVATAR.
Cấu hình Flutter
Cài đặt thư viện
dependencies:
flutter:
...
flutter_ali_ott_hotline: ^1.0.3
Cấu hình Android
Yêu cầu
- Android SDK version 24 trở lên
Cài đặt thư viện
Cấu hình maven repository trong file build.gradle ở project level:
repositories{
maven {
url 'https://maven.pkg.github.com/Ali-Corp/AliOTT'
}
}
Khi báo thư viện trong file build.gradle ở app level:
dependencies {
implementation 'vn.ali.ott:hotline:1.0.7'
}
Cấu hình iOS
Yêu cầu
- iOS 14.0 trở lên
Thư viện
- Chạy lệnh:
pod install
Cấu hình Xcode project
-
Cấu hình Voice over IP:
- Chọn Target -> Signing & Capabilities
- Thêm Background Modes nếu chưa có, sau đó đánh dấu chọn Voice over IP

- Cấu hình quyền sử dụng Microphone:
- Chọn Target -> Info
- Thêm key Privacy - Microphone Usage Description và nội dung để xin quyền sử dụng Microphone

Khởi tạo thư viện Flutter
Khai báo thư viện
import 'package:flutter_ali_ott_hotline/flutter_ali_ott_hotline.dart';
final _flutterAliOttHotlinePlugin = FlutterAliOttHotline();
_flutterAliOttHotlinePlugin.startListenEvent();
_flutterAliOttHotlinePlugin.setEventCallbacks(
onInitSuccess: () => {debugPrint("Init success")},
onInitFail: () => {debugPrint("Init fail")},
onRequestShowCall: (ALIOTTCall call) => {debugPrint("onRequestShowCall") });
_flutterAliOttHotlinePlugin.config(
"production", // Môi trường 'sanbox' | 'production'
ALIOTTHotlineConfig(
id: `SERVICE_ID`,
key: `SERVICE_KEY`,
name: `SERVICE_NAME`,
icon: `SERVICE_AVATAR`,
),
);
Thực hiện cuộc gọi
_flutterAliOttHotlinePlugin.startHotlineCall(
`CALLER_ID`, // Id của người gọi (Ví dụ như số điện thoại) (Bắt buộc)
`CALLER_NAME`, // Tên của người gọi (Bắt buộc)
`CALLER_AVATAR`, // Hình ảnh đại diện của người gọi (Tuỳ chọn)
);
Hiện thực màn hình gọi
Các action liên quan
_flutterAliOttHotlinePlugin.endCall(); // Kết thúc cuộc gọi
_flutterAliOttHotlinePlugin.setMuteCall(mute); // true / false Tắt/Mở microphone
_flutterAliOttHotlinePlugin.setSpeakOn(speaker); // true / false Chuyển đổi loa ngoài / loa trong
Lắng nghe sự kiện cuộc gọi
_flutterAliOttHotlinePlugin.startListenCallEvent();
_flutterAliOttHotlinePlugin.setCallEventCallbacks(
onCallStateChange: (ALIOTTCallState state) {
// Lắng nghe sự kiện trạng thái cuộc gọi thay đổi
},
onCallConnectedChange: (ALIOTTCallConnectedState connectedState, DateTime? connectedDate) => {
// Lắng nghe sự kiện cuộc gọi kết nối thành công
},
);
Note:
-
ALIOTTCallState: trạng thái cuộc gọiALIOTTCallStateEnded: kết thúc cuộc gọi,ALIOTTCallStatePending: cuộc gọi đang bắt đầu kết nối,ALIOTTCallStateActive: cuộc gọi đã kết nối
-
ALIOTTCallConnectedState: trạng thái kết nối cuộc gọiALIOTTConnectedStatePending: đang kết nốiALIOTTConnectedStateComplete: thành công, và đông thời trả vềconnectedDatethời gian bắt đầu cuộc gọi