GenPBX - VOIP CALLING APP | FSD Ramjan

GenPBX — Mobile SIP/VoIP Client (Flutter + Native Kotlin) A mobile front-end for office PBX systems — built solo, end to end. https://res.cloudinary.com/djkv4

GenPBX - VOIP CALLING APP

GenPBX — Mobile SIP/VoIP Client (Flutter + Native Kotlin) A mobile front-end for office PBX systems — built solo, end to end. https://res.cloudinary.com/djkv4scjq/image/upload/v1782291982/portfolio/scaled_screenshot_1_1782291981442.png Overview GenPBX turns a phone into a full PBX extension — live SIP calling, push-to-talk, call records, contacts, and billing, all synced to one account. The UI is 100% Flutter; the part that has to be bulletproof — incoming-call handling when Android tries to kill the app — runs on a custom native Kotlin layer. https://res.cloudinary.com/djkv4scjq/image/upload/v1782291985/portfolio/scaled_screenshot_2_1782291984587.png Key Features Live SIP calling on a registered extension, with full-screen incoming-call alerts in foreground, background, and app-killed states Push-to-talk — single and group channels over MQTT, with session recordings Searchable Call Detail Records (CDR) with playback, filterable by extension and date range Contacts — extensions, phonebook, and device contacts in one view Billing & recharge — usage tracking and bKash top-up, in-app Multi-account switching with encrypted local storage https://res.cloudinary.com/djkv4scjq/image/upload/v1782291988/portfolio/scaled_screenshot_3_1782291987596.png Architecture Flutter — every screen in the app, GetX for state management Native Kotlin — a custom SIP client over raw WebSockets (no third-party SIP SDK), a foreground service that keeps calls/PTT alive, and a native call-screen Activity that launches independently of the Flutter engine Flutter ↔ native bridge — MethodChannel/EventChannel for call events, push-to-talk, and ringtone control https://res.cloudinary.com/djkv4scjq/image/upload/v1782291991/portfolio/scaled_screenshot_4_1782291990547.png Tech Stack Flutter · Dart · Kotlin · sip_ua · flutter_webrtc · MQTT (mqtt_client) · Firebase (FCM, Firestore) · Hive · flutter_secure_storage · Dio · GetX https://res.cloudinary.com/djkv4scjq/image/upload/v1782291994/portfolio/scaled_screenshot_5_1782291993721.png The Hardest Part Not the UI — it was making incoming calls and PTT notifications reliable no matter what state Android decided to put the app in. That problem lives almost entirely in native Kotlin: a foreground service for call state, and a separate native Activity for the call screen so it can launch even when Flutter's engine isn't running. https://res.cloudinary.com/djkv4scjq/image/upload/v1782291998/portfolio/scaled_screenshot_6_1782291997305.png Result Live on Google Play. Built and shipped solo — UI, native platform code, API integration, and everything in between.

FSD RAMJANPORTFOLIO