utd_calls_kit 0.10.0 copy "utd_calls_kit: ^0.10.0" to clipboard
utd_calls_kit: ^0.10.0 copied to clipboard

PlatformAndroid

WhatsApp-style 1:1 audio & video calling for Flutter — independent UTD-Stream kit.

0.10.0 #

Production auth hook + transport hardening (additive, non-breaking).

  • UTDCallsConfig.sessionProvider — optional server-signed session source, the production auth path. When set, the kit never mints identity with the publishable app_key; your backend calls the engine's POST /api/v1/auth/session with X-App-Secret and the app parses the JSON with UTDSessionInfo.fromJson. Hardened engines reject the app_key identity mint by default (403 appkey_identity_mint_disabled) unless the project opts in (settings.allow_appkey_identity_mint / env ALLOW_APPKEY_IDENTITY_MINT=true) — keep the no-backend mint for development only. The provider runs on every (re)connect and on the proactive pre-expiry re-mint, so it must return a fresh session each call.
  • Bumped utd_signaling to ^0.3.1TLS is now enforced: a non-loopback http:// baseUrl/tokenBaseUrl throws at UTDApiClient construction time and ws:// signal URLs are refused. UTDTransportSecurity.allowInsecure = true (debug only) is the dev escape hatch; loopback stays exempt.
  • Proactive token re-mint: the session's expiresAt now flows into UTDSignalCredentials, so the signal socket re-mints + reconnects shortly before the token lapses — fixing the stale-REST-bearer window on long-lived sessions (each re-mint re-applies the engine bearer too).
  • Internal mint moved from the frozen mintSession record to UTDApi.mintSessionV2 (UTDSessionInfo) — same wire call, growable result. Capability surfacing (signalingEnabled / planLimits) is unchanged.
  • Dependency resolution: utd_signaling 0.3.1 relaxes its device_info_plus / package_info_plus ranges so this kit solves cleanly against utd_media_client 2.x (which pins device_info_plus ^12.3.0, whose win32 ^5 in turn excludes package_info_plus 10.x).

0.9.2 #

Signaling capability surfacing (additive, non-breaking).

  • Call invitation now rides the paid signaling capability (call invitation
    • presence), billed separately from chat. UTDCallController.signalingEnabled / .planLimits (from the session mint, via UTDCallsClient) let app code pre-check before starting a call — both nullable; null on an older engine ("unknown, let the server decide").
  • When the engine refuses a call because signaling isn't enabled for the plan (a paid-capability gate), the failure now carries UTDStreamException.isFeatureDisabled / isSignalingDisabled and still maps to UTDCallEndReason.notActivated, so the UI can show an upsell rather than a raw error. The exception is rethrown from startCall / acceptIncoming for 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). Bumped utd_signaling to 0.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 existing UTDCallKitBridge into 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; foreground onMessage does the same.
  • New api/push_token_api.dart (UTDPushTokenApi): register / unregister push tokens via POST / 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 FCM onTokenRefresh and on PushKit VoIP token updates.
  • New push/push_dispatcher.dart (UTDPushDispatcher, UTDCallPush): token collection + foreground/background call routing + cold-start resume (coldStartAcceptedCall).
  • UTDCallsConfig.enablePush flag (default true). When enabled, the client registers tokens on init() and the controller resumes a cold-started accepted call (look up call_idgetCallacceptIncoming → 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_bridge now resolves a call's call_id from CallKitParams.extra['call_id'] when the UUID was shown by a background push isolate (whose UUID the bridge never registered).
  • Added firebase_core + firebase_messaging dependencies.
  • 1.0.0 is gated on device QA — push, CallKit wake, and cold start cannot be exercised by flutter analyze or unit tests. See the README device-QA checklist. Requires host-app Firebase + iOS PushKit/CallKit/APNs config, and the engine's APNS_* / 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.enableCallKit flag (default true); the in-app UTDIncomingCallScreen remains 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_incoming and uuid dependencies.
  • Foreground / in-app only — PushKit/FCM wake-from-killed deferred to v1.0.

0.0.1 #

  • TODO: Describe initial release.
0
likes
120
points
62
downloads

Documentation

API reference

Publisher

verified publisherutdsoftware.com

Weekly Downloads

WhatsApp-style 1:1 audio & video calling for Flutter — independent UTD-Stream kit.

Homepage

License

MIT (license)

Dependencies

equatable, firebase_core, firebase_messaging, floating, flutter, flutter_callkit_incoming, flutter_screenutil, flutter_webrtc, proximity_sensor, utd_media_client, utd_signaling, uuid

More

Packages that depend on utd_calls_kit