Abstract: The present subject matter relates to systems and methods for ranking a plurality of real-time multimedia chat applications in a user device for a call. In an implementation, a configuration of the user device, indicative of a performance capability of the user device, and a real-time user device data comprising one or more of location, motion, and signal strength of the user device at a given instant of time is obtained. Further, a real-time network data, indicative of a current performance of a communication network associated with the user device, is obtained. Further, performance statistics associated with each of a plurality of application servers that host the plurality of real-time multimedia chat applications is determined. In an implementation, the plurality of real-time multimedia chat applications are ranked based on the configuration, real-time user device data, real-time network data, and the performance statistics of application servers.
FIELD OF INVENTION
|0001] The present subject matter relates to wireless communication and,
particularly but not exclusively, to ranking of real-time multimedia chat applications
for a given call.
BACKGROUND
[0002) With recent advances in wireless mobile communication technology, a
large number of voice and data services are made available to users of
10 communication devices. Today, to communicate with each other in real-time
multimedia chat sessions, in addition to the traditional circuit switched voice call
services, users can choose from amongst numerous other available services, such as
Voice over Internet Protocol (VoIP) services and Voice over Long Term Evolution
(LTE) (VoLTE) services. Also, amongst each of these services the users may have
15 further option. For example, to make a VoIP call, a user can choose from several realtime
multimedia chat applications, such as Skype''''^, Google Hangouts''"'^, and
FaceTime''^'^ that may be installed on his communication device.
|0003] However these different applications require different communications
capabilities. As a result, these applications may provide a different performance as
20 perceived by a user depending upon various factors, such as capabilities of the
communication device used and the performance of the service provider network to
which the communication device connects. Further, the performance of the
applications may also depend on capabilities and performance of application servers
that host these applications.
25
SUMMARY
[0004| This summary is provided to introduce concepts related to ranking a
plurality of real-time multimedia chat applications in a user device for a call. This
summary is not intended to identify essential features of the claimed subject matter
5 nor is it intended for use in determining or limiting the scope of the claimed subject
matter.
|0005] In an embodiment of the present subject matter, a method for ranking
a plurality of real-time multimedia chat applications, in a user device of a calling
user, for a call is described. The method comprises determining a configuration of the
10 user device of the calling user, wherein the configuration is indicative of a
performance capability of the user device. The method also comprises obtaining a
real-time user device data comprising one or more of location, motion, and signal
strength of the user device from the user device of the calling user at a given instant
of time. The method further comprises obtaining a real-time network data indicative
15 of a current performance of a communication network from the communication
network associated with the user device of the calling user.
[0006] Further, the performance statistics associated with each of a plurality
of application servers, wherein each of the plurality of application servers hosts at
least one real-time multimedia chat application from amongst the plurality of real-
20 time multimedia chat applications in the user device is determined. The performance
statistics comprises information relating to latency in delivering data packets from the
communication network associated with the user device of the calling user to each of
the plurality of application servers. In accordance with one implementation of the
present subject matter, the plurality of real-time multimedia chat applications are
25 ranked for the call based on the configuration of the user device of the calling user,
real-time user device data of user device of the calling user, real-time network data of
communication network associated with the user device of the calling user, and the
performance statistics associated with each of a plurality of application servers.
Further, a real-time multimedia chat application is selected from amongst the
plurality of real-time multimedia chat applications, for the call based on the ranking.
10007] In an example implementation, the ranking of the real-time
multimedia chat applications may also be based on at least one of the configuration of
5 the user device of a called user, the real-time user device data of the user device of
the called user, the real-time network data of the communication network associated
with the user device of the called user, and the performance statistics indicating a
latency in delivering data packets from the communication network associated with
the user device of the called user to each of the plurality of application servers.
10 [0008] In an embodiment of the present subject matter, an application ranking
system for ranking real-time multimedia chat applications in a user device of a
calling user for a call is described. The application ranking system comprises a
processor and a user device communication module coupled to the processor to
determine a configuration of the user device of the calling user. The configuration is
15 indicative of a performance capability of the user device of the calling user. The user
device communication module is also to obtain a real-time user device data of the
user device of calling user, wherein the real-time user device data comprises one or
more of location, motion, and signal strength of the user device at a given instant of
time.
20 ]0009] The application ranking system further comprises a network entity
communication module coupled to the processor. The network entity communication
module obtains a real-time network data of a communication network associated with
the user device of calling user, the real-time network data being indicative of a
current performance of the communication network.
25 ]00101 In one embodiment, the application ranking system further includes an
application server communication module which is also coupled to the processor.
The application server communication module determines performance statistics
associated with each of a plurality of application servers, wherein each of the
plurality of application servers hosts at least one real-time multimedia chat
application from amongst the plurality of real-time multimedia chat applications, and
wherein the performance statistics comprises information relating to a latency in
5 delivering data packets from the communication network of the user device to each
of the respective plurality of application servers.
[0011] In accordance with one implementation of the present subject matter,
an application ranking module coupled to the processor ranks the plurality of realtime
multimedia chat applications for the call based on at least the configuration of
10 the user device of the calling user, real-time user device data of user device of the
calling user, real-time network data of communication network associated with the
user device of the calling user, and the performance statistics associated with each of
the plurality of application servers. Further, a real-time multimedia chat application is
selected, from amongst the plurality of real-time multimedia chat applications, for the
15 call based on the ranking.
[0012] In accordance with one implementation of the present subject matter,
the application ranking system may further be configured to rank the plurality of realtime
multimedia chat applications for the call based on at least one of the
configuration of the user device of a called user, the real-time user device data of the
20 user device of the called user, the real-time network data of a communication
network associated with the user device of the called user, and the performance
statistics indicating a latency in delivering data packets from the communication
network associated with the user device of the called user to each of the plurality of
application servers.
25 |0013] In yet another embodiment, non-transitory computer-readable medium
having embodied thereon a computer program for executing a method of identifying
a real-time multimedia chat application from amongst a plurality of real-time
multimedia chat applications in a user device of a calling user for a call is described.
The computer program may be executable by a processing resource to provide a
configuration determination input to an application ranking system coupled to the
user device of the calling user. The configuration determination input enables the
application ranking system to determine a configuration of the user device of the
5 calling user, the configuration being indicative of a performance capability of the
user device of the calling user.
[0014) The computer program may be further executable to provide a realtime
user device data of the user device of the calling user to the application ranking
system, wherein the real-time user device data comprises one or more of location,
10 motion, and signal strength of the user device at a given instant of time. Further, in
response to providing the configuration determination input and the real-time user
device data to the application ranking system, an indication of a real-time multimedia
chat application from amongst the plurality of real-time multimedia chat applications
identified for the call is received and the call is initiated based on the received
15 indication.
BRIEF DESCRIPTION OF THE FIGURES
[0015] The detailed description is described with reference to the
accompanying figures. In the figures, the left-most digit(s) of a reference number
20 identifies the figure in which the reference number first appears. The same numbers
are used throughout the figures to refer features and components. Some embodiments
of system and/or methods in accordance with embodiments of the present subject
matter are now described, by way of example only, and with reference to the
accompanying figures, in which:
25 |0016[ Figure 1 illustrates a network environment implementing an
application ranking system for ranking a plurality of real-time multimedia chat
applications in a user device for a call, in accordance with an embodiment of the
present subject matter:
|0017] Figure 2 illustrates a signal flow diagram for ranking a plurality of
real-time multimedia chat applications in a user device for a call, in accordance with
5 an embodiment of the present subject matter;
|0018] Figure 3 illustrates a user device, in accordance with an embodiment
of the present subject matter;
[0019] Figure 4 illustrates an application ranking system for ranking a plurality of
real-time multimedia chat applications in a user device for a call, in accordance with
10 an embodiment of the present subject matter;
[0020] Figure 5 illustrates a method for ranking a plurality of real-time
multimedia chat applications in a user device of a calling user for a call, in
accordance with an embodiment of the present subject matter;
[0021J Figure 6 illustrates a method for ranking a plurality of real-time
15 multimedia chat applications in a user device of a calling user for a call, in
accordance with another embodiment of the present subject matter; and
|0022] Figure 7 illustrates a method for identifying a real-time multimedia
chat application from amongst a plurality of real-time chat applications in a user
device of a calling user for a call, in accordance with an embodiment of the present
20 subject matter.
|0023| It should be appreciated by those skilled in the art that any block
diagrams herein represent conceptual views of illustrative systems embodying the
principles of the present subject matter. Similarly, it will be appreciated that any flow
charts. t1ow diagrams, state transition diagrams, pseudo code, and the like represent
25 various processes which may be substantially represented in computer readable
medium and so executed by a computer or processor, whether or not such computer
or processor is explicitly shown.
Dr:scRiPTioN Oi- EIVIIK)DIMI:N i s
|0024] Real-time multimedia chat sessions can be conducted in various
5 modes, for example, a real-time multimedia chat session may be a voice chat session,
a video chat session, or a high-definition (HD) video chat session. Typically, users
use real-time multimedia chat applications residing on their user devices, such as
smartphones, tablets, and personal digital assistant (PDAs) to engage in real-time
multimedia chat sessions. Examples of real-time multimedia chat applications
10 include, but are not limited to, over-the top (OTT) real-time multimedia chat
applications, such as Skype''"'^ and Google Hangouts''"'^; and default real-time
multimedia chat applications that may be provided in a user device by the
manufacturer of the user device, for example, Apple FaceTime''"'^, nowadays
provided by Apple''"'^ in several Apple^"^ devices. For the ease of readability, the real-
15 time multimedia chat applications are hereinafter referred to applications in the
present description.
[0025] The performance of an application is contingent upon numerous
factors, such as capabilities of a user device on which the application is installed, the
congestion in a communication network associated with the user device and the
20 performance of the application server that hosts the application. Each of these factors
has a different impact on a given application. Thus, the various applications perform
differently in different user devices. Also, in a given user device, one application may
exhibit a pertbrmance which is varied from that of another application. In other
words, there may exist a significant variation in the Quality of Service (QoS) that
25 may be expected from each of the applications when used to make a call at a given
instant of time.
|0026| The current performance of an application used by a user for a realtime
multimedia chat session, also referred to as a call, directly impacts the Quality of
Experience (QoE) of the user for the call. However, conventionally, choosing an
application, which has the best performance at an instant the user wishes to make a
call from amongst the several applications that may be available on the user device of
the user, is not possible since the user is not aware of the performance of each of the
5 applications on a real-time or near real-time basis. Also, as would be understood,
issues relating to the performance of the communication network associated with the
user device and the performance of the application servers that host the applications
are beyond the visibility of the user device.
[0027] Further, upon having chosen an application, from amongst the several
10 applications that may be available on the user device, the user may still not be aware
of a type of call that should be made using the application in order to get a desired
QoE. For example, once a user has selected an application that can be used to make
an audio call, a video call, and a high-definition (HD) video call, he further needs to
determine which of these three options should be availed to have a satisfactory QoE.
15 [0028] Thus, presently while choosing an application for a call and deciding
the type of call the user has no visibility into what possible performance issues may
arise during the call. For example, there exists a possibility that an application that
may have been selected by the user for the call may be performing poorly due to
heavy traffic at the application server associated with the selected application and
20 hence the user may experience poor QoS and in turn poor QoE. Choosing an option
from amongst the several available applications is generally based on the user's
preference. At best, the user's preference may be based on his past experiences.
Therefore, more often than not. there are situations when a better alternative is
available to the user at a particular time, but due to lack of visibility, the user may not
25 avail of the same and experience poor QoS and QoE.
|0029| In some cases, a user may make a test call immediately prior to the
call to determine whether an application is working fine. However, to determine a
current performance of different applications so as to select a most suitable one. may
require the user to make several test calls. Such an approach is time consuming and
may lead to user frustration. Further, making several test calls may involve incurring
cost since very few applications allow users to make test calls on a free-of-charge
basis.
5 |0030| According to an implementation of the present subject matter, systems
and methods for ranking a plurality of applications in a user device of a user for a call
are described. The systems and methods for ranking the plurality of applications
determine the performance of the several applications in real-time or in near real-time
in order to rank the applications and in turn identify a most suitable application for
10 the call along with and a type of call that may be made using the application. For
example, the type of the call may be an audio call, a video call, or a HD video call. In
one example, systems and methods of the present subject matter take numerous static
and dynamic factors that affect the performance of the applications into account to
rank the applications for the call.
15 10031) In an embodiment of the present subject matter, the systems and
methods comprise determining a configuration and a real-time user device data of the
user device of a calling user. The configuration of the user device is indicative of a
performance capability while the real-time user device data comprises location,
motion, and signal strength of the user device at a given instant of time. Further, a
20 real-time network data indicative of a current performance of a communication
network associated with the user device of a calling user may also be obtained. In
accordance with yet another implementation, the systems and methods further
comprise ascertaining the performance statistics associated with each of a plurality of
application servers that host the applications residing in the user device of the calling
25 user. For example, the performance statistics may comprises information relating to
latency in delivering data packets from the communication network associated with
the user device of the calling user to each of the plurality of application servers.
10
|0032] In accordance with one embodiment of the present subject matter, the
various real-time data, such as the real-time user device data, real-time network data
and performance statistics associated with each of the plurality of application servers
may be considered as dynamic data that may vary with time. Such dynamic data may
5 be obtained in real-time, near-real time, or may be collected from any relevant
sources that may cache such dynamic data.
[0033] In accordance with one implementation of the present subject matter,
the systems and methods provide for ranking the plurality of applications for the call
based on the configuration of the user device of the calling user, real-time user device
10 data of user device of the calling user, real-time network data of the communication
network associated with the user device of the calling user, and the performance
statistics of the application servers.
[0034] In an example implementation, the systems and methods of the present
subject matter obtain the contact information of a user device of a called user from
15 the calling user. Further, the systems and methods determine the configuration of the
user device of the called user, the real-time user device data of the user device of the
called user, the real-time network data of a communication network associated with
the user device of the called user, and the performance statistics indicating latency in
delivering data packets from the communication network associated with the user
20 device of the called user to each of the plurality of application servers. Accordingly,
in one implementation, the systems and methods of the present subject matter provide
for ranking the applications based on factors relating to the called user.
[0035] Accordingly, the ranking based on the current performance of the
applications identities the most suitable application at a given instant that may be
25 utilized for the call. Further, in one implementation, along with the most suitable
application, a type of call that may be made using the application, for example, an
audio call, a video call, or a HD video call is also indicated to the user. This ensures
an enhanced QoE for the user and also increases user's satisfaction. Further, the users
can avoid making a number of test calls and thereby savings time and resources.
10036] It should be noted that the description merely illustrates the principles
of the present subject matter. It will thus be appreciated that those skilled in the art
5 will be able to devise various arrangements that, although not explicitly described
herein, embody the principles of the present subject matter and are included within its
spirit and scope. Furthermore, all examples recited herein are principally intended
expressly to be only for pedagogical purposes to aid the reader in understanding the
principles of the invention and the concepts contributed by the inventor(s) to
10 furthering the art, and are to be construed as being without limitation to such
specifically recited examples and conditions. Moreover, all statements herein reciting
principles, aspects, and embodiments of the invention, as well as specific examples
thereof, are intended to encompass equivalents thereof.
[0037] The manner in which the systems and methods for ranking a plurality
15 of applications in a user device for a call may be implemented has been explained in
details with respect to the Figures 1 to 7. While aspects of described systems and
methods can be implemented in any number of different computing systems,
transmission environments, and/or configurations, the embodiments are described in
the context of the following exemplary system(s).
20 [00381 Figure 1 illustrates a network environment 100, for ranking a plurality
of applications in a user device for a call, in accordance with an embodiment of the
present subject matter. The network environment 100 comprises a communication
network 102 to which a calling user device 104-1. and a called user device 104-2 may
connect for communicating with each other. Examples of the calling user devices
25 104-1. and the called user devices 104-2 include, but are not limited to. hand-held
devices, laptops or other portable computers, tablet computers, mobile phones. PDAs,
and Smartphones.
|0039| The communication network 102 may be a wireless or a wired
network, or a combination thereof. The network 106 can be a collection of individual
networks, interconnected with each other and functioning as a single large network
(e.g.. the internet or an intranet). Examples of such individual networks include, but
5 are not limited to. Global System for Mobile Communication (GSM) network.
Universal Mobile Telecommunications System (UMTS) network. Personal
Communications Service (PCS) network. Time Division Multiple Access (TDMA)
network. Code Division Multiple Access (CDMA) network. Next Generation
Network (NGN), Public Switched Telephone Network (PSTN), and Integrated
10 Services Digital Network (ISDN). Depending on the technology, the network 106
includes various network entities, such as gateways, routers; however, such details
have been omitted for ease of understanding.
[0040] Although the figure depict only one communication network 102, it
would be appreciated that the network environment 100 may include several
15 communication networks each implemented by a different service provider and
wherein the calling user device 104-1 and the called user device 104-2 may connect
to a communication network of their respective service provider.
[0041] The calling user device 104-1 and the called user device 104-2 may be
capable of engaging in real-time multimedia chat sessions with each other. For
20 example, the calling user device 104-1 and the called user device 104-2 may include
multiple applications that may enable them to conduct real-time multimedia chat
sessions, interchangeable referred to a call for simplicity. As mentioned previously,
applications may be OTT applications, or default applications that may be provided
in a user device by the manufacturer of the user device. Each of these applications
25 may enable a plurality of types of call, for example, the call may be a voice call, a
video call, or a HD video call. Examples of such applications include, but are not
limited to. Skype"'^'^. Google Hangouts''^'^. and Apple FaceTime^^^ Each of the
applications is hosted by one or more application servers 106-1. 106-2....106-N that
13
are also connected to the communication network 102. Each of these application
servers 106-1. 106-2....106-N may also be implemented as a computing device, such
as a mainframe computer, a server, a desktop computer, and the like.
|0042] Upon initiation of the call, the calling user device 104-1 may connect
5 to the communication network 102. As would be understood, the calling user device
104-1 may connect to a network entity 108, such as a base transceiver station (BTS)
or a NodeB associated with the user device 104-1 of the calling user, and thereafter to
a network controller 110, such as a mobile switching center (MSC) or radio network
controller (RNC) and in turn to a network entity 112, such as a base transceiver
10 station (BTS) or a NodeB associated with the called user device 104-2. Further, the
network controller 110 may also communicate with an application server, such as
application servers 106-1 that may be hosting the application being used for the call.
10043] Techniques that allow two or more user devices to communicate over
of a network, such as communication network 102 using an application are generally
15 known in the art and hence are not described herein to maintain brevity of
description. It will also be understood by one skilled in the art that different network
elements may come into play to complete a call between a calling user and a called
user depending upon the configuration of the communication network 102. Example
of such network elements include a variety of network devices, including routers,
20 bridges, servers, computing devices, storage devices, etc. that may be implemented in
the communication network 102. however, have not been described for the ease of
readability.
[0044] In accordance with one implementation of the present subject matter
described herein, a calling user may be indicated an application, which, at a given
25 instant of time, may perform better than the other available applications residing in
the calling user device 104-1 and may be used for making the call. In one example,
the calling user devices 104-1 may include an application ranking module 1 14-1 that
may provide a ranked list of the available applications to the calling user. Further, in
accordance with one implementation of the present subject matter, the application
ranking module 114-1 may also indicate a type of call, for example, an audio call, a
video call, or a HD video call that may be made.
|0045] In accordance with one implementation of the present subject matter
5 described herein, the application ranking module 114-1 communicates with an
application ranking system 116 to receive the ranked list of the applications. For the
purpose, in accordance with an embodiment of the present subject matter, the
network environment 100 includes one or more application ranking systems 116 that
provide for ranking the applications in the calling user device 104-1 for a call and, in
10 one embodiment, also indicate the type of call.
[0046] The application ranking system 116 can be implemented as a variety
of servers and communication devices. The communication devices that can
implement the application ranking system 116 include, but are not limited to, central
directory servers, database server, file server, web server, application server, and the
15 like. The application ranking system 116 may also be implemented as a computing
device, such as a laptop computer, a desktop computer, a notebook, a workstation, a
mainframe computer, a server in a standalone entity or in a cloud and the like. In an
implementation, the application ranking system 116 may also be implemented on a
mobile phone based server.
20 |0047| In one implementation, the application ranking system 116 may be
deployed in an operator's premise. In another implementation, the application
ranking system 116 may be deployed in a third-party provider's premise. The thirdparty
provider may be the one who may provide the ranked list of applications to
calling users or to the operator, for example, as a paid service.
25 10048] In one embodiment of the present subject matter, at an instant when a
calling user initiates a call, the application ranking system 116 ascertains the
numerous static and dynamic factors that may impact the performance of applications
15
and provides the ranked list of the applications to the calling user. Examples of static
factors include, but not limited to, the configuration of the calling user device 104-1.
and called user device 104-2 involved in the call. Example of dynamic factors
include, but are not limited to, the congestion in the communication network 102 and
5 the load on an application server, such as the application server 106-1 that may be
hosting the application used for the call.
|0049] In one implementation, the application ranking system 116 may be
coupled to a network diagnostic tool 118. As would be understood, the network
diagnostic tool 118 may be computing device, such as a server implementing a
10 diagnostic application that is capable of monitoring network entities of a
communication network, such as the communication network 102 to determine
various factors relating to their performance. The network diagnostic tool 118
provides information relating to the current performance of the communication
network 102 to enable the application ranking system 116 to rank the applications.
15 [0050] In some example implementations, the application ranking system 116
is coupled to one or more events server 120 that provide information relating to
various recent events in the location of the calling user or the called user that impacts
the performance of the communication network 102 or the performance of one or
more of the plurality of application servers 106-1, 106-2...106-N. Examples of such
20 recent events include event that may cause heavy data traffic in the location of the
calling user or the called user. Accordingly, the application ranking system 116
receives information relating the recent events from the events server 120 an analyzes
the same to ascertain an abnormality in performance of the communication network
102 or any of the plurality of application servers 106-1. 106-2...106-N and ranks the
25 applications based on the analysis.
|0051| The working and implementation of the application ranking system
1 16 has been elaborated subsequently in reference to figures 2. 4. 5 and 6. Figure 3
and 7 describe working and implementation of a user device that may be coupled to
16
the application ranking system to identify an application from amongst a plurality of
applications in the user device for a call.
|0052] Figure 2 illustrates a signal flow diagram for ranking a plurality of
applications in a user device of a calling user for a call, in accordance with an
5 embodiment of the present subject matter.
[0053] For explanation purposes, the signal flow diagram is described in
reference to a calling user device 202 and a called user device 204. As evident, the
calling user device 202 is a user device used by a calling user to call a called user on
the called user device 204. For the purpose, the calling user device 202 and the called
10 user device 204 couple to their respect communication networks herein referred to as
a calling device network 206 and a called device network 208. To identify the
application and the type of call that may be best suited for the call amongst several
available options, the calling user device 202 may connect to the application ranking
system 116. For example, the calling device network 206 may include an application
15 ranking module, such the application ranking module 114-1 described earlier, to
communicate with the application ranking system 116 to identify the application and
the& type of call. For the present discussion, it may be considered that the
application ranking system 116 is aware of the applications residing in the calling
user device 202 and the called user device 204, for example, by receiving periodic
20 updated from the respective user devices 202 and 204 or by pulling the information
regarding the applications residing in the user devices 202 and 204 in real time. The
operation of the application ranking system 116 to enable identification of the best
suited application is explained below.
|0054| It will also be appreciated by those skilled in the art that in the present
25 description the words during, while, and when as used herein are not exact terms that
mean an action takes place instantly upon an initiating action but that there may be
some small but reasonable delay, such as a propagation delay, between the initial
action and the reaction that is initiated by the initial action. Additionally, the word
"connected" and "coupled" is used throughout for clarity of the description and can
include either a direct connection or an indirect connection.
|0055] At step 210 and 212, the application ranking system 116 obtains a
configuration determination input from the calling user device 202 and the called user
5 device 204. respectively. The application ranking system 116 determines the
configuration of the calling user device 202 and the called user device 204 based on
the respective configuration determination input. The configuration of a user device
is indicative of a performance capability of the user device. In one example,
configuration a user device comprises information, such as an operating system, a
10 size of the random access memory and a processing speed of a processor of the user
device. Further, in one implementation, the configuration of a user device may also
comprise network capabilities and bandwidth capabilities of the user device.
[0056] Based on the operating system, identified to be present in the calling
user device 202 and the called user device 204, for example. Android, Windows, or
15 iOS, the application ranking system 116 may determine the compatibility of an
application with the identified operating system. The performance of a given
application may differ from one operating system to another and accordingly
identification of the operating system affects the ranking of the application. Similarly,
determination of the size of the random access memory and processing speed of the
20 processor allows ascertaining whether the recommended memory requirement and
processor requirement of an application are met by the calling user device 202 and
the called user device 204 or not.
|0057| Further, network capabilities and bandwidth capabilities of the user
device also affect the ranking of the applications. As would be understood, network
25 capabilities of user device determine the type of networks that the user device can
access. For example, a legacy device may not be able to access a 3G network even if
such a network is available to the legacy device, in such a situation, applications that
work on 3G network may not perform well in the legacy device. Similarly.
18
performance of the applications also depends on the bandwidth capabilities of the
user device. User devices having greater bandwidth capabilities can process and
transfer more bits of data per unit of time. This makes user devices having greater
bandwidth capabilities more suitable for applications that have a higher bandwidth
5 requirement, for example, an application that allows HD video calls, and vice versa.
Thus, network and bandwidth capabilities of the user device affect the ranking of the
applications.
[0058] The application ranking system 116 may implement a variety of
^ 1 techniques to determine the configuration of the calling user device 202 and the
10 called user device 204. For example, in accordance with one implementation, the
application ranking system 116 may communicate with the user devices 202 and 204
to obtain a configuration determination input from the respective user devices 202
and 204. The configuration determination input received from a user device may be a
International Mobile Station Equipment Identity (IMEI) of the user device based on
15 which the application ranking system 116 may determine the configuration of the
user device, for example, by identifying the model of the user device or by searching
a database containing configuration details of various user devices. Although not
shown in the figure, in another example, the application ranking system 116 may
inquire the configuration of the calling user device 202 and the called user device 204
20 from the calling device network 206 and the called device network 208. respectively.
^ ^ since, generally, a communication network may be aware of the configuration of the
user devices connected to it.
|0059] At step 214 and 216. the application ranking system 116 obtains a
real-time user device data of the calling user device 202 and the called user device
25 204. respectively. The real-time user device data may be understood as dynamic
factors relating to a user device that may impact the performance of an application on
the user device in real-time. In one example, the real-time user device data
comprising one or more of location, motion, and signal strength of the user device at
a given instant of time. In another example, the real-time user device data further
comprises an access technology used by the user device to access the communication
network associated with the user device, a type of communication network accessed
by the user device and the bandwidth assigned to the user device by the accessed
5 communication network. As apparent to one skilled in the art, the access technology
used by a user device to access an associated communication network is based on the
type of communication network being accessed. For example, a user device may
implement a wireless access technology to access a 2G network which may be
different from a wireless access technology used by the user device to access a 3G
10 network.
|0060] The application ranking system 116 may obtain the real-time user
device data of the calling user device 202 and the called user device 204 from the
respective user devices, or in one embodiment, from a network entity of the
communication network of the respective user devices 202 and 204. Techniques to
15 determine location and motion of a user device are conventionally well known and
have therefore not been elaborated here. One such technique may involve using a
global positioning system (GPS) application that may be installed on the user device.
[0061] The location and motion information may be used in conjunction with
historic data to predict the performance of a particular application in real-time and
20 near real-time. In one implementation, based on historic data, for example, that may
have been collated by the application ranking system 116 or may have been received
by the application ranking system 116 from an external source, it may be determined
that application 'A' exhibits good performance at stationary condition and at
pedestrian speed while it exhibits significantly degraded performance at vehicular
25 speed. Accordingly, the ranking of application 'A' may be made low compared to
application 'B' that performs well at vehicular speed. As understood, a decision to
rank the application A lower than application 'B' depends on the mobility information
of the calling user device 202 and the called user device 204.
20
|0062] Further, in an example, the access technology used by the calling user
device 202 and the called user device 204 may also be obtained from the respective
user devices 202 and 204. Additionally, in one embodiment, the type of
communication network accessed by the user device, for example, second generation
5 (2G), third generation (3G), or long term evolution (LTE) may also be obtained from
the respective user devices 202 and 204. In yet another embodiment, the bandwidth
assigned to the user device by the communication network that the user device may
be currently accessing may also be determined. The application ranking system 116,
in some implementations, may query the calling device network 206 and the called
10 device network 208, to determine the access technology, type of network and
bandwidth assigned to the calling user device 202 and the called user device 204,
respectively. The access technology, type of network and bandwidth as determined in
real-time is used to find out whether or not an application that may be used to make a
call at the given instance will exhibit a desired performance and accordingly the rank
15 of the application may be decided.
|0063] Further, the access technology and type of communication network
accessed by the user device may also be indicative of other factors, such as the
throughput and battery consumption that may in turn also affect the ranking of an
application. For example, if it is determined that based on the current access
20 technology, which may be wireless, and the type of communication network which
may be 3G. for example, an application 'C that provides HD video call, may drain
the remaining battery of a user device in 10 minutes, the ranking accorded to
application 'C may be lower than that of application 'D' which may be provide a
VGA video call or an audio call for a comparatively significantly longer duration.
25 |0064| In accordance with one embodiment of the present subject matter, at
step 218 and 220. the application ranking system 116 obtains a real-time network
data of the calling device network 206 and the called device network 208.
respective!}. The real-time network data is indicative of a current performance of a
21
communication network. In one example, the real-time network data comprises
information relating to average air link packet retransmissions, average air link
packet drops, and average network link data throughput between a user device
associated with the communication network and the communication network. The
5 real-time network data may also comprise the average network link data throughput
between the communication network and each of the respective application servers
for a predetermined time period.
[0065] In one example, the application ranking system 116 may receive the
real-time network data from a network entity in the calling device network 206 and
10 the called device network 208. The network entity may be a BTS or MSC; NodeB, or
RNC of the calling device network 206 and the called device network 208, depending
on the configuration of the respective network. In one embodiment, the application
ranking system 116 may communicate with a network diagnostic tool, such as the
network diagnostic tool 118 described earlier, that may be associated with the calling
15 device network 206 and the called device network 208, to obtain the real-time
network data.
[0066] As discussed earlier, applications perform differently in different
network conditions. The real-time network data indicates the current network
conditions to the application ranking system 116. The application ranking system 116
20 ranks the applications considering the real-time network conditions. For instance, in a
given real-time network condition where the average network link data throughput
measured for the last 15 minutes is 2 Mbps or higher, an application providing video
calling may be ranked higher than an application providing only voice calling.
However, i f the measured average network link data throughput is about 1 Mbps. the
25 application providing only voice calling may be given preference.
|0067] In accordance with one implementation of the present subject matter,
at step 222, the application ranking system 116 may obtain performance statistics
associated with each of a plurality of application servers that hosts the plurality of
0?
applications to be ranked. Among other examples, the performance statistics
comprises information relating to latency in delivering data packets from the
communication network of a user device to each of the plurality of application
servers. For example, consider a first, a second, and a third application server that
5 host applications 'E', 'F'. and 'C. respectively. Further, also consider that the
application servers have latency greater than 1 sec, between lsec-500 ms and less
than 500ms, respectively. In the given example, using applications 'E', 'F', and 'G',
may result in poor, acceptable and good QoE for a user, respectively and, thus, the
applications 'E', 'F', and 'G', may be ranked accordingly.
10 [0068] In accordance with yet another embodiment of the present subject
matter, at step 224, the application ranking system 116 may obtain information
relating to recent events in a location of the calling user and the called user. Among
other things, the recent events comprise information about event that may cause
heavy data traffic in the location of either user. In one example, the information
15 relating to recent events may be received from the event servers 120. One example of
an event server 120 may be a server hosted and updated regularly by a service
provider of the communication network 102. In yet another example, the event server
120 may be a server of a social media website where recent event may be discussed
by members.
20 |0069] The application ranking system 116 analyzes the information relating
to recent events to ascertain an abnormality in performance of the networks 206 and
208 and any abnormality in performance of any of the application servers to rank the
applications. For example, the application ranking system 116 may analyze recent
comments of several members of a social media website to analyze that a
25 geographical region where an application server hosting application 'H' is located is
experiencing heavy data traffic. Accordingly, application 'H' may be given lower
preference compared to other available options. In one implementation, to enable the
application ranking system I 16 to analyze the information relatinsi to recent events.
the application ranking system 116 may be configured to identify a set of predefined
keywords that are associated with such recent events that may cause an abnormality
in the working of a communication network or of an application server.
|0070| In yet other embodiments, at steps 226 and 228, the application
5 ranking system 116 may obtain information relating to network events from the
calling device network 206 and the called device network 208, respectively. The
network events may be understood as events that affect a communication network.
Example of network events comprise scheduled maintenance activities and scheduled
downtime of the communication network. The ranking of applications is based on the
10 information relating to the network events. For example, if a scheduled maintenance
of the calling device network 206 or the called device network 208 may affect the
LTE capability of either network, ranking of applications that work on LTE may be
lower than applications that work on 3G.
[0071] The various inputs obtained by the application ranking system 116 at
15 step 210 to 228 described above are aggregated, for example, by applying a set of
predefined rules, to rank the applications for selection of the most suitable option.
The set of predefined rules vary based on the various considerations that may affect a
user's QoE. In one example, if the consideration is to provide high quality service to a
user, an application with HD video calling may be ranked at the top despite its high
20 battery consumption. On the other hand, if the consideration is to provide enhanced
battery life, applications that consume low power may be preferred even if the low
video quality is low. As will be appreciated by one skilled in the art that in various
embodiments, the set of predefined rules are defined to identify an application that
satisfies multiple considerations simultaneously in the most optimized manner.
25 |0072| Accordingly, upon applying the set of predefined rules, at step 230.
the application ranking system I 16 provides a ranked list of the applications to the
calling user device 202. Further, in accordance with one implementation of the
present subject matter, at step 230. the ranked list of the applications may also
24
include a type of call, for example, an audio call, a video call, or a HD video call,
enabled by the applications that the calling user device 202 may initiate for the call.
|0073] The above mentioned parameters based on which the application
ranking system 116 ranks the applications has been provided merely for ease of
5 understanding and are not exhaustive. Various other factors that affect the QoE of a
user may be considered by the application ranking system 116. In one
implementation, preference of a user, for example, determined based on historic data
associated with the calls made by the user, may also be considered. For instance, if
the historic data reveals that the user prefers an application having a lower tariff than
10 others, such an application may be assigned a higher ranking.
[0074] Although in context of the illustrated signal flow diagram, it has been
explained that factors relating to the called user device 204 are also taken into
consideration by the application ranking system 116, in some embodiments, it is
possible that the application ranking system 116 may perform the ranking in absence
15 of such factors. For example, in such embodiments, the application ranking system
116 may omit obtaining the configuration data and real-time user device data from
the called user device 204.
[0075] Also, although the present description of the signal flow diagram
explains that the various parameters that effect the ranking of applications are
20 obtained in the sequence as illustrated in the signal flow diagram, in various
embodiments it is possible that the contact information of called user device 204 is
obtained from the calling user in advance and factors relating to the called user
device 204 may be pre-analyzed. This may allow the call set-up time of the call to be
minimized. Further, as will be apparent to one skilled in the art. in some
25 embodiments, to reduce the call set-up time, the application ranking system 116 may
implement a multi-thread approach. In yet other embodiments, more than one
application ranking systems I 16 may be implemented to perform the various steps as
25
described above in the signal flow diagram in parallel. Such parallel processing also
enables reduction of the call set-up time.
10076] Further details of methods and system for ranking application have
been provided below in context of Figure 3 which illustrates a user device 300, that
5 may couple to an application ranking system 400 to obtain a rank list of applications
and Figure 4 which illustrates the application ranking system 400 for ranking a
plurality of applications in the user device 300 for a call, in accordance with an
embodiment of the present subject matter.
[0077| In one implementation, the user device 300 and the application
10 ranking system 400 include processor(s) 302 and 402, respectively. The processor(s)
302 and 402 may be implemented as one or more microprocessors, microcomputers,
microcontrollers, digital signal processors, central processing units, state machines,
logic circuitries, and/or any devices that manipulate signals based on operational
instructions. Among other capabilities, the processor(s) is configured to fetch and
15 execute computer-readable instructions stored in the memory.
10078] The functions of the various elements shown in the figure, including
any functional blocks labeled as ••processor(s)", may be provided through the use of
dedicated hardware as well as hardware capable of executing software in association
with appropriate software. When provided by a processor, the functions may be
20 provided by a single dedicated processor, by a single shared processor, or by a
plurality of individual processors, some of which may be shared. Moreover, explicit
use of the term "processor" should not be construed to refer exclusively to hardware
capable of executing software, and may implicitly include, without limitation, digital
signal processor (DSP) hardware, network processor, application specific integrated
25 circuit (ASIC), field programmable gate array (FPGA), read only memory (ROM) for
storing software, random access memory (RAM), and non-volatile storage. Other
hardware, conventional and/or custom, mav also be included.
26
|0079| Also, the user device 300 and the application ranking system 400
include interface(s) 304 and 404, respectively. The interfaces 304 and 404 may
include a variety of software and hardware interfaces that allow user device 300 and
the application ranking system 400 to interact with the entities of the communication
5 network 102. or with each other. The interfaces 304 and 404 may facilitate multiple
communications within a wide variety of networks and protocol types, including wire
networks, for example, LAN, cable, etc., and wireless networks, for example,
WLAN, cellular, satellite-based network, etc.
|0080] In another embodiment of the present subject matter, each of the user
10 device 300 and the application ranking system 400, may also include a memory 306
and 406, respectively. The memory 306 and 406 may be coupled to the respective
processors 302 and 402. The memory 306 and 406 can include any computerreadable
medium known in the art including, for example, volatile memory, such as
static random access memory (SRAM) and dynamic random access memory
15 (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable
programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
10081) Further, the user device 300 and the application ranking system 400,
may include module(s) 308 and 408 and data 310 and 410, respectively. The modules
308 and 408 and the data 310 and 410 may be coupled to the respective processors
20 302 and 402. The modules 308 and 408, amongst other things, include routines,
programs, objects, components, data structures, etc., which perform particular tasks
or implement particular abstract data types. The modules 308 and 408 may also be
implemented as. signal processor(s), state machine(s). logic circuitries, and/or any
other device or component that manipulate signals based on operational instructions.
25 |0082| Further, the modules 308 and 408 can be implemented in hardware,
instructions executed by a processing unit, or by a combination thereof The
processing unit can comprise a computer, a processor, a state machine, a logic array
or an_\ other suitable devices capable of processing instructions. The processing unit
27
can be a general-purpose processor which executes instructions to cause the generalpurpose
processor to perform the required tasks or. the processing unit can be
dedicated to perform the required functions.
[0083] In another aspect of the present subject matter, the modules 308 and
5 408 may be machine-readable instructions (software) which, when executed by a
processor/processing unit, perform any of the described functionalities. The machinereadable
instructions may be stored on an electronic memory device, hard disk,
optical disk or other machine-readable storage medium or non-transitory medium. In
one implementation, the machine-readable instructions can be also be downloaded to
10 the storage medium via a network connection.
[0084] In an implementation, the module(s) 308 of the user device 300
includes a ranking system communication module 312, an application ranking
module 314, and other module(s) 316. The other module(s) 316 may include
programs or coded instructions that supplement applications or functions performed
15 by the user device 300. In said implementation, the data 310 includes user device data
318, contact data 320, and other data 322. The other data 322 amongst other things,
may serve as a repository for storing data that is processed, received, or generated as
a result of the execution of one or more modules in the module(s) 308.
[0085] In a similar manner, in an implementation, the iTiodule(s) 408 of the
20 application ranking system 400 includes a user device communication module 412, a
network entity communication module 414. an application server communication
module 416, an event server communication module 418. a ranking module 420. and
other module(s) 422. The other module(s) 422 may include programs or coded
instructions that supplement applications or functions performed by the application
25 ranking system 400. In said implementation, the data 410 includes user device
configuration data 424. real-time user device data 426. real-time network data 428.
application server data 430, events data 432. and other data 434. The other data 434
amongst other things, may serve as a repository for storing data that is processed.
received, or generated as a result of the execution of one or more modules in the
module(s)408.
[0086] Although the data 410 is shown internal to the application ranking
system 400, it may be understood that the data 410 can reside in an external
5 repository (not shown in the figure), which may be coupled to the application ranking
system 400. The application ranking system 400 may communicate with the external
repository through the interface(s) 404 to obtain information from the data 410.
[0087] According to an implementation, a ranking of a plurality of
applications residing on the user device 300 and indication of the type of call may be
10 provided to the user device 300 for making a call. In one implementation, when a
user initiates a call, the user device 300 communicates with the application ranking
system 400 to obtain the ranking of the applications and the type of call. For
example, upon initiation of the call, the ranking system communication module 312
of the user device 300 may provide the user device data 318 to the user device
15 communication module 412 of the application ranking system 400. Subsequently, or
in parallel, the ranking system communication module 312 may also provide contact
information of a user device of a called user, for example, existing in the contact data
320 of the user device 300, to the user device communication module 412. Once the
contact information is available with the user device communication module 412. it
20 may also obtain the user device data of the user device of the called user as well.
|0088| The user device data of a user device may include the configuration
determination input and real-time user device data. As explained previously, the
configuration determination input enables the user device communication module
412 to determine the configuration of a user device. Likewise, the real-time user
25 device data may provide intbrmation relating to location, motion, network capability,
and bandwidth and signal strength of the user device at a given instant of lime to the
user device communication module 412. The configuration of the user device 300.
and in some embodiment the conflsiuration of the user device of the called user, mav
29
be saved as user device configuration data 424 in data 410 of the application ranking
system 400. Similarly, the real-time user device data of the user device 300 and the
real-time user device data of the user device of the called user, as the case may be.
may be stored as real-time user device data 426 in data 410 of the application ranking
5 system 400.
[0089] Subsequently, or in parallel, the network entity communication
module 414 of the application ranking system 400 may obtain a real-time network
data of a communication network associated with the user device 300 to ascertain a
current performance of the communication network. The network entity
10 communication module 414 may also be configured to obtain the real-time network
data of the communication network associated with the user device of the called user.
The obtained real-time network data may be saved as real-time network data 428 in
data 410 of the application ranking system 400.
[0090] In one example, the network entity communication module 414 may
15 communicate with a network entity of a communication network to obtain the realtime
network data of the communication network. In one example implementation,
the network entity may be a network diagnostic tool 118 as explained in the
foregoing description.
|0091] Further, the network entity communication module 414 may
20 communicate with the network entity of the communication network 102 to obtain
information relating to network events that may affect the communication network.
Examples of the network events comprise scheduled maintenance activities and
scheduled downtime of the communication network. The information relating to
network events may be saved as events data 432 in data 410 of the application
25 ranking system 400.
10092) In accordance with one embodiment of the present subject matter, the
application server communication module 416 of the application ranking system 400
30
may determine performance statistics associated with the application servers that
hosts the various applications being ranked. The determined performance statistics
may be stored as application server data 430 in data 410 of the application ranking
system 400.
5 [0093] in one example implementation, the event server communication
module 418 of the application ranking system 400 may obtain information relating to
recent events in the location of user device 300 or that of the called user device from
various event servers 120, for example, a social media server. As explained earlier,
the event server communication module 418 may be configured to analyze the
10 information relating to recent events to detect an abnormality in performance of the
communication network of user device 300 or of the called user as well as an
abnormality in the performance of any of application servers. The information
relating to recent events are also saved as events data 432 in data 410 along with the
information relating to network events.
15 [0094] In accordance with implementation of the present subject matter, the
ranking module 420 of the application ranking system 400 ranks the applications for
the call based on at least the configuration of the user device 300, real-time user
device data of user device 300, real-time network data of communication network
associated with the user device 300, and the performance statistics. In another
20 implementation, the ranking module 420 ranks the applications based on additional
parameters, such as the configuration of the user device of the called user, the realtime
user device data of the user device of the called user and the real-time network
data of the communication network associated with the user device of the called user.
In one implementation, the ranking module 420 may apply the set of predefined rules
25 that may have been defined in accordance with different considerations relating to the
QoE of users. The ranked list of applications generated by the ranking module 420 is
provided to the application ranking module 314 of the user device 300 such that a
31
best ranked application and call type may be selected for the call either automatically
or based on a user input.
|0095] Figure 5 and Figure 6 illustrate methods 500 and 600, respectively, for
ranking a plurality of applications in a user device of a calling user for a call, in
5 accordance with another embodiment of the present subject matter. Figure 7
illustrates a method for identifying an application from amongst a plurality of
applications in a user device of a calling user for a call, in accordance with an
embodiment of the present subject matter. The order in which the methods are
described is not intended to be construed as a limitation, and any number of the
10 described method blocks can be combined in any order to implement the methods or
any alternative method. Additionally, individual blocks may be deleted from the
methods without departing from the spirit and scope of the subject matter described
herein. Furthermore, the method can be implemented in any suitable hardware,
software, firmware, or combination thereof.
15 [0096] The method(s) may be described in the general context of computer
executable instructions. Generally, computer executable instructions can include
routines, programs, objects, components, data structures, procedures, modules,
functions, etc., that perform particular functions or implement particular abstract data
types. The methods may also be practiced in a distributed computing environment
20 where functions are performed by remote processing devices that are linked through a
communications network. In a distributed computing environment, computer
executable instructions may be located in both local and remote computer storage
media, including memory storage devices.
|0097] A person skilled in the art will readily recognize that steps of the
25 methods can be performed by programmed computers. Herein, some embodiments
are also intended to cover program storage devices or computer readable medium, for
example, digital data storage media, which are machine or computer readable and
encode machine-executable or computer-executable programs of instructions, where
32
said instructions perform some or all of the steps of the described method. The
program storage devices may be, for example, digital memories, magnetic storage
media, such as a magnetic disks and magnetic tapes, hard drives, or optically readable
digital data storage media. The embodiments are also intended to cover both
5 communication network and communication devices to perform said steps of the
method(s).
|0098] Further, although the methods may be implemented in a variety of
communication devices and computing devices, for the sake of ease of
understanding, in the following description the methods 500 and 600 have been
10 explained in context of the application ranking system 116, 400 that has been
described earlier in the present description. Similarly, the method 700 has been
explained in detailed in reference to the user device 104-1, 300 that has also been
described earlier.
10099] Referring to figure 5, at block 502, a configuration of the user device
15 of a calling user is determined. The configuration of the user device is determined to
ascertain the performance capability of the user device. The performance capability
of the user device includes, but not limiting to, an operating system of the user
device, a size of the random access memory of the user device, a processing speed of
a processor of the user device, network capabilities, and bandwidth capabilities of the
20 user device that affects the performance of the different applications that may be
installed on the user device. As would be understood, applications have varied
random access memory and processor requirements. Further, the applications also
work differently in different operating systems. Also, the applications may perform
ditTerently based on the bandwidth capabilities of the user device. Thus, various
25 parameters relating to the configuration of the user device are taken into
consideration by the method 500 for ranking the plurality of applications.
|00100| The performance of the applications is also based on a real-time user
device data and accordingly the same is considered for ranking of the applications.
33
The real-time user device data comprises information relating to current status of a
user device and includes, but is not limited to. a location, motion, network capability,
bandwidth and signal strength of the user device at a given instant of time. The realtime
user device data of the user device of the calling user is obtained at step 504.
5 [OOlOl] Yet another set of factors that affect the performance of the
applications on a user device are factors relating to the current performance of a
communication network associated with the user device. Accordingly, at step 506, a
real-time network data indicative of a current performance of the communication
network associated with the user device of the calling user is obtained. The real-time
10 network data comprises information relating to at least one of an average air link
packet retransmissions, an average air link packet drops, and an average network link
data throughput between the user device and the communication network and the
average network link data throughput between the communication network and each
of the respective plurality of application servers that host the applications. In one
15 example, the abovementioned averages may be determined for a predetermined time
period, such as 15 minutes, prior to the instant of obtaining the real-time network
data.
[00102] Further factors that may have an impact on the performance of the
applications are the performance statistics associated with application servers that
20 host the applications. In other words, how well or poorly an application performs is
based on the performance statistics. At step 508. the performance statistics associated
with application servers that host the applications residing on the user device of the
calling user is determined. While there may be many examples, in one example, the
performance statistics comprises latency in delivering data packets from a
25 communication network associated with a user device on which an application is
installed to the application server that hosts the application. In another example, the
performance statistics comprises, the number of hops involved in transferring data
packets from the communication network associated with the user device on which
the application is installed to the application server of the application. As would be
understood, an application wherein the transferring of data packets involve fewer
hops may perform better than those involving higher number of hops if fewer hops
lead to lower latency and the ranking of the application may be done accordingly.
5 |00103| At step 510, the applications may be ranked for the call based on the
configuration of the user device of the calling user, real-time user device data of user
device of the calling user, real-time network data of communication network
associated with the user device of the calling user, and the performance statistics as
determined in steps 502 through 510 explained above. Based on the foregoing
10 description, it would also be understood that applications may be ranked based on a
set of predefined rules. Different set of rules may be predefined based on different
considerations that can enhance the QoE of users.
[00104] In some embodiments, the ranking may be based on more factors in
addition to the ones explained in context of method 500. Examples of these factors
15 include factors that affect a user device of a called user and factors that can cause
abnormality in working of the communication network associated with either the
calling user device or the called user device.
[00105] Accordingly, at step 602 of the method 600 that provides for ranking
applications in a user device of a calling user for a call, the configuration of the user
20 device of the called user, the calling user or both is determined. As would be
understood. 602 of the method 600 is alike step 502 of method 500 except that the
configuration of the user device of the called user may also be determined at step
602. In a similar manner, steps 604. 606. and 608 of the method 600 are alike steps
504. 506. and 508 of method 500 and may additionally involve obtaining the real-
25 time user device data of the user device of the called user, the real-time network data
of the communication network associated with the user device of the called user, and
the performance statistics of each of the application servers with respect to the
35
communication network associated with the user device of the calling user as well as
the called user, respectively.
|00106| Further, in accordance with one implementation of the present subject
matter, at step 610, information relating to recent events in the location of the calling
5 user and/or the called user is determined. The recent events may include events, such
as heavy data traffic related events in the location of the calling user, the called user,
or both. The recent events may be analyzed to ascertain an abnormality in
performance of the communication network of the calling user, the called user or
both. The recent events may also be analyzed to ascertain an abnormality in
10 performance of any of the application servers that host the applications.
[00107] In a similar manner, at step 612, information relating to network
events may be obtained. The network event may be understood as events that affect
the communication network. Examples of network events comprise, but are not
limited to, scheduled maintenance activities and scheduled downtime of the
15 communication network.
[00108] At step 614, the plurality of applications are ranked for the call based
on the configuration, real-time user device data, real-time network data, that may
have been obtained for the calling user, the called user or both; the performance
statistics of the application servers that may have been measured with respect to the
20 communication network of the calling user, the called user or both: the information
relating to recent events in the location of the calling user, the called user or both; and
the information relating to planned events in the location of the calling user, the
called user or both.
[00109[ In one implementation, based on the ranking, at step 616. a ranked list
25 of applications including a type of call enabled by the applications, for example, an
audio call, a video call, or a HD video call may be provided to the user device of the
calling user. In one implementation, the user may select an application and the call
36
type that may have been given the best ranking or any other application in the ranked
list based on his preference for the call. In one implementation, based on predefined
setting in the user device of the calling user, the call may be initiated through the top
ranked application automatically without requiring the user to select the same.
5 [00110] Figure 7 illustrates method 700 for identifying an application from
amongst a plurality of applications in a user device of a calling user for a call, in
accordance with an embodiment of the present subject matter. The method 700 is
described with an understanding that for identifying the application for the call, the
user device is coupled to an application ranking system that may implement a
10 method, such as a method 500, 700 for ranking an application from amongst a
plurality of applications in a user device of a calling user for a call.
[00111] At step 702, the user device provides a configuration determination
input to the application ranking system based on which the application ranking
system may identify the configuration, such as the network and bandwidth
15 capabilities of the user device operating system, size of the random access memory
and processing speed of the processor of the user device. At step 704, the real-time
user device data of the user device is provided to the application ranking system, for
example by the user device. As explained previously, the real-time user device data
include dynamic factors relating to a user device that may impact the performance of
20 an application on the user device in real-time.
[00112] Examples of the real-time user device data include, but are not limited
to, the location, motion, network capability, bandwidth and signal strength of the user
device. The real-time user device data may also include the access technology used
by the user device to access the communication network associated with the user
25 device.
[00113] In response to providing the configuration determination input and the
real-time user device data, at step 706. the user device may receive, from the
application ranking system, an indication of an application that may be used for the
37
call. Further, in accordance with one implementation of the present subject matter,
the user device may also receive an indication of a type of call that may be supported
by the applications, for example, an audio call, a video call, or a HD video that may
be used for the call. For example, the application ranking system may provide the
5 indication by pushing the ranked list of applications and call type to the user device
as described earlier. Thus, based on the ranked list, the user is enabled to identify the
application that is most suitable for making the call at the given time instant. This
way, the user is enabled to make the call by choosing the best available option.
[00114] Although embodiments for ranking a plurality of applications in a user
10 device have been described in a language specific to structural features or method(s),
it is to be understood that the invention is not necessarily limited to the specific
features or method(s) described. Rather, the specific features and methods are
disclosed as embodiments for ranking a plurality of applications in a user device.
I/We claim:
1. A method for ranking a plurality of real-time multimedia chat applications in
a user device of a calling user for a call, the method comprising:
determining a configuration of the user device of the calling user, wherein the
5 configuration is indicative of a performance capability of the user device;
obtaining, from the user device of the calling user, a real-time user device
data, the real-time user device data comprising one or more of location, motion, and
signal strength of the user device at a given instant of time;
obtaining, from a communication network associated with the user device of
10 the calling user, a real-time network data indicative of a current performance of the
communication network;
determining performance statistics associated with each of a plurality of
application servers, wherein each of the plurality of application servers hosts at least
one real-time multimedia chat application from amongst the plurality of real-time
15 multimedia chat applications, and wherein the performance statistics comprises
information relating to a latency in delivering data packets from the communication
network associated with the user device of the calling user to each of the plurality of
application servers; and
ranking the plurality of real-time multimedia chat applications based on the
20 configuration of the user device of the calling user, real-time user device data of user
device of the calling user, real-time network data of communication network
associated with the user device of the calling user, and the performance statistics
associated with each of the plurality of application servers, wherein a real-time
multimedia chat application is selected, from amongst the plurality of real-time
25 multimedia chat applications, for the call based on the ranking.
2. The method as claimed in claim I further comprising:
obtaining contact information of a user device of a called user from the
determining the configuration of the user device of the called user;
obtaining, the real-time user device data from the user device of the called
5 user;
obtaining, the real-time network data of the communication network
associated with the user device of the called user; and
determining performance statistics to ascertain a latency in delivering data
packets from the communication network associated with the user device of the
10 called user to each of the plurality of application servers;
wherein the ranking is further based on at least one of the configuration of the user
device of the called user, the real-time user device data of the user device of the
called user, the real-time network data of the communication network associated with
the user device of the called user, and the performance statistics of each of the
15 plurality of application servers.
3. The method as claimed in one of the claims I and 2, wherein the
configuration of the user device comprises information relating to at least one of a
network capability of the user device, a bandwidth capability of the user device, an
20 operating system of the user device, a size of the random access memory of the user
device, and a processing speed of a processor of the user device.
4. The method as claimed in one of the claims I to 3. wherein the real-time user
device data further comprises an access technology used by the user device to access
25 the communication network associated with the user device, a type of network
accessed by the user device and a bandwidth assigned to the user device.
5. The method as claimed in one of the claims I to 4. wherein the real-time
network data comprises information relating to at least one of an average air link
packet retransmissions, an average air link packet drops, and an average network link
data throughput between the user device and the communication network associated
with the user device and the average network link data throughput between the
communication network associated with the user device and each of the respective
plurality of application servers for a predetermined time period.
6. The method as claimed in one of the claims 1 and 2 further comprising
obtaining information relating to network events, the network events being event that
affect the communication network, wherein the network events comprise one or more
of scheduled maintenance activities and scheduled downtime of the communication
network, and wherein the ranking is based on the information relating to the network
events.
7. The method as claimed in claim 2 further comprising:
obtaining information relating to recent events in a location of one of the
calling user and the called user, wherein the recent events comprise events that cause
heavy data traffic in the location of one of the calling user and the called user; and
20 analyzing the information relating to recent events to ascertain an abnormality
in performance of the communication network of one of the calling user and the
called user and an abnormality in performance of one or more of the plurality of
application servers, wherein the ranking is based on the analysis.
25 8. The method as claimed in one of the claims I to 7. wherein the plurality of
real-time multimedia chat applications comprises one or more of over-the-top realtime
multimedia chat applications and default real-time multimedia chat applications
of the user device such that each of the plurality of real-time multimedia chat
applications provides a plurality of types of call comprising an audio call, a video
call, and a high-definition video call, and wherein the method comprises indicating a
type of call from amongst the plurality of types of call for the call.
5 9. An application ranking system for ranking real-time multimedia chat
applications in a user device of a calling user for a call, the application ranking
system comprising:
a processor;
a user device communication module coupled to the processor to. wherein the
10 user device communication module is to:
determine a configuration of the user device of the calling user,
wherein the configuration is indicative of a performance capability of the user
device of the calling user, and
obtain a real-time user device data of the user device of calling user.
15 the real-time user device data comprising one or more of location, motion,
and signal strength of the user device at a given instant of time,
a network entity communication module coupled to the processor to, wherein
the network communication module is to:
obtain a real-time network data of a communication network
20 associated with the user device of calling user, the real-time network data
being indicative of a current performance of the communication network:
an application server communication module, coupled to the processor to:
determine performance statistics associated with each of a plurality of
application servers, wherein each of the plurality of application servers hosts
25 at least one real-time multimedia chat application from amongst the plurality
of real-time multimedia chat applications, and wherein the performance
statistics comprises information relating to a latency in delivering data
packets from the communication network of the user device to each of the
respective plurality of application servers: and
a ranking module coupled to the processor to:
rank the plurality of real-time multimedia chat applications based on
5 at least the configuration of the user device of the calling user, real-time user
device data of user device of the calling user, real-time network data of
communication network associated with the user device of the calling user,
and the performance statistics, wherein a real-time multimedia chat
application is selected, from amongst the plurality of real-time multimedia
10 chat applications, for the call based on the ranking.
10. The application ranking system as claimed in claim 9, wherein the user device
communication module is to further:
obtain a contact information of a user device of a called user from the calling
15 user;
determine the configuration of the user device of the called user; and
obtain the real-time user device data from the user device of the called user,
wherein the application ranking module ranks the real-time multimedia chat
applications for the call based on the configuration of the user device of the called
20 user.
11. The application ranking system as claimed in claim 10, wherein the network
entity communication module is to further:
obtain the real-time network data of a communication network associated
25 with the user device of the called user.
wherein the application ranking module ranks the real-time multimedia chat
applications for the call based on the real-time network data of the communication
network of the user device of the called user.
12. The application ranking system as claimed in claim 10. wherein the
application server communication module is to further:
determine performance statistics to ascertain a latency in delivering data
5 packets from the communication network of the user device of the called user to each
of the respective plurality of application servers,
wherein the application ranking module ranks the real-time multimedia chat
applications for the call based on the performance statistics.
13. The application ranking system as claimed in claim 9, wherein the network
entity communication module is to communicate with a network entity of the
communication network associated with the user device to obtain the real-time
network data, and wherein the network entity is a network diagnostic tool.
14. The application ranking system as claimed in claim 10 further comprising an
events server communication module to:
obtain information relating to recent events in a location of one of the calling
user and the called user, wherein the recent events comprise events that cause heavy
data traffic in the location of one of the calling user and the called user; and
20 analyze the information relating to recent events to ascertain an abnormality
in performance of the communication network of one of the calling user and the
called user and an abnormality in performance of one or more of the plurality of
application servers, wherein the ranking is based on the analysis.
15. A non-transitory computer-readable medium having embodied thereon a
computer program for executing a method of identifying a real-time multimedia chat
application from amongst a plurality of real-time multimedia chat applications in a
user device of a calling user for a call, the method comprising:
providing a configuration determination input to an application ranking
system coupled to the user device of the calling user, wherein the configuration
determination input is to enable the application ranking system to determine a
configuration of the user device of the calling user, the configuration being indicative
of a performance capability of the user device of the calling user;
providing a real-time user device data of the user device of the calling user to
the application ranking system, wherein the real-time user device data comprises one
or more of location, motion, and signal strength of the user device at a given instant
of time; and
receiving, from the application ranking system in response to the providing,
an indication of a real-time multimedia chat application from amongst the plurality of
real-time multimedia chat applications identified for the call, wherein the call is
initiated based on the receiving.
| # | Name | Date |
|---|---|---|
| 1 | 2576-DEL-2014-Correspondence to notify the Controller [20-03-2023(online)].pdf | 2023-03-20 |
| 1 | 2576-del-2014-Form-5.pdf | 2014-11-14 |
| 2 | 2576-del-2014-Form-3.pdf | 2014-11-14 |
| 2 | 2576-DEL-2014-US(14)-HearingNotice-(HearingDate-05-04-2023).pdf | 2023-03-17 |
| 3 | 2576-del-2014-Form-2.pdf | 2014-11-14 |
| 3 | 2576-DEL-2014-CLAIMS [06-04-2020(online)].pdf | 2020-04-06 |
| 4 | 2576-del-2014-Form-1.pdf | 2014-11-14 |
| 4 | 2576-DEL-2014-FER_SER_REPLY [06-04-2020(online)].pdf | 2020-04-06 |
| 5 | 2576-DEL-2014-OTHERS [06-04-2020(online)].pdf | 2020-04-06 |
| 5 | 2576-del-2014-Drawings.pdf | 2014-11-14 |
| 6 | 2576-DEL-2014-FER.pdf | 2019-10-09 |
| 6 | 2576-del-2014-Description (Complete).pdf | 2014-11-14 |
| 7 | 2576-del-2014-Correspondence Others.pdf | 2014-11-14 |
| 7 | 2576-del-2014-Correspondence Others-(23-02-2015).pdf | 2015-02-23 |
| 8 | 2576-del-2014-Claims.pdf | 2014-11-14 |
| 8 | 2576-del-2014-Form-1-(23-02-2015).pdf | 2015-02-23 |
| 9 | 2576-del-2014-Abstract.pdf | 2014-11-14 |
| 10 | 2576-del-2014-Form-1-(23-02-2015).pdf | 2015-02-23 |
| 10 | 2576-del-2014-Claims.pdf | 2014-11-14 |
| 11 | 2576-del-2014-Correspondence Others.pdf | 2014-11-14 |
| 11 | 2576-del-2014-Correspondence Others-(23-02-2015).pdf | 2015-02-23 |
| 12 | 2576-DEL-2014-FER.pdf | 2019-10-09 |
| 12 | 2576-del-2014-Description (Complete).pdf | 2014-11-14 |
| 13 | 2576-DEL-2014-OTHERS [06-04-2020(online)].pdf | 2020-04-06 |
| 13 | 2576-del-2014-Drawings.pdf | 2014-11-14 |
| 14 | 2576-del-2014-Form-1.pdf | 2014-11-14 |
| 14 | 2576-DEL-2014-FER_SER_REPLY [06-04-2020(online)].pdf | 2020-04-06 |
| 15 | 2576-del-2014-Form-2.pdf | 2014-11-14 |
| 15 | 2576-DEL-2014-CLAIMS [06-04-2020(online)].pdf | 2020-04-06 |
| 16 | 2576-DEL-2014-US(14)-HearingNotice-(HearingDate-05-04-2023).pdf | 2023-03-17 |
| 16 | 2576-del-2014-Form-3.pdf | 2014-11-14 |
| 17 | 2576-del-2014-Form-5.pdf | 2014-11-14 |
| 17 | 2576-DEL-2014-Correspondence to notify the Controller [20-03-2023(online)].pdf | 2023-03-20 |
| 1 | AmendedSearchStrategyAE_16-03-2023.pdf |
| 1 | search_2576del2014_27-09-2019.pdf |
| 2 | AmendedSearchStrategyAE_16-03-2023.pdf |
| 2 | search_2576del2014_27-09-2019.pdf |