Overview
Every conversation conducted through the mobile auto-dialer is captured, uploaded, and transcribed without requiring telecallers to manually operate voice recording tools. The recording and transcription pipeline operates seamlessly:- Calls are recorded to local Android device storage by an approved companion recording app (such as ODialer)
- The BrokerOS native Android module detects the newly written
.mp3file - Android Jetpack
WorkManageruploads the audio file in the background (even if the app is closed) - BrokerOS stores the audio in cloud storage (Vercel Blob)
- Groq AI generates an automated conversational transcript and links it to the lead timeline
Recording Ingest & Upload Architecture
One-Time ODialer & SAF Folder Setup
Because Android modern scoped storage restricts cross-app file access, BrokerOS utilizes Android’s Storage Access Framework (SAF) to gain persistent permission to read the call recording directory:1
Install Companion Recording App
Install an approved call recording dialer (such as ODialer) on the Android device.
2
Configure Recording Permissions
Open the recording application, grant necessary telephony permissions, and configure auto-recording for all calls in
.mp3 format.3
Grant Scoped Folder Access in BrokerOS
In the BrokerOS mobile app:
- Navigate to Pre-Sales Settings -> Recording Configuration.
- Tap Select Recording Folder.
- The Android system file picker displays available directories. Navigate to the ODialer audio directory (e.g.,
Internal Storage/ODialerorInternal Storage/Recordings/Call). - Tap Use this folder and confirm Allow.
- The app executes
setODialerFolder(folderUriString), storing the persistent directory URI in AndroidSharedPreferences.
4
Execute Validation Call
Make a test call to verify that the file appears in the CRM timeline within 30 seconds of disconnection.
WorkManager Background Execution
The audio upload pipeline is guaranteed by Android’s Jetpack WorkManager (CallUploadWorker.kt), offering several architectural advantages:
- Independent of React Native: The worker runs natively in Kotlin. Even if the user terminates the BrokerOS app or turns off their screen, the Android OS completes the upload.
- Grace Period Window: A 5-second initial delay ensures the recording dialer has finished writing and closing the audio stream on disk before upload begins.
- Timestamp Filter: The worker scans the scoped folder and matches audio files modified within the call window (between
startTimeandendTime + 15000ms). - Network Resilience: If the agent is in a dead zone or has no mobile data, WorkManager retains the job and executes it automatically once connectivity is restored.