FreePBX suitability for mobile clients

Hi everyone,

We are running a FreePBX setup with a Dutch trunk provider. While our trunk stability is now solid, we are struggling with a critical issue regarding our mobile endpoints.

The Setup:

  • PBX: FreePBX (latest stable)
  • Clients: Android devices using the Linphone app (LTE/Mobile Data)
  • Network: Remote LTE connections (not on local WiFi)

The Problem:
Our clients do not consistently ring. Calls often fail to reach the mobile app, or the app only “wakes up” and shows a missed call once the user manually opens the app.

We suspect this is related to Android’s aggressive battery management. We have already tried:

  • Disabling Android Battery Optimization for Linphone.
  • Setting the app to “Unrestricted” battery usage.

Despite this, the issue persists. It feels like the SIP registration is timing out or the socket is being closed by the mobile OS/Carrier, and because we aren’t using a Push Notification service, the PBX has no way to “wake up” the device.

Our Technical Theory:
We believe the solution is either a shorter registration polling interval (which seems to drain battery rapidly and isn’t consistently supported) or a proper Push Notification architecture. As far as we know, the standard Linphone + FreePBX combo doesn’t handle the Push-to-Wake cycle natively without a middleman or specific configuration.

Our Questions:

  1. Client Alternatives: Are there other SIP clients that handle Android/iOS push notifications better when paired with FreePBX? (e.g., Groundwire, Zoiper, or the Sangoma Phone app?)
  2. Configuration: Is there a specific combination of qualify=yes and keepalive settings in FreePBX/Asterisk that helps maintain a persistent socket on LTE networks?
  3. Architecture: For those of you running mobile fleets on FreePBX, do you rely on standard SIP registration, or do you use a Push Proxy/Push Gateway to ensure 100% ring reliability?

We want to make FreePBX work for this use case, but we are at the point where we are considering other PBX platforms if this is a known limitation of the ecosystem.

For us we use Bria softphone clients. If I’m not mistaken there are client settings to help keep things “alive” as well as Bria’s push servers. Maybe give that a go and see if the experience is better!

Apple are even more aggressive. Generally you have to pay for push servers, and the actual push goes to a push handler, not direct to the phone application.

No PBX system out there can control individual mobile devices sleep mode. The issue you are having is the app is asleep/background so when the incoming calls are sent to the device, nothing is actively listening for those calls until the app wakeups/comes to the foreground. This is why many softphones with commercial options come with Push services. App registers to the Push service which then registers to the PBX. Incoming calls hits the Push services, which sends proper responses to the PBX while it sends a request to wakeup the app and then send the call to the app once it wakes up.

Select a mobile app solution that comes with Push services. If you still want to use Linphone there are OSS push service apps that work with Linphone.

This isn’t a PBX issue, it’s a softphone app/mobile device issue.

Groundwire out of the box reliably rings irrespective of the PBX. They have their push infrastructure in place

What you are experiencing with Linphone and FreePBX, you’d experience the same irrespective of the PBX. You NEED a push server. On a different Asterisk based server, I’m having to stand up Linphone’s Push server, Flexisip, to get push notifications going