utd_calls_kit 0.9.2
utd_calls_kit: ^0.9.2 copied to clipboard
LiveKit-based WhatsApp-style 1:1 audio & video calling for Flutter — independent UTD-Stream kit.
0.9.2 #
Signaling capability surfacing (additive, non-breaking).
- Call invitation now rides the paid
signalingcapability (call invitation- presence), billed separately from
chat.UTDCallController.signalingEnabled/.planLimits(from the session mint, viaUTDCallsClient) let app code pre-check before starting a call — both nullable;nullon an older engine ("unknown, let the server decide").
- presence), billed separately from
- When the engine refuses a call because signaling isn't enabled for the plan
(a paid-capability gate), the failure now carries
UTDStreamException.isFeatureDisabled/isSignalingDisabledand still maps toUTDCallEndReason.notActivated, so the UI can show an upsell rather than a raw error. The exception is rethrown fromstartCall/acceptIncomingfor app-code inspection. - Public API additions:
UTDCallController.signalingEnabled/.planLimits,UTDCallsClient.signalingEnabled/.planLimits. Billing is MAU-based (no per-minute/per-message change to this kit). Bumpedutd_signalingto0.1.1.
0.9.0 #
- VoIP/FCM wake-from-killed → CallKit. An incoming call now rings the device
even when the app is backgrounded or killed:
- iOS: PushKit VoIP pushes are delivered natively into CallKit by
flutter_callkit_incoming; accept/decline flow through the existingUTDCallKitBridgeinto the controller. - Android: a top-level
@pragma('vm:entry-point')FCM background handler (utdFirebaseBackgroundHandler) shows the full-screen CallKit incoming UI (backed by the plugin's foreground service) on a{type:'call'}data message; foregroundonMessagedoes the same.
- iOS: PushKit VoIP pushes are delivered natively into CallKit by
- New
api/push_token_api.dart(UTDPushTokenApi): register / unregister push tokens viaPOST/DELETE /api/v1/devices/push-token(Bearer). Collects the iOS PushKit VoIP token (FlutterCallkitIncoming.getDevicePushTokenVoIP) and/or the FCM token (FirebaseMessaging.instance.getToken) and registers whichever is available with the right platform; re-registers on FCMonTokenRefreshand on PushKit VoIP token updates. - New
push/push_dispatcher.dart(UTDPushDispatcher,UTDCallPush): token collection + foreground/background call routing + cold-start resume (coldStartAcceptedCall). UTDCallsConfig.enablePushflag (defaulttrue). When enabled, the client registers tokens oninit()and the controller resumes a cold-started accepted call (look upcall_id→getCall→acceptIncoming→ join). A CallKit accept whose invitation never arrived over the signal WS (woke from background/killed) is resolved the same way.UTDCallController.unregisterPush()for sign-out.callkit_bridgenow resolves a call'scall_idfromCallKitParams.extra['call_id']when the UUID was shown by a background push isolate (whose UUID the bridge never registered).- Added
firebase_core+firebase_messagingdependencies. - 1.0.0 is gated on device QA — push, CallKit wake, and cold start cannot be
exercised by
flutter analyzeor unit tests. See the README device-QA checklist. Requires host-app Firebase + iOS PushKit/CallKit/APNs config, and the engine'sAPNS_*/FCM_*credentials provisioned (push dispatch is gated until then).
0.5.0 #
- Native incoming-call UI: CallKit (iOS) / ConnectionService (Android) via the
new
UTDCallKitBridge, driven by in-app signal-WS invitations. UTDCallsConfig.enableCallKitflag (defaulttrue); the in-appUTDIncomingCallScreenremains the fallback when disabled/unavailable.- Bridged native actions (accept →
acceptIncoming, decline/timeout →reject, ended → hang up); native timer started on room connect; UI dismissed on terminal states. - Added
flutter_callkit_incominganduuiddependencies. - Foreground / in-app only — PushKit/FCM wake-from-killed deferred to v1.0.
0.0.1 #
- TODO: Describe initial release.