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.
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
| Screen | What you can do |
|---|---|
| Messages | Inbox 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. |
| Calls | All / Missed history; tap a call to text back or block the number. |
| Voicemail | New / Old, play inside the app, move to Old, swipe or multi-select delete with Undo. |
| Settings | Switches 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
- On GitHub open Actions → Android app, pick the latest green run and download my-phone-debug-apk under Artifacts.
- Unzip it and open the
.apkon 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)
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
111111or123456are 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-updateadds the app API and theapp_devicestable. 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 indocs/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.