own-pbx docs

Android app new

My Phone for Android: a free, open-source app that puts My Phone in your pocket. Sign in once, stay signed in for weeks, and open it with a 6- or 12-digit PIN.

Early version (0.1)

The app builds and the server side is tested, but it is new. It needs own-pbx updated to the version with the app API (run pbx-update). Keep the web My Phone handy while it matures.

What it does

ScreenWhat you can do
MessagesInbox like Google Messages: search, unread dots, swipe to delete with Undo, long-press to select several (Select all, Delete), Start chat to any extension or number, chat bubbles, copy, block. Refreshes by itself.
CallsAll / Missed history; tap a call to text back or block the number.
VoicemailNew / Old, play inside the app, move to Old, swipe or multi-select delete with Undo.
SettingsSwitches for Do Not Disturb, call forwarding, ring time, record my calls, receive/send texts, text emails, notification email, blocked numbers, change PIN, panel password, signed-in phones, sign out.

Everything you change in the app goes through the same rules as the web My Phone: your plan limits, the admin's safety lock, block lists and rate limits all apply the same way.

Get the app

  1. On GitHub open Actions → Android app, pick the latest green run and download my-phone-debug-apk under Artifacts.
  2. Unzip it and open the .apk on your phone. Android asks to allow installing from your browser or file manager — allow it once.

Free software (GPL-2.0-or-later), no ads, no tracking, no Google Play Services or Firebase. Needs Android 8.0 or newer. F-Droid and signed releases are planned.

Signing in

Enter your PBX address — the same one you use for My Phone from outside, e.g. https://myphone.example.com (published through Cloudflare Tunnel, see the README section "Opening My Phone to the internet"), or http://<PBX-IP>:8001 at home. Then either:

  • Password — your normal My Phone username and password, or
  • Pairing code — on the web, open My Phone → App → Get a pairing code and type the 8-letter code into the app. It works once and expires after 5 minutes.
Server:        https://myphone.example.com
Pairing code:  K7QH-2MXP   (example)
Stays signed in

Each phone gets its own sign-in that lasts 60 days after you last used the app — use it weekly and you never sign in again. Changing your panel password signs out all your other phones. You can sign out any phone from My Phone → App or from the app's Settings.

An http:// address isn't encrypted; the app warns you. Only use it on your home network or a VPN.

PIN lock

  • After signing in you choose a 6-digit or 12-digit PIN (the 12-digit one is the extra-safe choice). Easy PINs like 111111 or 123456 are refused.
  • The PIN never leaves your phone; only a salted hash is kept, in storage encrypted by the phone's hardware key store.
  • Optional fingerprint or face unlock — your PIN always works too.
  • Lock immediately when you leave the app, or after 1, 5 or 15 minutes away.
  • Wrong PINs make you wait longer each time; 10 wrong in a row signs the app out (your account is untouched — just sign in again).
  • Screens are hidden from screenshots and the recent-apps view (you can turn that off).

For the admin

  • Nothing to configure: pbx-update adds the app API and the app_devices table. No new ports — the app uses the same address as the web panel.
  • App sign-ins show up in Recent sign-ins and the audit log like web sign-ins, with the same lockouts (10 failures per address in 15 minutes).
  • The app only reaches My Phone features. Admin pages stay office-network only, even for admin logins.
  • The JSON API the app uses (/api/v1/app/*, /api/v1/me/*) is documented in docs/API.md.

Coming next

Instant notifications through UnifiedPush (the free ntfy app, no Google), a Do Not Disturb quick-settings tile, recordings, signed releases and F-Droid — and later a built-in SIP phone so the app can make and take calls itself. The full plan is in docs/ANDROID_APP_PLAN.md.