Due to iOS restrictions, our apps are limited in how they can run in the background. Therefore, when incoming calls arrive, we first need to send a message to wake up the app. If the app responds and registers in time, we forward the call to the app. These messages are processed by a new middleware component.
- Reinstall the app. This ensures you have the latest version and helps rule out other potential issues. Click here for step-by-step reinstallation instructions.
- Is your phone running the latest update? If not, update your phone.
- Restart your phone. Did this help?
Try calling over 4G/5G. If your problem is resolved or works better, we recommend using that network for better reachability. Read here for more information about the network.
The iOS operating system always makes the Voys App ring once for an incoming call, even if that call is no longer available. This can happen, for example, if you're in a call group and one of your colleagues has already answered the call.
This is a VoIP issue that always occurs with iOS. The Voys App is therefore not the only app with this problem. All other VoIP apps are affected, such as Bria or Zoiper. Our developers are doing everything possible to make the Voys App work as well as possible within the limitations of iOS.
Are you using the Screen Time feature? Make sure to add our app to Always Allowed.
- Go to the settings of your iPhone.
- Then go to Screen Time.
- Click on Always Allowed.
- Scroll through the list until you see the Voys app.
- Press the plus icon.
Due to iOS restrictions, our apps can only run in limited ways in the background. Therefore, with incoming calls, we first need to send a message to wake up the app. If the app does this and registers in time, we forward the call to the app. The messages for this are processed by a new middleware component. So make sure the app is always active.
- Go to the settings of your iPhone.
- Click on our app.
- Enable background refresh.
A VoIP device, such as a Yealink t41s, maintains an open connection (via REGISTER requests) with a VoIP platform. As soon as someone calls, they can find each other immediately. Mobile apps cannot maintain an open connection with our VoIP platform; they communicate via push notifications. This can be seen as an intermediate step between the VoIP platform and our app.
A phone device registers with us so we know how and where we can reach it. This includes IP address and port, the type of communication UDP/TCP/WS/TLS, and whether it's encrypted or not. When a call comes in for that device, we can route the call to it.
For a mobile device, keeping this continuously open doesn't work because the phone would drain quickly. By using push messages, we can wake up the app when there's a call, activating the app only when needed so it consumes energy only when necessary.
All calls are established in the following way:
Call from the caller —> VoIP Platform (Voys) —> Apple/Google Push Notification service —> Device —> Voys App.
Since iOS13, Apple has made a major change to their Apple Push Notification service. Because pushVoIP notifications were being misused for non-VoIP purposes, Apple completely revamped it. This means we now have to do things that aren't logical.
- With a push notification, we need to make the app ring and notify that there's an incoming call, even though we don't know if there's a good internet connection to conduct a call. After that, we have the app register on our platform so we can send a call to the app. This is completely backward because you'd want to hear a ringtone only after the device has registered. But this is what Apple requires.
- When you press answer, we need to start a timer showing that the call has been answered, but it's possible that a colleague just beat you to it, or that your (internet) connection has a problem and our system doesn't receive the message, meaning the call can't be established. So again, we have to pretend there's a call while it's not yet set up. This can create the impression that the app isn't working properly, but this is because we have to follow Apple's rules, which aren't really well thought out.
Despite now having a better app with version 7, it may seem like this version is worse than the previous one, but version 7 was released right around the introduction of iOS 13, which is why the app doesn't appear to be an improvement.
This has caused the communication to no longer happen so smoothly.
- Notifying a user now happens immediately and for every notification that comes in. The phone no longer receives VoIP notifications. So even if our system knows that the call has already been picked up by a colleague or that the caller has already hung up, your iPhone will still ring.
- Checks cannot be performed before a call is forwarded to your app. For example, checking if the network connection is strong enough. The user must always be disturbed.
- Finally, a push notification is not a call. An actual SIP call still needs to be established. Apple only requires that a user interface be created immediately.
In all these problems, your iPhone rings once, even though no connection can be established.
We've managed to implement several solutions to make the app work as best as possible, but after months of work, we now have a worse app than before iOS 13. The app can still ring even when you're not receiving a call anymore, or answering sometimes doesn't work because there's no call anymore.
The problem is not solved yet
- Open the app.
- Go to Profile.
- Go to App preferences.
- Scroll all the way down to Debugging.
- Turn on Remote Logging.
- Click Send under Send today's activity.
- Make sure Remote Logging is enabled.
- Click Send feedback.
- Briefly describe your problem. For example:
- 'I can make outgoing calls with the app, but I can't receive incoming calls.'
- Provide a few examples of when it happened with as specific date and time as possible. For example:
- March 12 at 13:13 with phone number 0612345678.
- Today at 13:15 with phone number 0678910112
- Click on Send feedback.
- Make sure Remote Logging is enabled.
- Note a few examples of when it happened with as specific date and time as possible. For example:
- March 12 at 13:13 with phone number 0612345678.
- Today at 13:15 with phone number 0678910112
If you'd like to troubleshoot the problem with us, please contact us.
Just click on the call icon in the bottom right corner of this page.