# androidsip

salix@host:~/projects/androidsip

androidsip is een kleine SIP-softphone voor Android. De native SIP-motor is baresip, gebouwd als statische Android-bibliotheken en met CMake in de app gelinkt, met daarbovenop een moderne UI in Kotlin en Jetpack Compose.

Het doet de klassieke softphone-dingen: een SIP-account registreren, bellen en gebeld worden over UDP, TCP of TLS, dempen, in de wacht zetten, speaker, DTMF-tonen en ook doorverbinden. Het pakt sip:-, sips:- en tel:-links direct op, dus op een telefoonnummer tikken kan meteen de app in. Er is een lijst met recente gesprekken, je SIP-wachtwoord wordt versleuteld opgeslagen via de Android Keystore, en loop je de wifi uit dan registreert hij zichzelf opnieuw op mobiele data. Dat laatste klinkt als een klein dingetje, dat was het niet.

Onder de motorkap zijn het lagen: de Compose-UI bovenop, een Kotlin-wrapper rond de SIP-logica in het midden, en een JNI-brug naar de native C-bibliotheken (baresip, libre, librem, OpenSSL). De scope is bewust smal, één account, bellen, gebeld worden. Ik probeer hier geen compleet telefoonsysteem te bouwen, gewoon een telefoon.

Even eerlijk over de grenzen: inkomende gesprekken werken alleen zolang de foreground service draait, er is nog geen Android Telecom-integratie, en hij start zichzelf niet na een reboot. Het vervangt je gewone dialer dus niet, maar voor een werk-SIP-account of een thuis-PBX doet het prima z’n werk.

Het is nog een vroeg persoonlijk project en ik ga niet doen alsof het af is. Maar het bellen zelf werkt, en wil je experimenteren met baresip op Android of heb je een kleine, begrijpelijke SIP-client nodig, dan is het een goede basis. De code staat op mijn forge.

~$