Jingle Plug-In v5.6.0

Built to Run Lean, Earn Continuously

A clean, layered voice stack that powers inbound call termination inside your app. Below: a plain-language overview for publishers, and the full SDK reference for developers.

For Publishers For Developers
System Architecture

Trace a Live Call

Press play and follow a single call as it travels the stack - from the plug-in on the device, through the Minutes Platform, out to the global carrier network, and back as HD voice.

Phase: Call setup
Initializing…

Auto-playing · click any layer to inspect it

SDK Reference · For Developers

A small, clean API surface

Eight methods take you from install to live calls. Tap any method to see how it is called - HD voice by default, with graceful codec fallbacks.

Core API methods

Lifecycle

val jingle = JingleAdapter.getInstance(context)
jingle.start()
jingle.deactivate()

Activation

val jwt = jingle.sendSmsChallenge(phone)
jingle.activate(jwt)
jingle.setFcmToken(fcmToken)

Runtime

val result = JinglePermissions.check(context)
if (!result.allGranted) {
    request(result.missing)
}
jingle.setCallEndedCallback { event ->
    Log.d(TAG, event.toString())
}
Audio codec support
Format
Bitrate
Use case
Opus HD
6-510 kbps
High fidelity Default
G.722
64 kbps
Wideband audio
G.711 (PCMU)
64 kbps
Legacy compatibility

Opus is negotiated first for HD voice; the plug-in falls back to G.722, then G.711, automatically when a leg can't carry it.

Performance

Engineered for Minimal Impact

So light your users won't notice any impact on performance or battery.

3-10MB
SDK Size
<2%
Battery Impact
30-50KB
Per Minute
<200ms
Call Setup
<3%
CPU Usage
~15MB
Memory Resident
Security

Enterprise-Grade Security Stack

Encrypted signalling, ephemeral audio handling, and continuous monitoring across the stack.

TLS 1.3

All signaling traffic encrypted with the latest TLS standard. No fallback to older protocols.

Ephemeral Audio

Call audio is processed in real time for routing and is never recorded or stored. Calls hand off to Tier 1 carrier (PSTN) networks for termination.

Secure Transport (TLS)

Plug-in-to-network signalling runs over TLS. Firewall-friendly with NAT traversal.

Call Quality Monitoring

Real-time call quality metrics for every route, visible in your partner portal from day one.

Call Delivery

Three Delivery Modes

Reach users in any app state - active, backgrounded, or closed.

Foreground

User is actively using the app. SDK handles call directly with custom UI overlay. Highest quality path.

Background

App is in background. The plug-in uses an Android foreground service to maintain the connection and route calls seamlessly.

Push Notification

App is closed. FCM push notification wakes the app, SDK initializes, and call connects within seconds.

Device Compatibility

Built for the Major OEMs

Core call routing (SIP signalling and media) does not depend on Google Mobile Services - and neither does the primary wake path, a foreground service with a UDP wake. Firebase Cloud Messaging is an optional fallback on GMS-certified devices, so the plug-in works across major OEMs, including Huawei/HarmonyOS, Amazon Fire and other non-GMS fleets. On battery-aggressive OEMs, a one-time battery-optimisation exemption keeps call delivery most reliable.

Our compatibility layer handles OEM-specific power management, background process restrictions, and notification channels automatically.

Samsung

OneUI Compatible

Xiaomi

MIUI Compatible

Huawei

Wake path scoped at integration

Oppo

ColorOS Compatible

Integration

Go Live at Your Pace

See it running first

Explore the simulation-based demo app - the same plug-in, running through the real plugin path.

1

Step 1: Sandbox Setup

API keys issued, SDK integrated into dev build, test connectivity in sandbox environment.

2

Step 2: UI & Permissions

Implement custom UI overlays, integrate Google Play dual-disclosure compliance flow.

3

Step 3: QA & Testing

End-to-end testing, compliance review, battery and data usage validation with your dedicated engineer.

4

Step 4: Production Launch

Swap to production keys, phased rollout, go live with real-time revenue tracking.

How it all fits together
App.kt
class App : Application() {

    override fun onCreate() {
        super.onCreate()
        val jingle = JingleAdapter.getInstance(this)

        // Register here, not in an Activity: callbacks
        // fire even when no Activity is bound
        // (lock-screen answers), and the SDK replays
        // cached state synchronously on registration.
        jingle.setCallEndedCallback {
            event: CallEndedEvent ->
            // fires once per call, on main thread
        }
        jingle.setAuthStateCallback {
            state: AuthState -> /* ... */
        }
        jingle.setWakeStageCallback {
            event: WakeStageEvent -> /* ... */
        }
    }
}
Privacy

Data Collection

Collected (Minimal)

Audio (ephemeral)
Call routing
Real-time only, never stored
Network type
Route optimization
Session only
Country (from verified number)
Geographic routing
Session only
Call quality metrics
QoS monitoring
Aggregated, 30 days
SDK state/errors
Diagnostics
Aggregated, 7 days

Never Collected

Personal data or identifiers
Contacts or address book
Messages or communications
Browsing history
Precise location
Persistent device identifiers
Audio recordings (audio is never stored)
Edge Cases

Technical Behaviour

User Already on a Call

SDK returns 503 Service Unavailable. Call is automatically rerouted to another user. The end user is never interrupted.

App Force-Closed / Crashes

Call session ends gracefully. SIP session released. Revenue calculated for minutes routed before disconnection. No impact on user device.

Android 14+ Restrictions

The SDK ships the correct foregroundServiceType declarations (phoneCall|microphone) in its own manifest since 5.1.2 - the manifest merger provides them, no partner action needed.

Huawei / Non-GMS Devices

Core call routing does not depend on Google Play Services - and neither does the primary wake path, a foreground service with a UDP wake. Firebase Cloud Messaging is an optional fallback on GMS-certified devices, so Huawei/HarmonyOS, Amazon Fire and other non-GMS fleets are supported via the foreground-service wake path.

Cross-Platform Support

Core SDK is native Android (Kotlin). Works with Flutter, React Native, and Unity apps via the native Android plug-in. Bridge wrappers can be scoped during integration.

VoIP Regulatory Compliance

Users in restricted jurisdictions are automatically excluded. Geographic compliance is handled by the routing infrastructure - no action required from partners.

Negligible Data Use

Roughly 30-50KB per call minute - less than a single web page load. Partners can choose to reward users, for example with mobile top-ups.

User Reward Models

Revenue is paid to the developer. Optionally share with users as: data top-ups, in-app credits, premium features, or custom rewards via callback events.

Dashboard

Partner Portal

Every partner receives access to the live Jingle Partner Portal from day one. Complete real-time visibility into all metrics.

Revenue

Real-time earnings, daily/weekly/monthly totals, geographic revenue breakdown, per-minute rate by destination.

Call Activity

Live and historical call volume, call duration distribution, successful vs. failed routing, concurrent call capacity.

User Metrics

Total opted-in users, opt-in/opt-out rates, active vs. idle users, geographic distribution.

Call Quality

MOS (Mean Opinion Score), jitter, packet loss, codec performance, call completion rates.

Device Analytics

OEM distribution, Android version breakdown, delivery mode performance (foreground/background/push).

Reporting

Exportable CSV/PDF reports, configurable date ranges, automated monthly summary emails.

Ready to Integrate?

Get your plug-in credentials fast. A dedicated integration engineer will guide you through every step.