Present invention generally relates to the field of communications, and more particularly to a computer implemented method and system and computer programs for alerting an incoming communication in a communication application.
Voice over IP (VoIP) communication applications, such as Skype®, Viber®, Line®, TU Go®, etc. are usually implemented in iOS® and Android®, two dominant mobile Operating Systems.
iOS® is one of the two dominant computing devices Operating Systems, on top of which said variety of communication applications allow users to receive phone/video communications. Differently from Android®, iOS® imposes a number of restrictions on applications, intended to conserve battery and memory usage of the applications. iOS® Operating System is continuously evolving and its characteristics change from one release to another. However the following restrictions are found in at least certain versions of the iOS® Operating System:
Despite the dramatic effects that the previously mentioned limitations have on the functionality of communication applications and specifically on the Call Answer Rate, no reference has been found in the background that associates these limitations with this undesired effect, and consequently no method has been found in the state-of-the-art to overcome these limitations. As a matter of fact no single communications application has been found as of the date of writing the present disclosure that implements any method to overcome these limitations in order to improve the success rate of the communication alerts.
a illustrates current behavior when the application is running in the foreground of a computing device, i.e. the application is active and is being displayed in the computing device's screen. Communications Application is started and registers (1) with the corresponding Communications Service. Communications System, adds (2) a record to registrar module indicating that Bob's Application is online (the application of a user called Bob). Typical communication systems would also implement a mechanism to detect when Bob's Application has stopped being online, such as heartbeat, where the Application would need to periodically update its registration, and lack of a heartbeat over certain time interval, would trigger removal of active registration from the registrar module. Upon a communication (3) destined to Bob from other service or user (e.g. Alice) arriving to the Communications Service, the Communications System checks with registrar module (4) whether Bob is online. Communications System signals (5) the Application on details of incoming call.
Bob's Application checks whether it is in the foreground mode. In foreground mode the Application signals (6) incoming communication regularly—display incoming communication details, plays music, vibrates the phone, etc., which causes Bob being, alerted (7).
a illustrates current behavior when the application is running in background of a computing device, i.e. the application is active but it is not being displayed in the computing device's screen, but instead other application or the home screen is being displayed, or the device is in a locked screen status. By being in a locked screen status it is meant that the device is in a special state in which just a set of specific actions (i.e. unlocking actions, such as swipe to unlock) allow the user to interact with the device, thus preventing the user from accidentally invoking undesired actions, e.g. accepting a communication when the device is in the pocket. In this case, steps (1) to (5) are the same as in previous flow.
In background mode, or when the computing device is locked, Bob can't see the incoming communication notification, and alternative logic is usually performed. Bob's Application can start playing (6) background audio for incoming call. Due to iOS® current limitation, the music is played with volume setting intended for music and not for ringing and silent/do-not-disturb settings of the phone cannot be respected, representing one of the current limitations in this type of operating systems. Then Bob application triggers (7) a single local notification which appears among other pending notifications on the locked screen, which causes Bob being alerted (8).
If other application, or the home screen, is running in the foreground, the notification appears as a bar at the top of the screen for some limited time, which causes Bob being alerted (8).
Push Notification Service honors the request and sends (6) a notification to Bob's Phone OS, which alerts Bob (7) by prompting with a notification, which includes communication identifier. The user experience of remote notifications (triggered through Push Notification Service) can be identical to local notification and is shown on
The limitation in both cases is, as described before, that Bob receives a single notification, and can miss it or also can be transferred to a home screen from push notification alert displayed at a device with locked screen. In this case if Bob manually activates the communications application, it doesn't have the call-id from the push notification, preventing the application to answer the call. Only if Bob's does see (7) the notification on time, and properly acknowledge it, then Mobile OS can activate (8) the Application, in “call-pick-up” mode passing call-identifier. When Bob application is finally activated, it signals (9) Communications Service, that communication should be answered, optionally passing communication identifier to pick up the incoming call, and the communication is established (10) with the calling service/user Alice. As it can be appreciated this scenario presents similar limitations to the ones described in the previous scenarios.
Therefore, the usual mechanism said communication applications use in iOS® for notifying incoming communications is based on displaying a single local notification with a prolonged ringtone. This provides a long ringing sound but only a single vibration, which proves ineffective in common scenarios such as the user having muted their device, plus it does not solve the issue of the lock-screen unlocking.
The fact that these restrictions are present in iOS® and this operating system is taken as an example when describing the merits of the present invention does not rule out that other present or future Operating Systems may present similar limitations that can be overcome by the present invention.
To overcome the above mentioned limitations in the case of a communication application running in the background or being suspended/not running in a computing device, present invention in accordance with a first aspect provides a computer implemented method wherein a communication service receives a request, from at least one caller, for a communication destined to a user in at least one communication application and checks a state of said communication application with regard to a computing device, e.g. an iPhone, of the user. The communication application being adapted for a determined operating system installed in the computing device and being registered in the communication service.
On contrary of the known proposals the computer implemented method of the first aspect alerts said requested communication by: a) triggering, the communication application, an indication to the computing device operating system involving at least one of a visual indication, an audible indication or a vibration; then, after a certain period of time, preferably less than five seconds, b) requesting by said communication application to delete by the computing device operating system the triggered indication; and c) following that repeating steps a) and b) until the requested communication is established or the communication request from said caller finishes.
In case the communication application running in background of the computing device, the communication application is notified, by the communication service, of the details of the requested communication right after said state checking.
Alternatively, if the communication application is offline in the computing device, i.e. suspended or not running, a push notification service external of the computing device is used, right after said state checking, for informing the computing device operating system of the details of the requested communication and of an identifier thereof. After that, the computing device operating system initiates the offline communication application either automatically, in case of a silent push notification, or upon user action on the notification otherwise.
According to an embodiment, previous to performing the triggering, any previous notification of the communication application stored in the computing device operating system is deleted therein.
According to another embodiment, steps a), b) and c) are repeated in case the user unlocks the computing device and the communication application remains suspended or running in background of the computing device.
The communication application may be a local application installed in the computing device or alternatively a web communication application running in a browser of another computing device.
The requested communication comprises a real time communication including at least a voice communication or a video call.
In a second aspect the invention provides a computed implemented system for alerting an incoming communication in a communication application, including: a communication service configured to receive from a caller a request for a communication in at least one communication application and to check a state of said communication application with regard to a computing device of a user; and said communication application configured to be registered in the communication service and being appropriate for a determined operating system installed in the computing device. In addition, in the system of the second aspect the communication application and the computing device operating system are configured to work in a loop until the communication request is established or it finishes. For that reason, the communication application is further configured to trigger to the computing device operating system an indication involving at least one of a visual indication, an audible indication or a vibration; to wait a certain period of time and to further request to delete by said computing device operating system said triggered indication.
The system of the second aspect is adapted to implement the method of the first aspect.
In accordance with an embodiment, a push notification service external to the computing device is configured to inform of the requested communication details and of an identifier thereof to the computing device operating system.
The subject matter described herein can be implemented in software in combination with hardware and/or firmware, or a suitable combination of them. For example, the subject matter described herein can be implemented in software executed by a processor.
According to a third aspect there is provided a computer program product comprising computer executable software stored on a computer readable medium, the software being adapted to run at a computer or other processing means characterized in that when said computer executable software is loaded and read by said computer or other processing means, said computer or other processing means is able to at least perform the steps of the method according to any of claims 1-10.
Therefore the proposed method solves the different limitations present in the background, namely the following: when alerting an incoming communication the application does not need to rely on the background audio, which cannot honor the silent/do-not-disturb settings of the computing device, but can use an effective alternative alerting method; limited alerting capabilities of applications running in the background (e.g. firing a single vibration) are overcome; the problem the user faces when he/she unlocks the computing device and the operating system shows the home screen or any other application instead of activating the communications application, avoiding it to receive call-id from the push/local notification.
The previous and other advantages and features will be more fully understood from the following detailed description of embodiments, with reference to the attached, which must be considered in an illustrative and non-limiting manner, in which:
a is a flow diagram illustrating the situation occurred when mobile communication application is ringing in the foreground.
b illustrates the user experience when the mobile communication application is ringing in the foreground.
a is a flow diagram illustrating the situation occurred when mobile communication application is ringing in the background.
b illustrates the user experience when computing device is locked and an incoming communication is alerted with a local or push notification.
c illustrates the user experience when computing device is unlocked on home screen and an incoming communication is alerted with a local or push notification.
In reference to
The term ‘communication’ is to be understood in a wide sense referring to any kind of real time communications (such as voice call, video call, etc.).
The term ‘application’ is to be understood in a wide sense referring to different types of applications that may be available in a computing device, for instance native applications installed in the computing device, or web applications running in a browser.
In reference to
Upon a communication (3) destined to user UE from other service or user C arriving to the communications service 30, the latter 30 checks (4) with registrar module 40 whether user UE is online.
For the case in which application 20 runs in background of the computing device D, communication service 30 directly signals (5) it on the incoming communication.
Alternatively, for the case in which application 20 is offline, i.e. it is suspended or is not running, and the computing device operating system 10 supports local notifications, communications service 30 sends (6) a notification, e.g. a silent notification, to the computing device operating system 10 through a Push Notification Service 50, which is passed (7) to the computing device operating system 10, which in turn activates (8) or launches the application 20 with a notification, including communication or call identifier. The user experience of remote notification (triggered through Push Notification Service 50) is identical to local notification as already described and illustrated in
At that point, application 20 performs the following steps in a loop until user UE answers the requested communication or the communication alert finishes (e.g. the calling party abandons calling, the communication is diverted to a voice mail, etc.) without stopping the loop when user UE unlocks the computing device D: Generates (10b) a local indication with incoming communication details, allowing the computing device operating system 10 to alert user UE, triggering at least one of a visual indication, an audible indication or a vibration (10c) of the computing device D. In the specific case of iOS® local indications are a mechanism, which honor do-no-disturb and volume settings for alerts as opposed to background music playing. Then, the application 20 waits a configurable number of seconds (e.g. 3 seconds as showed in the figure) and then requests the computing device operating system 10 to delete the previously issued local indication (this step has not been illustrated in the figure for simplicity's sake) and then goes back to step 10b. At one point user UE notices the incoming communication alert (11) and requests the application 20 to answer (12) the communication, so the alerting loop is stopped and the application 20 signals (13) to the communications service 30 that the communication should be answered, optionally passing communication identifier to pick up the incoming communication, and the communication is established (14) with the calling service/user C.
In accordance with an embodiment, before the generation of said local indication all pending local notifications regarding the application 20 may be removed or deleted (10a) from the computing device operating system 10.
The loop where successive local indications are generated shortly after the previous has been cleared is intended to hide from the user this repetition scheme, so that it appears as a single prolonged one, whilst overcoming the limitations of the local notifications (e.g. in iOS® local notifications are allowed to just fire a single vibration). Not only this approach alerts more intensively user's UE attention than a single local or push notification (limited for instance to firing a single vibration), but also if user UE unlocked the computing device D without activating the specific local indication (e.g. by swiping on a point in the screen different from the notification) and thus being directed to the computing device's home screen, he is prompted with another notification an instant later (in the subsequent round of the loop), allowing him/her to notice and activate the application 20 by acknowledging the notification.
The proposed method may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or encoded as one or more instructions or code on a computer-readable medium.
Computer-readable media includes computer storage media. Storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Any processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
As used herein, computer program products comprising computer-readable media including all forms of computer-readable medium except, to the extent that such media is deemed to be non-statutory, transitory propagating signals.
The scope of the present invention is defined in the following set of claims.
Number | Date | Country | Kind |
---|---|---|---|
14382113.0 | Mar 2014 | EP | regional |