Appearance
Push Notification
VBot Android SDK sử dụng Google Firebase để nhận thông báo cuộc gọi đến.
Trên Firebase
Tạo Project
Thêm ứng dụng của bạn vào Project vừa tạo
Tải file google-services.json
Vào Project Setting -> Service accounts -> Firebase Admin SDK
Trong màn hình hiện ra. Chọn Java
Chọn Generate new private key

Mở file vừa tải về. Sao chép toàn bộ nội dung có trong file
Trên Website VBot
Dùng tài khoản Admin đăng nhập vào website VBot.vn
Truy cập vào Cài đặt nhóm -> SDK Mobile Push
Chọn + Thêm mới

Nhập tên của app
Chọn loại là FCM Push Credential (Android)
Dán nội dung file vừa sao chép ở bước trên vào ô KEY
Chọn Lưu

Trên Project App của bạn
Thêm google-services.json vào thư mục app

Trong file build.gradle(Module :app)
Ở mục dependencies , thêm 2 dòng sau:
groovy
implementation platform('com.google.firebase:firebase-bom:32.4.0')
implementation 'com.google.firebase:firebase-messaging-ktx:23.3.1'Ở mục plugins , thêm dòng sau:
groovy
id 'com.google.gms.google-services'Trong file build.gradle(Project) , ở mục plugins , thêm dòng sau:
groovy
id 'com.google.gms.google-services'Nhận cuộc gọi đến
VBot SDK không tự khai FirebaseMessagingService. App của bạn sở hữu service và tự route payload noticall vào SDK qua notificationCall(map). Nhờ vậy SDK cùng tồn tại được với firebase_messaging / notification nghiệp vụ sẵn có của bạn, không tranh chấp MESSAGING_EVENT.
Trong file manifests , ở thẻ application , khai service của chính app bạn:
xml
<service
android:name=".FirebaseService"
android:exported="false"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>Tạo class đón thông báo, khi nhận data message noticall thì chuyển nguyên HashMap<String,String> payload sang SDK:
kotlin
class FirebaseService : FirebaseMessagingService() {
override fun onNewToken(token: String) {
// Lưu token; truyền vào connect() ở lần kết nối kế tiếp
}
override fun onMessageReceived(remoteMessage: RemoteMessage) {
val map = HashMap(remoteMessage.data) // cần chứa key "transId" và "offCall"
VBotClient(applicationContext).apply {
if (!isSetup()) setup(VBotConfig(VBotEnvironment.PRODUCTION))
notificationCall(map)
}
}
}notificationCall(map) xử lý:
offCall == "0": hiện notification cuộc gọi đến + chuẩn bị (mở socket, register SIP). Khi cả hai sẵn sàng, SDK gửi ready và chờ INVITE. Nếu không register được trong 20 giây →onCallEnded(IncomingCallTimeout)+ tự dọn.offCall != "0": cuộc gọi đã bị huỷ từ xa → huỷ chuẩn bị, gỡ notification.
Nếu app đã dùng firebase_messaging (Flutter)
Nếu bạn đã có service xử lý notification nghiệp vụ, chỉ cần trong onMessageReceived phân loại: message noticall (có transId/offCall) thì route sang notificationCall(map), còn lại xử lý như cũ. Android chỉ cho một service nhận MESSAGING_EVENT — dùng service sẵn có của bạn, không khai thêm service riêng cho VBot.
