The 3CX app on iPhone and Android does not keep a live connection open in the background. It relies on a push notification to wake it when a call comes in. If calls only ring when the app is open, ring late, or never ring, one link in that push chain is broken. In order, check: push is enabled for smartphones in the 3CX admin console; each status's forwarding rules have Accept push notifications ticked; the phone allows the app's notifications, background activity and (on Android) is exempt from battery optimisation; the app is on its latest version and freshly provisioned; and the office firewall lets the 3CX server reach the push services.
- A call arrives at the 3CX server for the extension.
- The server sends a push notification through Apple or Google.
- The phone wakes the 3CX app, which registers and takes the call.
If step 2 or 3 fails, the desk phone and web client still ring but the mobile does not, or the mobile rings after the caller has already given up.
In the 3CX admin console, check the app provisioning settings for the extension and make sure push for smartphones is enabled. Then reprovision the app (scan the QR code again from the user's welcome email or the web client) so it picks up the change.
Each extension has forwarding rules per status (Available, Away, Do Not Disturb, and custom ones). Open the extension's Forwarding rules and tick Accept push notifications for each status where the mobile should ring. A common miss: push is ticked for Available but not for Away, so the phone goes silent when the desktop app sets the user to Away.
iPhone:
- Settings > Notifications > 3CX: allow notifications, sounds and the lock-screen display.
- Turn off Focus modes that silence 3CX, or add 3CX as an allowed app.
- Settings > General > Background App Refresh: on for 3CX.
Android:
- Settings > Apps > 3CX > Notifications: allow all, including the incoming-call channel.
- Settings > Apps > 3CX > Battery: set to Unrestricted (wording varies by brand). Tecno, Infinix, Xiaomi, Oppo and Samsung phones are aggressive about killing background apps.
- Allow the app to display over other apps and to use full-screen notifications.
Old builds of the 3CX app are a common cause of push problems after a 3CX server upgrade. Update the app from the App Store or Play Store, sign out, and provision it again.
The 3CX server must be able to reach the push services on the internet, and the app must be able to reach the server afterwards, through port 5090 (the 3CX tunnel) or the server's web port. If push arrives but the call then fails, check 5090 is forwarded to the server (3CX firewall docs).
- Test on Wi-Fi and on mobile data. If it only fails on one, the network blocks something.
- Check whether the call reaches the extension at all: look at the call log in the admin console. If the call went to voicemail before the app could answer, raise the ring time on the extension.
- Make sure the user has not installed the app on two phones with the same extension, which can split the push.
If most of your staff take calls on their phones, the PBX in between adds failure points. Sautikit's phone apps for iPhone, Android and desktop register straight to the cloud, and a call to your Kenyan number rings every device on the extension. A Sautikit number costs KES 500 a month, inbound calls are free, and outbound calls cost KES 3.00 a minute billed per second, with no licence to renew. See how it compares in Sautikit vs 3CX.
Push notifications are not reaching the phone, or are reaching it but the app is not allowed to wake up. Check push is enabled in the admin console, ticked in the forwarding rules for every status, and allowed in the phone's notification and battery settings.
The push is delayed, usually by battery optimisation on Android or a weak data connection. Exempt 3CX from battery optimisation and test on Wi-Fi and mobile data.
Yes, for the 3CX tunnel the apps use to reach a server outside the office network. Forward UDP and TCP 5090 to the server.
Old app builds and old provisioning profiles can stop receiving push after a server upgrade. Update the app, sign out and provision it again from the QR code.