I had create an Android app for Voip SIP calls with Asterisk Server

Hi everyone,

I’ve been working on an Android app built with Kotlin and Jetpack Compose that seamlessly integrates with Asterisk using the AjVoIP SDK under the hood.

The main goal of this project is to provide a modern, user-friendly calling experience while leveraging the power and flexibility of Asterisk running on a local server.

:wrench: Key Features:

  • :mobile_phone: Modern UI: Built entirely with Jetpack Compose, offering a smooth and reactive interface for calling functions.

  • :telephone_receiver: Full VoIP Support: Uses AjVoIP SDK for SIP registration, call handling, and audio management with Asterisk.

  • :high_voltage: Real-time Status Updates: Observe call state, registration, and connectivity through Kotlin flows and Compose state management.

  • :speaker_high_volume: Audio Controls: In-call audio routing, mute/unmute, and speaker toggling integrated directly into the UI.

  • :light_bulb: Lightweight & Fast: Optimized for performance and easy integration with any Asterisk setup running locally or remotely.

:speech_balloon: Why I Built This

I wanted to create a clean and reliable way to handle Asterisk-based VoIP calls on Android without relying on legacy UI frameworks or complex SIP integrations. AjVoIP SDK made it straightforward to connect and manage calls while Kotlin + Compose provided a modern development experience.

Checkout this if this interests , Linkedin Post

1 Like

I’d like to play with this - I’ve built Android apps before but using Google’s IDE. Never done it with Kotlin, Jetpack or Gradle. Would you mind posting an overview of how to setup the build environment you are using as a README.Build file in your github repo?

I did figure it out and built it but it doesn’t seem to be configurable, see this issue:

App says “registered” when it’s impossible for it to be registered to anything · Issue #1 · mohitarora8181/pjsip-client-app

Looks like this is a limitation of the demo version of the commercial AjVoIP SDK. The production version of that library is required to actually make calls.