OTT VoIP made easy on iOS10
Anyone who once received an OTT VoIP call on an iOS device knows the drill, you need to unlock the phone, get back to that notification and answer the call hoping you did all of this fast enough so call didn’t timeout. If an incoming, operator generated, call would come in while you are on a VoIP call it would override that VoIP call putting it on hold without letting the user make his choice as is done with 2 telephony calls through call waiting.
This dialer priority problem is part of the overall OTT VoIP calls experience problem that is a roadblock for OTT VoIP calls to really replace telephony mobile calls.
In iOS10, Apple introduced CallKit which comes to put an end to this challenge by giving OTT VoIP apps the ability to offer on a par experience with telephony calls. CallKit connects between the phone’s system services such as telephony and audio devices to VoIP applications. VoIP applications that decide to make use of CallKit will interact with CallKit when making calls, receiving calls or performing actions on a call such as muting it.
Some of the benefits from user experience perspective:
- Incoming calls are alerted and answered in the same way telephony calls are, goodbye to that terrible locked screen experience when answering a VoIP call
- The system knows about all calls, telephony or VoIP, and handles them in the same priority. This means that if a user is on an operator phone call and wants to make a VoIP call, the telephony call will be placed on hold
- Incoming telephony call no longer automatically put VoIP calls on hold but rather are viewed as call waiting
- It is possible to swap between active and held calls regardless if they are VoIP or telephony calls
- VoIP calls are visible on recent calls and included in user’s contact information
- VoIP calls are visible and easily returned to from home screen
Here are some snippets from the Apple WWDC 2016.
This is how an incoming call works with CallKit. Instead of that push notification coming up on your screen the iOS system will actually view it as a call, not just a notification.
And this is how an outgoing VoIP call looks like now.
In both cases call setup goes through updating CallKit and the iOS system so multiple calls can be managed properly as seen in the call waiting example below. It now doesn’t matter what type of call it is, VoIP or operator one, all calls are born equal.
Screenshot below shows how a VoIP call remains active in home screen so returning to it is just like it was with operator telephony calls before.
Not technical but a strategic business decision
To date, Apple made life of VoIP app developers pretty complex. Android was more open in this sense (as in many other things). The decision of Apple to give VoIP calls the same priority as operator telephony calls is not a technical decision, it is a strategic decision to pull the rug out from under the operators’ advantage around user experience.
As OTT VoIP and operator calls are made equal on iOS10 users will become more indifferent as to which service to use. This makes OTTs stronger and when looking specifically at the business sector, it makes the embedding of telephony in business communications and collaboration services more natural.