Abstract: The present invention relates to providing notification of an incomplete call made by a calling party to a called party. In one embodiment, a placement of a call to a called party is detected by a calling party device. Upon detecting, a request trigger is transmitted to a server by the calling party device. The request trigger is indicative of the call and includes calling party number, called party number, date of the call, and time-stamp of the call. Thereafter, the calling party device receives a response trigger from the server, the response trigger being indicative of one of incomplete call to the called party and complete call to the called party. The calling party device then provides one or more call reporting options when the response trigger is indicative of incomplete call to complete the incomplete call.
DESCRIPTION
TECHNICAL FIELD OF INVENTION
The invention generally relates to call completion solution. More particularly, the
invention relates to providing notification of an incomplete call made by a calling party to a
called party, without involving a network operator.
BACKGROUND OF INVENTION
Convention call completion solution such as voicemail service is widely and
popularly known in the art. The conventional solution enables a caller to leave a voice
message to a called party in case an outgoing call is not established with the called party.
Examples of such non-established call include call not being received by mobile device of the
called party, call being unanswered by the called party, call being received by the mobile
device when the called party is engaged in another call, and call being rejected by the called
party. Such conventional solution typically involves the called party subscribing to a
voicemail service provided by network operator and setting certain conditions to enable the
caller to leave a voicemail when the conditions are met. The conditions typically indicate the
above mentioned examples of non-established call. When any of the condition is met, the
caller is prompted to leave a voicemail or voice message. The caller then records a voicemail
which is stored in a database operated by the network operator. The called party contacts the
network operator to retrieve the voicemail(s). Typically, the called party dials a specific
number provided by the network operator to retrieve the voicemail(s).
However, such conventional solution is dependent upon the network operator for
receiving the voicemail from the caller and retrieving the voicemail by the called party.
Further, the conventional solution necessitates the called party to contact the network
operator for retrieving the voicemail(s). As such, the called party is unable to retrieve the
voicemail(s) if the network operator is unavailable. Furthermore, the conventional solution
does not enable the called party to receive any voicemail if the called party has not subscribed
to the service while on roaming.
Various solutions are now available in market that overcomes the above deficiencies.
In one solution, an application is downloaded from a server on a called party device. A
network operator detects when a call from the calling party will not be (or is not) accepted
due to unavailability of the called party device or the called party does not accept the call.
The network operator provides an indication to the server regarding the detection. Upon
receiving the indication, the server directs the calling party to the application to leave a
3
message as an audio file. The application may include various application modules which are
selected based on various criteria such as location of called party, identity of called party, and
identity of calling party. The application modules are set for different types of caller and are
activate based on identity of the calling party. For example, a co-worker can be directed to
one application module and a family member can be directed to another application module.
The application modules enable the called party to record different greetings/introductory
messages for different callers. Upon receiving the audio file, the server stores the audio file
and provides a notification to the called party regarding availability of the audio file along
with instructions to retrieve the audio file.
In another solution, voicemail application is downloaded from a server on mobile
device. Upon downloading and registering, the server provides an indication to a network
operator that voicemail service, provided by the network operator, should be redirected to the
server such as by way of call forwarding. When a call from a caller is not established on the
mobile device, the network operator redirects the caller to the server. Upon redirection, the
server activates the application. The application then enables the caller to leave a voicemail.
The voicemail is then stored in the server and is available to a user of the mobile device via
the application over a data connection such as Wi-Fi and mobile data. The application can be
downloaded either by calling party or called party.
In one another solution, voicemail application is downloaded from a server by a
calling party device. The server receives the trigger from a network operator associated with
a called party indicative of non-established call. The server then initiates the application to
receive and record an audio message. The server then sends the audio message to the called
party device via an SMS.
In yet another solution, a voicemail application is downloaded from a server by a
calling party device. When a call is attempted to a called party from the calling party device,
the application monitors connection strength on network(s) associated with the calling party
device. If the connection strength is weak or not available, the application enables a user to
record a voicemail message and sends the message to the server. The server then transmits
the voicemail message to a conventional voicemail of the called party.
Thus, the above solutions enable the calling part to send voice message or audio file
and the called party to retrieve the audio file without contacting the network operator. Also,
the solutions enable sending notification about the voicemail message. However, the
solutions are still network operator dependent as the server(s) or application(s) in these
solutions initiate capturing of voice message either upon receiving a corresponding indication
4
from the network operator or upon monitoring and determining connection strength of the
network operator is weak.
To completely eliminate the dependency on the network operator, in one solution, an
application is downloaded in a calling party device. The application detects an incomplete
call by monitoring a call initiated from the calling party device, and checking progress and
status of the call. The incomplete call is a call that is either not connected to a called party
device or connected to the called party device but is of a short duration call that does not
enable an intended communication to occur between the calling party and the called party or
call is connected to the called party device but is unanswered or the call is connected to the
called party device but is rejected. Upon detection of the incomplete call, the application
determines one or more call completion actions, for example, setting a reminder, transmitting
a notification, transmitting a message to a social media profile of the called party and
transmitting media data such as voice, audio-visual, video, audio, and transmitting a text
message, to be performed on the calling party device to complete the incomplete call. The
application provides the one or more call completion actions via a graphical user interface
(GUI) on the calling party device. Upon receiving a selection of an action such as
transmitting voice message, via the GUI, the application enables recording of the voice
message. The application then transmits the voice message to the server via a data
connection. The server can send the voice message to the called party device based on
presence or absence of data connectivity on the called party device and availability of the
application in the called party device.
Thus, the solution is completely independent of the network operator. Also, the
solution enables sending of the media message via a data connection between the calling
party device and the server. However, this solution necessitates that the application to
monitor progress of all outgoing calls on the calling party device from the call being initiated
till the call being answered or rejected or terminated or not connected, and check status of the
calls for determination of incomplete call. Therefore, such solution is resource intensive.
As such, there is a need for a better solution which overcomes all the above
deficiencies.
SUMMARY OF INVENTION
In accordance with the purposes of the invention, the present invention as embodied
and broadly described herein, relates to providing notification of an incomplete call made by
5
a calling party to a called party, without involving a network operator and without being
resource intensive.
Accordingly, upon detecting a placement of call from a calling party device to a
called party, an application in the calling party device sends a request trigger to a server. The
request trigger is indicative of the call and includes calling party number, called party
number, date of the call, and time-stamp of the call. Upon receiving the request trigger, the
server determines if a called party trigger corresponding to the call is received from the called
party device. The called party trigger is sent by an application in the called party device and
is indicative of one of a complete call and an incomplete call with the calling party device.
Consequently, the application monitors the call on the called party device and
determines if the call is incomplete call or complete call. The incomplete call is a call that is
not established with the called party device due to occurrence of one or more of a plurality of
events. The plurality of events include the call being rejected by the called party, the called
being unanswered by the called party, and the call being answered by the called party for
predetermined time. The complete call is call that is established with the called party device.
Upon determining, the application sends the called party response trigger indicative of one of
the incomplete call and the complete call.
Upon receipt of the called party trigger indicative of complete call, the server
transmits a success response trigger indicative of the complete call to the calling party device.
Upon receipt of the called party trigger indicative of incomplete call, the server
transmits a failure response indicative of incomplete call to the calling party device.
On the contrary, upon non-receipt of the called party trigger, the server determines the
call is incomplete call. In such case, the plurality of events for incomplete call include the
called party device being busy, the called party device being in an out of coverage area, the
called party device being unreachable, the called party device being switched off, and
network congestion. Consequently, the server transmits a failure response indicative of
incomplete call to the calling party device.
Further, the application and the server transmit their respective triggers such as the
request trigger, the called party trigger, the success response trigger, and the failure response
trigger on data connection mode such as Wi-Fi. If the data connection is not available, then
the application and the server transmit their respective triggers via non-data connection such
as via SMS message, USSD message, and flash message.
Upon receiving the failure response indicative of the incomplete call, the application,
in the calling party device, provides one or more call reporting options on the calling party
6
device. The call reporting options enable a user to provide notification of the incomplete call
and wherein the one or more call reporting options include transmitting a media message to
the called party device, transmitting an alert to the called party device, and any combination
thereof. The call reporting options are provided via a graphical user interface on the calling
party device.
Thereafter, upon receiving a selection of transmission of the media message from the
calling party, the application enables a reception of the media message. The media message
can be one of audio message, video message, voice message, audio-visual message, text
message, image message, multimedia message, and any combination thereof. Upon receiving
the media message, the application transmits the media message via the data connection to
the server. If the data connection is not available, the application stores the media message in
a memory of the calling party device for delivery to the server at a later point in time when
the data connection exists. The server then receives the media message and transmits the
media message to the called party device via the application over a data connection.
The advantages of the present invention include, but are not limited to providing call
reporting options to the calling party device, to enable the calling party to provide notification
of the incomplete call, based on failure trigger from the server without involving network
operator. The failure trigger is sent upon either non-receipt of the called party response from
the called party device or receipt of called party trigger indicative of incomplete call. Thus,
this eliminates the need for monitoring each outgoing call and monitoring of network strength
by the calling party device, and therefore is less resource-intensive. In addition, only
incoming call received by the called party device are monitored for their progress. This
reduces consumption of resources by the called party device since the called party device
does not send any trigger for calls not received by the called party device.
Furthermore, media messages are transmitted only on data connection. Thus, even if
connection strength is weak or not available for the called party device, the called party
device can receive the media message via the data connection. As such, the called party does
not have contact the network operator to retrieve the media message. Thus, the involvement
of network operator is completely eliminated.
These and other aspects as well as advantages will be more clearly understood from
the following detailed description taken in conjunction with the accompanying drawings and
claims.
7
BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS
To further clarify the advantages and features of the invention, a more particular
description of the invention will be rendered by reference to specific embodiments thereof,
which is illustrated in the appended drawings. It is appreciated that these drawings depict
only typical embodiments of the invention and are therefore not to be considered limiting of
its scope. The invention will be described and explained with additional specificity and detail
with the accompanying drawings in which:
Figures 1a and 1b illustrate an exemplary method implemented in a calling party
device for providing notification of an incomplete call made by a calling party to a called
party, in accordance with an embodiment of the invention.
Figures 2a, 2b, and 2c illustrate an exemplary method implemented in a server for
providing notification of an incomplete call made by the calling party to the called party, in
accordance with the embodiment of the invention.
Figure 3 illustrates an exemplary method implemented in a called party device for
providing notification of an incomplete call made by the calling party to the called party, in
accordance with the embodiment of the invention.
Figure 4 illustrates an exemplary mobile device for providing notification of an
incomplete call made by a calling party to a called party, in accordance with the embodiment
of the invention.
Figure 5 illustrates an exemplary server for providing notification of an incomplete
call made by a calling party to a called party, in accordance with the embodiment of the
invention.
Figure 6 illustrates an exemplary network environment that facilitates for providing
notification of an incomplete call made by a calling party to a called party, in accordance
with an embodiment of present invention.
Figure 7 illustrates an exemplary flow diagram for registering with a server, in
accordance with the embodiment of present invention.
Figures 8a, 8b, and 8c illustrate an exemplary flow diagram for providing
notification of an incomplete call made by a calling party to a called party, in accordance
with the embodiment of present invention.
It may be noted that to the extent possible, like reference numerals have been used to
represent like elements in the drawings. Further, those of ordinary skill in the art will
appreciate that elements in the drawings are illustrated for simplicity and may not have been
necessarily drawn to scale. For example, the dimensions of some of the elements in the
8
drawings may be exaggerated relative to other elements to help to improve understanding of
aspects of the invention. Furthermore, the one or more elements may have been represented
in the drawings by conventional symbols, and the drawings may show only those specific
details that are pertinent to understanding the embodiments of the invention so as not to
obscure the drawings with details that will be readily apparent to those of ordinary skill in the
art having the benefits of the description herein.
DETAILED DESCRIPTION
For the purpose of promoting an understanding of the principles of the invention,
reference will now be made to the embodiment illustrated in the drawings and specific
language will be used to describe the same. It will nevertheless be understood that no
limitation of the scope of the invention is thereby intended, such alterations and further
modifications in the illustrated system, and such further applications of the principles of the
invention as illustrated therein being contemplated as would normally occur to one skilled in
the art to which the invention relates.
It will be understood by those skilled in the art that the foregoing general description
and the following detailed description are exemplary and explanatory of the invention and are
not intended to be restrictive thereof. Throughout the patent specification, a convention
employed is that in the appended drawings, like numerals denote like components.
Reference throughout this specification to “an embodiment”, “another embodiment”
or similar language means that a particular feature, structure, or characteristic described in
connection with the embodiment is included in at least one embodiment of the invention.
Thus, the appearances of the phrase “in an embodiment”, “in another embodiment” and
similar language throughout this specification may, but do not necessarily, all refer to the
same embodiment.
The terms "comprises", "comprising", or any other variations thereof, are intended to
cover a non-exclusive inclusion, such that a process or method that comprises a list of steps
does not include only those steps but may include other steps not expressly listed or inherent
to such process or method. Similarly, one or more devices or sub-systems or elements or
structures proceeded by "comprises... a" does not, without more constraints, preclude the
existence of other devices or other sub-systems.
9
Various embodiments of the invention will be described below in detail with
reference to the accompanying drawings.
Figures 1a and 1b illustrates an exemplary method (100) implemented in a calling
party device for providing notification of an incomplete call made by a calling party to a
called party, in accordance with an embodiment of the invention. In said embodiment,
referring to Figure 1a, the method comprises the steps of: detecting (101), by the calling
party device, outgoing placement of call to a called party; and sending (102), by the calling
party device, a request trigger to a server, the request trigger being indicative of the call and
includes calling party number, called party number, date of the call, and time-stamp of the
call; receiving (103), by the calling party device, a response trigger corresponding to the call
from the server, the response trigger being indicative of one of incomplete call to the called
party and complete call to the called party; and providing (104), by the calling party device,
one or more call reporting options when the response trigger is indicative of incomplete call.
The step of sending (102) the request trigger further comprises the steps of:
determining (105) existence of data connection with the server; and
in case the data connection exists, delivering (106) the request trigger to the server via
the data connection;
in case data connection does not exist, delivering (107) the request trigger to the
server via a non-data connection with the server.
Similarly, the response trigger is received via one of a data connection and a non-data
connection with the server.
Further, the method (100) comprises the step of creating (108) an account
corresponding to the calling party on the server, the account corresponding to the user of the
calling party device.
Further, the request trigger is generated by an application or a module in the calling
party device.
Further, the request trigger includes details of the user.
Further, the incomplete call is a call that is not established with a called party device
due to occurrence of one or more of a plurality of events. The plurality of events include the
called party device being busy, the called party device being in an out of coverage area, the
called party device being unreachable, the called party device being switched off, network
congestion, the call being rejected by the called party, the called being unanswered by the
called party, and the call being answered by the called party for predetermined time.
10
Further, the one or more call reporting options enable a user to provide notification of
the incomplete call and wherein the one or more call reporting options include transmitting a
media message to the called party device, transmitting an alert to the called party device, and
any combination thereof.
Further, the media message is one of: a voice message, an audio message, a video
message, a text message, a multimedia message, an image message, an audio-visual message,
and any combination thereof.
Referring to Figure 1b, the method (100) further comprises the steps of: receiving
(109), by the calling party device, a media message from a user of the calling party device in
response to selection of one of the one or more call reporting options; and transmitting (110),
by the calling party device, the media message to the server such that the media message is
further transmitted to the called party.
The step of transmitting (110) the media message by the calling party device further
comprises the steps of: determining (111) existence of data connection with the server; and
in case the data connection exists, delivering (112) the media message to the server;
or
in case data connection does not exist, storing (113) the media message in a memory
of the calling party device for delivery to the server at a later point in time when the data
connection exists.
Figures 2a, 2b, and 2c illustrate an exemplary method (200) implemented in a server
for providing notification of an incomplete call made by a calling party to a called party, in
accordance with the embodiment of the invention. In said embodiment, referring to Figure
2a, the method (200) comprises the steps of: receiving (201), by the server, a request trigger
from a calling party device, the request trigger being indicative of a call initiated from a
calling party device to a called party and includes calling party number, called party number,
date of the call and time-stamp for the call; determining (202) if called party trigger is
received from a called party device corresponding to the call, the called party trigger being
indicative of one of complete call and incomplete call with the called party; and transmitting
(203), by the server, a success response trigger to the calling party device upon receipt of the
called party trigger being indicative of the complete call; or transmitting (204), by the server,
a failure response trigger to the calling party device upon one of: receipt of the called party
trigger being indicative of the incomplete call and non-receipt of the called party trigger.
Further, the request trigger is received via one of a data connection and a non-data
connection with the calling party device.
11
Further, the called party trigger includes details of the incomplete call with the called
party.
Further, the called party trigger is received by the server via one of a data connection
and a non-data connection with the called party device.
Further, the step of transmitting (203) the success response trigger includes steps of:
determining existence of data connection with the calling party device; and
in case the data connection exists, delivering the success response trigger to the
calling party device via the data connection; or
in case data connection does not exist, delivering the success response trigger to the
calling party device via a non-data connection with the calling party device.
Similarly, the step of transmitting (204) the failure response trigger includes steps of:
determining existence of data connection with the calling party device; and
in case the data connection exists, delivering the failure response trigger to the calling
party device via the data connection; or
in case data connection does not exist, delivering the failure response trigger to the
calling party device via a non-data connection with the calling party device.
Referring to Figure 2b, the step of determining (202) further comprises the steps of:
determining (205), by the server, a non-receipt of the called party trigger from the called
party device upon elapse of a predetermined time from the reception of the request trigger
from calling party; transmitting (206), by the server, an intermediate trigger to the called
party device; and determining (207), by the server, a receipt or non-receipt of
acknowledgment from the called party device in response to the intermediate trigger.
Further, the intermedia trigger is transmitted by the server via one of a data
connection and a non-data connection with the called party device.
Further, the acknowledgment is indicative of one of a complete call and an incomplete
call with the called party.
Further, the non-receipt of the acknowledgment is indicative of an incomplete call
with the called party.
Now, referring to Figure 2c, the method (200) further comprises the steps of:
receiving (208), by the server, a media message from the calling party device, the media
message being provided for the called party; and transmitting (209), by the server, the media
message to the called party.
12
The method (200) further comprises the steps of: determining (210) an account
corresponding to the called party; and storing (211) the media message in the account
corresponding to the called party.
The method further comprises the step of comprising storing (212) the media message
as received from the calling party device in the account corresponding to the calling party.
Further, the media message thus stored is associated with the calling party number,
the called party number, date of the call, and time stamp of the call.
Further, the step of transmitting (209) comprises steps of: receiving (213), by the
server, a query from the called party device via data connection with the server, the query
being directed towards the account corresponding to the called party; fetching (214) the
media message from the account; and transmitting (215) the media message to the called
party via the data connection.
Prior to the step of receiving (208), the method (200) further comprises the steps of:
creating (216) an account corresponding to the calling party, the account corresponding to the
calling party being associated with a calling party user identification and a calling party
number; and creating (217) an account corresponding to the called party, the account
corresponding to the called party being associated with a called party user identification and a
called party number.
Figure 3 illustrates an exemplary method (300) implemented in a called party device
for providing notification of an incomplete call made by a calling party to a called party, in
accordance with the embodiment of the invention. In said embodiment, the method (300)
comprises the steps of: detecting (301) by a called party device, a receipt of a call from a
calling party; monitoring (302), by the called party device, a progress of the call since
detecting the receipt of the call; determining (303), by the called party device, the call being
one of incomplete call and a complete call based on the monitoring; and transmitting (304),
by the calling party device, a called party trigger to a server, the called party trigger being
indicative of one of the complete call and the incomplete call.
Further, the progress of the call is monitored from the call being received to the call
being one of: answered, unanswered, and rejected.
Further, the incomplete call is a call that is not established with the called party device
due to occurrence of one or more of a plurality of events, the plurality of events the call being
rejected, the call being unanswered, and the call being answered for predetermined time.
13
Further, the step of transmitting (304) the called party trigger by the called party
device includes the steps of: determining (305) existence of data connection with the server;
and
in case the data connection exists, delivering (306) the called party trigger to the
server via the data connection; or
in case data connection does not exist, delivering (307) the called party trigger to the
server via a non-data connection with the server.
Further, in one implementation, the called party trigger is transmitted instantaneously
upon monitoring.
Further, in another implementation, the called party trigger is transmitted in response
to receipt of an intermediate trigger from the server.
Figure 4 illustrates an exemplary mobile device (400) for providing notification of an
incomplete call made by a calling party to a called party, in accordance with an embodiment
of the invention. The mobile device (400) is any electronic device capable of making and
receiving a voice call over a voice communication network and capable of communicating
over data communication mode and/or non-data communication mode. Examples of the
mobile device (400) include smart phone, laptop, tablet, an enhanced general packet radio
service (EGPRS) enabled mobile phone, and Personal Digital Assistance (PDA).
Referring to Figure 4, the mobile device (400) includes a processor (401)
communicatively coupled with display unit (402). The mobile device (400) further includes a
memory (403) coupled to the processor (401). As would be understood, the mobile device
(400) can serve as a calling party device and called party device.
Thus, in one aspect the mobile device (400) acts or serves as a calling party device
upon initiating a call. In such aspect, the mobile device (400) performs the method (100)
described in conjunction with Figures 1a and 1b.
Accordingly, the processor (401) detects outgoing placement of a call to a called
party. Upon detecting the initiation of the call, the processor (401) sends a request trigger to a
server, the request trigger being indicative of the call and includes calling party number,
called party number, date of the call, and time-stamp of the call. Thereafter, the processor
(401) receives a response trigger corresponding to the call from the server, the response
trigger being indicative of one of incomplete call to the called party and complete call to the
called party; and provides one or more call reporting options when the response trigger is
indicative of incomplete call. Accordingly, the display unit (402) coupled to the processor
(401) depicts the one or more call reporting options.
14
Further, while sending the request trigger, the processor (401) determines existence of
data connection with the server. In case the data connection exists, the processor (401)
delivers the request trigger to the server via the data connection. In case data connection does
not exist, the processor (401) delivers the request trigger to the server via a non-data
connection with the server.
Further, the processor (401) receives a media message (404) from a user of the calling
party device (400) in response to selection of one of the one or more call reporting options.
Thereafter, the processor (401) transmits the media message (404) to the server such that the
media message (404) is further transmitted to the called party.
Further, while transmitting the media message (404), the processor (401) determines
existence of data connection with the server. In case the data connection exists, the processor
(401) delivers the media message (404) to the server. In case data connection does not exist,
the processor (401) stores the media message (404) in the memory (403) of the calling party
device (400) for delivery to the server at a later point in time when the data connection exists.
In another aspect, the mobile device (400) acts or serves as a called party device upon
receiving a call. In such aspect, the mobile device (400) performs the method (300) described
in conjunction with Figure 3.
Accordingly, the processor (401) in the mobile device or called party device (400)
detects a receipt of a call from a calling party. Upon detecting, the processor (401) monitors a
progress of the call. Based on the monitoring, the processor (401) the call being one of an
incomplete call and a complete call. Thereafter, the processor (401) transmits a called party
trigger to a server. The called party trigger is indicative of one of the complete call and the
incomplete call.
Further, the processor (401) may be implemented as one or more processors,
microprocessors, application specific integrated circuits (ASICs), field programmable gate
arrays (FPGAs), or the like. The processor (401) may also control the operation of the calling
party device (400) and its components. Further, the processor (401) may execute software
instructions contained in the memory (403) to enable the mobile device (400) to perform
necessary functions.
Further, the memory (403) may include a random access memory (RAM), a read only
memory (ROM), and/or other type of memory to store data and instructions that may be used
by the processor (401). In one implementation, the memory (403) also includes an application
or module (405) for enabling the processor (401) to perform aforesaid functions. In one
implementation, the application (405) can include plurality of modules for performing
15
different functions. In another implementation, the application (405) can include one module
for performing different functions. In one example, the application (405) may be a preinstalled
application or pre-loaded application at time of manufacturing of the mobile device
(400). In another example, the application (405) may be downloaded from the server by a
user. In an alternative implementation, the functionalities provided by the application (405)
may be implemented via an inbuilt dedicated module in the mobile device (400). The
application (405) may include one or more of routines, programs, objects, components, data
structures, etc., which perform particular tasks, functions or implement particular abstract
data types. The memory (403) may also include other data (406) that stores, amongst other
things, login ids, passwords, and data processed, received, and generated by the application
(405).
The mobile device (400) may further include mechanisms for inputting information to
the mobile device (400) and/or for outputting information from the mobile device (400).
Examples of inputting mechanisms include, but not limited to, touch based input, non-touch
based input, gesture based input, keyboard (virtual or physical) based input, and other devices
such as camera and microphone. Examples of outputting mechanisms include, but not limited
to, speaker and the display unit (402). The mobile device (400) may further include
communication interface(s) that enables the mobile device (400) to communicate with other
devices and/or systems. The communication interface may connect to an antenna assembly
for transmission and/or reception of RF signals.
Further, the processor (401) may communicate with a smart card such as a SIM card
for performing necessary functions such as enabling the mobile device (400) to receive and
initiate voice calls.
Although, specific hardware has been illustrated in the figure and described above, it
should be understood that the mobile device (400) may include other hardware modules or
software module or combinations as may be required for performing various functions.
Figure 5 illustrates an exemplary server (500) for providing notification of an
incomplete call made by a calling party to a called party, in accordance with an embodiment
of the invention. In accordance with said embodiment, the server (500) is a network operator
independent server that performs the method (200) described in conjunction with Figures 2a
and 2b. In other words, the server (500) serves subscribers of the network operator without
requiring any trigger from the network operator. Further, the server (500) is implemented as
an application server hosting an application, such as application (405), for enabling
completion of an incomplete call made by a calling party to a called party. In one
16
implementation, the server (500) may be implemented as a cloud based server. In another
implementation, the server (500) may be implemented as a networked based server. Further,
the server (500) may operate as a standalone device or may be connected, for example, using
a network to other computing systems or peripheral devices.
In accordance with the embodiment, the server (500) includes a communication
interface (501) to receive a request trigger from a calling party device. The request trigger is
indicative of a call initiated from the calling party device to a called party and includes
calling party number, called party number, date of the call and time-stamp of the call.
The server (500) further includes a processor (502) coupled to the communication
interface (501) to determine if a called party trigger is received from a called party device
corresponding to the call. The called party trigger is indicative of one of complete call and
incomplete call with the called party. In one implementation, the processor (502) may receive
the called party trigger. In another implementation, a separate hardware and/or software unit
may receive the called party trigger.
Accordingly, the processor (502) transmits a response trigger to the calling party
device. As such, if a called party trigger indicative of complete call is received, the processor
(502) transmits a success response trigger to the calling party device.
Alternatively, if a called party trigger indicative of incomplete call is received, the
processor (502) transmits a failure response trigger to the calling party device.
On the contrary, upon non-receipt of the called party trigger, the processor (502)
determines the call is incomplete call and transmits a failure trigger to the calling party
device.
Further, upon transmitting the failure response trigger, the processor (502) receives a
media message from the calling party device, the media message being provided for the
called party. Thereafter, the processor (502) transmits the media message to the called party.
The processor (502) transmits the media message via a data connection with the called party
device.
Further, the processor (502) may be implemented as one or more general processors,
digital signal processors, application specific integrated circuits, field programmable gate
arrays, servers, networks, digital circuits, analog circuits, combinations thereof, or other now
known or later developed devices for analysing and processing data.
The server (500) may include a memory (503) that can communicate via a bus (504).
The memory (503) may be a main memory, a static memory, or a dynamic memory. The
memory (503) may include, but is not limited to computer readable storage media such as
17
various types of volatile and non-volatile storage media, including but not limited to random
access memory, read-only memory, programmable read-only memory, electrically
programmable read-only memory, electrically erasable read-only memory, flash memory,
magnetic tape or disk, optical media and the like. In one example, the memory (503) includes
a cache or random access memory for the processor (502). In alternative examples, the
memory (503) is separate from the processor (502), such as a cache memory of a processor,
the system memory, or other memory. The memory (503) may be an external storage device
or database for storing data. Examples include a hard drive, compact disc ("CD"), digital
video disc ("DVD"), memory card, memory stick, floppy disc, universal serial bus ("USB")
memory device, or any other device operative to store data. The memory (503) is operable to
store instructions executable by the processor (502). The functions, acts or tasks illustrated in
the figures or described may be performed by the programmed processor (502) executing the
instructions stored in the memory (503). The functions, acts or tasks are independent of the
particular type of instructions set, storage media, processor or processing strategy and may be
performed by software, hardware, integrated circuits, firm-ware, micro-code and the like,
operating alone or in combination. Likewise, processing strategies may include
multiprocessing, multitasking, parallel processing and the like.
As shown, the server (500) may further include an output unit (505), such as an audio
unit and/or a display unit. The examples of the display unit include, but are not limited to a
liquid crystal display (LCD), an organic light emitting diode (OLED), a flat panel display, a
solid state display, a cathode ray tube (CRT), a projector, a printer or other now known or
later developed display device for outputting determined information. The output unit (505)
may act as an interface for the user to listen/see the functioning of the processor (502), or
specifically as an interface with the software stored in the memory (503) or in a removable
storage device.
Additionally, the server (500) may include an input unit (506) configured to allow a
user to interact with any of the components of server (500) The input unit (506) may be a
number pad, a keyboard, or a cursor control device, such as a mouse, or a joystick, touch
screen display, remote control or any other device operative to interact with the server (500).
The server (500) may also include a disk or optical drive unit (507). The disk drive
unit (507) may include a computer-readable medium (508) in which one or more sets of
instructions (509), e.g. software, can be embedded. Further, the instructions (509) may
embody one or more of the methods or logic as described. In a particular example, the
instructions (509) may reside completely, or at least partially, within the memory (503) or
18
within the processor (502) during execution by the server (500). The memory (503) and the
processor (502) also may include computer-readable media as discussed above.
The present invention contemplates a computer-readable medium that includes
instructions (509) or receives and executes instructions (509) responsive to a propagated
signal so that a device connected to a network (510) can communicate voice, video, audio,
images or any other data over the network (510). Further, the instructions (509) may be
transmitted or received over the network (510) via the communication interface (501) or
using the bus (504). The communication interface (501) may be configured to connect with
the network (510), external media, the output unit (505), or any other components in the
server (500) or combinations thereof. The connection with the network (510) may be a
physical connection, such as a wired Ethernet connection or may be established wirelessly as
discussed later. Likewise, the additional connections with other components of the server
(500) may be physical connections or may be established wirelessly. The network (510) may
alternatively be directly connected to the bus (504).
The network (510) may include wired networks, wireless networks, Ethernet AVB
networks, or combinations thereof. The wireless network may be a cellular telephone
network, an 802.11, 802.16, 802.20, 802.1Q or WiMax network. Further, the network (510)
may be a public network, such as the Internet, a private network, such as an intranet, or
combinations thereof, and may utilize a variety of networking protocols now available or
later developed including, but not limited to TCP/IP based networking protocols.
In an alternative example, dedicated hardware implementations, such as application
specific integrated circuits, programmable logic arrays and other hardware devices, can be
constructed to implement various parts of the server (500).
The present invention can be implemented on a variety of electronic and computing
systems. For instance, one or more examples described may implement functions using two
or more specific interconnected hardware modules or devices with related control and data
signals that can be communicated between and through the modules, or as portions of an
application-specific integrated circuit. Accordingly, the present system encompasses
software, firmware, and hardware implementations.
Any one or more of the methods or logic as described may be implemented in part by
software programs executable by a computing system. Further, in a non-limited example,
implementations can include distributed processing, component/object distributed processing,
and parallel processing. Alternatively, virtual computing system processing can be
constructed to implement various parts of the server (500).
19
The server (500) is not limited to operation with any particular standards and
protocols. For example, standards for Internet and other packet switched network
transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP) may be used. Such standards are
periodically superseded by faster or more efficient equivalents having essentially the same
functions. Accordingly, replacement standards and protocols having the same or similar
functions as those disclosed are considered equivalents thereof.
Figures 6 to 8 illustrate flow diagrams of the invention, in accordance with an
embodiment of the invention. Those skilled in the art will appreciate that the flow diagrams
are exemplary in nature; there could be many more situations wherein the concepts of present
invention could be utilized to achieve one or more advantages of the present invention. The
exemplary flow diagrams described hereinafter implement the present invention through an
application available in user devices of both calling party and called party. The application be
a pre-installed application or can be an external application requiring download and
installation.
Figure 6 illustrates an exemplary network environment (600) that facilitates for
providing notification of an incomplete call made by a calling party to a called party, in
accordance with an embodiment of present invention. In such embodiment, a calling party
device (601) and a called party device (602) communicate with each other over a voice
communication network (603). The calling party device (601) and the called party device
(602) include components as illustrated and described in reference to Figure 4 above.
The calling party device (601) and the called party device (602) further communicate
with a server (604) either via a data communication channel or a non-communication
channel. Further, the server (604) is independent of network operator of the voice
communication network (603). The server (604) also hosts an application for enabling the
calling party device (601) to complete an incomplete call to the called party device (602). The
application is available in both the calling party device (601) and the called party device
(602) as the application (405). In one example, the application (405) may be a pre-installed
application or pre-loaded application at time of manufacturing of the calling party device
(601) and the called party device (602). In another example, the application (405) may be
downloaded from the server by users of the calling party device (601) and the called party
device (602).
In accordance with the invention, the calling party device (601) initiates a call to the
called party device (602) over the voice communication network (603). Typically, a first
network component (not shown in the figure) in the voice communication network (603)
20
receives the outgoing call initiated from the calling party device (601) to establish a voice
communications link between the calling party device (601) and the called party device
(602). The first network component routes the call attempt to a second network component in
the voice communication network (603) for establishing the communications link between
the calling party device (601) and the called party device (602). Examples of the first network
component and second network component include, but not limited to, a mobile switching
centre (MSC), a base station subsystem (BSS), a radio access network (RAN), a telephone
exchange, and a telephone switch, associated with the calling party device (601) and the
called party device (602). The second network component is either the same as the first
network component or one of multiple network components excluding the first network
component.
The application (405) in the calling party device (601) detects the placement of the
call and transmits a request trigger to the server (604) (represented by bold lines and numeral
1). The request trigger is indicative of the call and includes calling party number, called party
number, date of the call, and time-stamp of the call. The request trigger is transmitted either
via the data communication channel or the non-data communication channel. The request
trigger may also include a query to the server (604) to confirm if the call according to the
details of the call is received by the called party.
Further, the request trigger is being sent independent of the call being established with
the called party device (602). In other words, the application (405) may transmit the request
trigger irrespective of the first network component receiving the call. In one example, the
application (405) transmits the request trigger after an elapse of predetermined time such as 2
seconds from placement of the call. In another example, the application (405) transmits the
request trigger simultaneously with the placement of the outgoing call.
Upon receiving the request trigger, the server (604) determines if a called party trigger
is received from the called party device (602). The called party trigger is indicative of one of
a complete call and an incomplete call with the called party device (602) over the voice
communication network. As such, the application (405) in the called party device (602)
detects a call received from the calling party device (601) and monitors a progress of the call.
Based on the monitoring, the application (405) determines the call being one of an
incomplete call and a complete call. The incomplete call is a call that is not established with
the called party device (602) due to occurrence of one or more of a plurality of events. The
plurality of events include the call being rejected by the called party, the called being
unanswered by the called party, and the call being answered by the called party for
21
predetermined time. The complete call is call that is established with the called party device
(602). The application can monitor the progress of the call using various methods as known
in the art.
Based on the determination, the application (405) sends the called party trigger
indicative of one of the incomplete call and the complete call to the server (604). The called
party trigger includes calling party number, called party number, date of the call and timestamp
of the call. The called party trigger also includes details of the incomplete call in case
of the incomplete call. In one example, the details include one of the plurality of events
responsible for the incomplete call. The called party trigger is transmitted either via the data
communication channel or the non-data communication channel.
If the called party trigger indicative of the complete call is received from the called
party device (602) (represented by dashed lines and numeral 2), the server (604) transmits a
success response trigger indicative of the complete call (represented by solid lines and
numeral 3). The success response trigger may include details of the call such as calling party
number, called party number, date of the call and time-stamp of the call.
Alternatively, if the called party trigger indicative of the incomplete call is received
from the called party device (602) (represented by dashed lines and numeral 2), the server
(604) transmits a failure response trigger indicative of the incomplete call (represented by
solid lines and numeral 3). The failure response trigger may also include details of the
incomplete call and details of the call such as calling party number, called party number, date
of the call and time-stamp of the call.
Further, upon receiving the called party trigger, the server (604) compares details
present in the request trigger and the called party trigger such as calling party number, called
party number, date of the call and time-stamp of the call. Based on the comparison, the server
(604) ascertains or detects both the request trigger and the called party trigger pertains or
relates to same call initiated or placed by the calling party device (601). Upon ascertaining,
the, the server (604) transmits or sends corresponding response trigger. This enables the
server (604) to send appropriate response trigger for corresponding call initiated by the
calling party device (601) and eliminate sending false response trigger.
On the contrary, if the called party trigger is not received for a predetermined time,
the server (604) sends an intermediate trigger to the called party device (602) (represented by
dashed lines and numeral 4). The predetermined time is of short duration, for example, few
milliseconds. The intermediate trigger may include details of the call such as calling party
number, called party number, date of the call, and time-stamp of the call. The intermediate
22
trigger may also include a query for the called party trigger. Thus, the intermediate trigger is
sent to the application (405) in the called party device (602) to confirm if the call according
to the details of the call is received from the calling party. Upon transmitting the intermediate
trigger, the server (604) determines if an acknowledgement is received from the called party
device (602) in response to the intermediate trigger. The acknowledgment is indicative of one
of an incomplete call and a complete call. In one implementation, the acknowledgment is
same as the called party trigger. In another implementation, the acknowledgment is different
from the called party trigger but includes details of the called party trigger.
If the acknowledgment indicative of the complete call is received from the called
party device (602) (represented by dashed lines and numeral 5), the server (604) transmits the
success response trigger indicative of the complete call (represented by solid lines and
numeral 3).
Alternatively, if the acknowledgment indicative of the incomplete call is received
from the called party device (602) (represented by dashed lines and numeral 5), the server
(604) transmits the failure response trigger indicative of the incomplete call (represented by
solid lines and numeral 3).
On the contrary, if the acknowledgment is not received for a predetermined time, the
server (604) determines the call is an incomplete call and transmits the failure response
trigger indicative of the incomplete call (represented by solid lines and numeral 3). For the
sake of brevity, the transmission of response triggers either success (or call complete) or
failure (or call incomplete) is represented by single line and same numeral.
The incomplete call, during a non-receipt of the called party trigger and/or the
acknowledgement, is a call that is not established with the called party device (602) due to
occurrence of one or more of a plurality of events. The plurality of events include the called
party device (602) being busy, the called party device (602) being in an out of coverage area,
the called party device (602) being unreachable, the called party device (602) being switched
off, and network congestion.
Upon receiving the failure response trigger indicative of incomplete call, the
application (405) in the calling party device (601) provides one or more call reporting options
on the calling party device (601). The call reporting options enable the calling party to
provide notification of the detected incomplete call to the called party over a data connection
without involving the voice communication network (603). The call reporting options
include, but not limited to, transmitting a media message to the called party device (602),
transmitting an alert to the called party device (602), and any combination thereof. The
23
application (405) provides the call reporting options on a graphical user interface (GUI) of
the calling party device (601) and may receive a selection of one of the reporting options
from a user via the GUI.
Thus, the present invention enables providing of reporting options to the calling party
based on receiving a response trigger from the server that is further dependent upon receipt or
non-receipt of a called party trigger from the calling party device.
Figure 7 illustrates an exemplary flow diagram (700) for registering with the server
(604), in accordance with an embodiment of present invention. As described earlier, in one
example, the application (405) is pre-stored or preinstalled in both the calling party device
(601) and the called party device (602) at the time of manufacturing of the devices. In another
example, the application (405) may be downloaded from the server (604) by users of the
calling party device (601) and the called party device (602).
At step 701, user of the calling party device (601) creates an account via the
application (405) at the server (604). Accordingly, the user registers a mobile number or
Mobile Station International Subscriber Directory Number (MSISDN) of the calling party
device (601) with the server (604), as known in the art.
Thereafter, the server (604) stores the MSISDN of the calling party device (601) and
authenticates the calling party device (601) as known in the art. In one example, the server
(604) sends a one-time password (OTP) to the calling party device (601) for authentication of
the calling party device (601).
At step 702, user of the called party device (602) creates an account via the
application (405) at the server (604). Accordingly, the user registers a mobile number or
Mobile Station International Subscriber Directory Number (MSISDN) of the called party
device (602) with the server (604), as known in the art.
Thereafter, the server (604) stores the MSISDN of the called party device (602) and
authenticates the called party device (602) as known in the art. In one example, the server
(604) sends a one-time password (OTP) to the called party device (602) for authentication of
the called party device (602).
As would be understood from the above, the implementation of the above invention
necessitates both the calling party device (601) and the called party device (602) to create an
account with the server (604) via the application (405).
Upon authentication of the calling party device (601), the application (405) obtains a
contact list of the calling party device (601) and saves contacts present in the contact list at
the server (604). Similarly, upon authentication of the called party device (602), the
24
application (405) obtains a contact list of the called party device (602) and saves contacts
present in the contact list at the server (604). Likewise, the application (405) in mobile
devices of contacts saves contact list at the server (604). This enables the server (604) to
identify contacts having the application (405) in their respective mobile devices. Thereafter,
the application (405) in all devices including the devices (601, 602) receives information of
the identified contacts from the server (604) when a data connection is available between the
devices and the server (504). This enables the application (405) and the sever (604) to send
and receive trigger from devices having the application (405). At this stage, the registration of
the device (601, 602) with the server (604) is completed.
In addition, the server (604) may also determine existence or availability of data
connection with the calling party device (601) and the called party device (602) during the
registration process for sending triggers and other suitable data.
Further, the server (604) stores details of the calling party device (601) and the called
party device (602) in a database in their corresponding accounts, as known in the art. In one
example, the database can be external to the server (604). In another example, the database
can be internal to the server (604).
Though, the registration process is illustrated in two sequential steps, it would be
understood that either of the steps can be performed at any time independent of each other.
As described earlier, the application (405) enables the user of the calling party device
(601) to providing notification of the incomplete call to the user of the called party device
(602) and accordingly sends a media message or an alert to the user of the called party
device. Further, the application (405) enables the user of the called party device (602) to
receive media message(s) or alert (s) from called party devices having the application (405).
In addition, the application (405) enables viewing, playing, managing and the media
message(s) and/or the alert(s). Moreover, the application (405) enables performing other
functions such as storing and searching. Additionally, the application (405) enables
forwarding the media message(s) to other sources such as email, other mobile device(s)
having the application (405), and social media profile. As would be understood, the email and
the social media profile can be of either the user of the called party device (602) or other
users.
Figure 8 illustrates an exemplary flow diagram (800) for completing an incomplete
call made by a calling party to a called party, in accordance with an embodiment of present
invention. For illustration purposes and description, a presence of data connection between
the calling party device (601), the called party device (602), and the server (604) is depicted
25
by way of phrase ‘ON data’. Similarly, an absence of data connection between the calling
party device (601), the called party device (602), and the server (604) is depicted by way of
phrase ‘OFF data’.
Referring to Figure 8(a), at step 801, the calling party device (601) initiates or places
a call to the called party device (602). The call will be directed over the voice communication
network (603) and independent of the server (604).
At step 802, the application (405) in the calling party device (601) detects the
placement of the call and sends a request trigger to the server (604). The request trigger is
indicative of the call and includes calling party number, called party number, date of the call,
and time-stamp for the call. In one example, the details such as calling party number, called
party number, date of the call, and time-stamp for the call are obtained from call logs of the
calling party device (601). The request trigger may also include a query to the application
(405) in the called party device to confirm if the call is received by the calling party. In one
example, such a request trigger can be sent by the calling party device (601) using a message
frame, as known in the art. The transmission of the request trigger is independent of the call
being established with the called party device (602), as described earlier in reference to
Figure 6.
The request trigger is sent over either a data connection or a non-data connection with
the server (604). Accordingly, in one implementation, the application (405) determines
existence or availability of data connection in the calling party device (601) with the server
(604). Examples of the data connection include, but not limited to, Wi-Fi, LAN data, and
mobile data. As would be understood, the existence or availability of data connection in a
device is availability of capability in the device to communicate data over the data
connection, although the data connection may or may not be active in the device at the time
of sending the data. In case the data connection exists, the application (405) delivers the
request trigger to the server (604) via the data connection. Thus, if the data connection is not
active, the application (405) activates the data connection and transmits the request trigger. In
case data connection does not exist, the application (405) delivers the request trigger to the
server (604) via a non-data connection with the server (604). Examples of such non-data
connection mode include, but not limited to, SMS mode, USSD mode, and push message
mode.
At step 803, upon receiving the request trigger, the server (604) determines if a called
party trigger is received from the called party device (602). The called party trigger is
indicative of one of a complete call and an incomplete call with the called party device (602)
26
over the voice communication network (603). The complete call is a call that is established
with the called party device (602). In other words, the communication link is connected
between the calling party device (601) and the called party device (602) and the user of the
called party device (602) answers the call such that communication occurs for more than a
predetermined time. The incomplete call is a call that is not established with the called party
device (602) due to occurrence of one or more of a plurality of events. As described earlier,
the plurality of events include the call being rejected by the user of the called party device
(602), the called being unanswered by the user of the called party device (602), and the call
being answered by the user of the called party device (602) for a predetermined time. The
predetermined time is a short duration of few seconds or less that does not enable intended
communication to occur between the users of the calling party device (601) and the called
party device (602). In other words, the communication link is not established between the
calling party device (601) and the called party device (602).
Thus, the application (405) in the called party device (602) monitors a progress of the
call as described in reference to Figure 6. Based on the monitoring, the application (405)
determines the call being one of the incomplete call and the complete call. Upon
determination, the application (405) sends the called party trigger indicative of one of the
incomplete call and the complete call to the server (604). The called party trigger includes
calling party number, called party number, date of the call and time-stamp of the call. The
called party trigger also includes details of the incomplete call in case of the incomplete call.
In one example, the details include one of the plurality of events responsible for the
incomplete call.
Further, the called party trigger is received over one of a data connection and non-data
connection with the called party device. In one example, such a called party trigger can be
sent by the application (405) in the called party device (602) using a message frame, as
known in the art. The message frame may include a single character indicative of incomplete
or complete call, details of the call, and details of incomplete call.
If at step 804, the server (604) receives the called party trigger indicative of the
complete call from the called party device (602) (represented by dashed lines), the server
(604) transmits a success response trigger indicative of the complete call at step 805. As
described in reference to Figure 6, the server (604) compares the request trigger and the
called party trigger to ascertain the triggers correspond to the same call and subsequently
sends a response trigger to the calling party device (601). The success response trigger
27
includes details the call such as calling party number, called party number, date of the call
and time-stamp of the call.
The success response trigger is sent over either a data connection or a non-data
connection with the calling party device (601). Accordingly, in one implementation, the
server (604) determines existence or availability of data connection with the calling party
device (601) with the server (604). Examples of the data connection include, but not limited
to, Wi-Fi, LAN data, and mobile data. In case the data connection exists, the server (604)
delivers the response trigger to the calling party device (601) via the data connection. In case
data connection does not exist, the server (604) delivers the response trigger to the calling
party device (601) via a non-data connection. Examples of such non-data connection mode
include, but not limited to, SMS mode, USSD mode, and push message mode. In one
example, the details of existence or availability of data connection is pre-stored with the
server (604) during registration process described in reference to Figure 7.
Upon receiving the success response trigger indicative of the complete call at step
805, the application (405) remains inactive. In one example, such a success response trigger
can be sent by the server (604) using a message frame, as known in the art. The message
frame may include a single character indicative of complete call, and details of the call.
However, if at step 804, the server (604) receives the called party trigger indicative of
the incomplete call from the called party device (602) (represented by dashed lines), the
process flows to step 810.
On the contrary, if the server (604) does not receive the called party trigger at step
804, the process flows to step 806.
Accordingly, at step 803, the server (604) determines a non-receipt of the called party
trigger from the called party device (602) upon elapse of a predetermined time from the
reception of the request trigger from calling party device (601) at step 801. In an example, the
server (604) starts a timer to count elapse of the predetermined time. In one example, the
predetermined time is 5 milliseconds.
At step 806, upon elapse of the predetermined time, the server (604) sends an
intermediate trigger to the called party device (602). The intermediate trigger may include
details of the call such as calling party number, called party number, date of the call, and
time-stamp of the call. The intermediate trigger may also include a query for the called party
trigger. Thus, the intermediate trigger is sent to the application (405) in the called party
device (602) to confirm if the call according to the details of the call is received from the
28
calling party. In one example, such an intermediate trigger can be sent by the server (604)
using a message frame, as known in the art.
Further, the server (604) transmits the intermediate trigger via one of a data
connection and a non-data connection with the called party device (602). In one
implementation, the details of the call are obtained from the request trigger received from the
calling party device (601) at step 801. The transmission of the intermediate trigger is
independent of the call being established with the called party device (602), as described
earlier in reference to the request trigger in Figure 6.
At step 807, upon transmitting the intermediate trigger, the server (604) determines if
an acknowledgement is received from the called party device (602). The acknowledgement is
indicative of one of a complete call and an incomplete call with the called party device (602)
over the voice communication network (603). In one example, such an acknowledgement can
be sent using a message frame. In one implementation, the acknowledgement is same as the
called party trigger sent by the called party device (602) at step 804. In another
implementation, the acknowledgement is different from the called party trigger. The
application (405) may provide the acknowledgment in a manner similar or same as the
determination of the called party trigger, as described in reference to Figure 6. In one
implementation, the application (405) may store the called party trigger when the application
(405) is unable to send the called party trigger. In such implementation, the application (405)
may send the details of the called party trigger as the details of the acknowledgement.
If at step 808, the server (604) receives the acknowledgement indicative of the
complete call from the called party device (602) (represented by dashed lines), the server
(604) transmits the success response trigger indicative of the complete call at step (809). As
described earlier, the server (604) may compare the acknowledgement and the request trigger
and then send the response trigger based on the comparison. The success response trigger is
sent over either a data connection or a non-data connection with the calling party device
(601), as described at step 805. Upon receiving the success response, the application (405)
remains inactive.
However, if at step 808, the server (604) receives the acknowledgment indicative of
the incomplete call from the called party device (602) (represented by dashed lines), the
process flows to step 810.
On the contrary, if the server (604) does not receive the acknowledgement at step 808,
the process flows to step 810.
29
Now referring to Figure 8(b), at step 810, the server (604) transmits a failure
response trigger upon non-receipt of the called party trigger or the acknowledgment from the
called party device (602). The failure response trigger is indicative of incomplete call with
the called party device (602) over the voice communication network (603). The failure
response trigger may include details of the incomplete call and details of the call such as
calling party number, called party number, date of the call and time-stamp of the call.
The incomplete call, in case of non-receipt of the called party trigger or the
acknowledgment, is a call that is not established with the called party device (602) due to
occurrence of one or more of a plurality of events. As described earlier, the plurality of events
include the called party device (602) being busy, the called party device (602) being in an out
of coverage area, the called party device (602) being unreachable, the called party device
(602) being switched off, and network congestion. In other words, the communication link is
not established between the calling party device (601) and the called party device (602).
Further, the failure response trigger is sent over either a data connection or a non-data
connection with the calling party device (601), as described at step 805. In one example, such
a failure response trigger can be sent by the server (604) using a message frame, as known in
the art. The message frame may include a single character indicative of incomplete call,
details of the incomplete call, and details of the call.
At step 811, upon receiving the failure response trigger, the application (405) in the
calling party device (601) provides call reporting options on the calling party device (601).
As described earlier, the call reporting options enable the user of the calling party device
(601) to provide notification of the incomplete call to the user of the called party device
(602). The one or more call reporting options include, but not limited to, transmitting a media
message to the called party device (602), transmitting an alert to the called party device
(602), and any combination thereof. The application (405) provides the call reporting options
on a graphical user interface (GUI) of the calling party device (601). In one example, the GUI
is a mobile based application interface of the application (405). In another example, the GUI
is a pop-up message.
Thus, the determination of providing call reporting options is performed based on
either non-receipt of the called party response or receipt of the called party response being
indicative of incomplete call from the called party device (602). Thus, the need for
monitoring each outgoing call and monitoring of network strength is eliminated, and
therefore is less resource-intensive. Further, to avoid false-determination, the server (604)
sends or pushes or transmits the intermediate trigger to the application (405) in the called
30
party device (602). The determination of incomplete call is then made based on either nonreceipt
of the acknowledgement or receipt of the acknowledgment being indicative of
incomplete call from the called party device (602). This provides a fail-proof mechanism for
sending appropriate response triggers to the calling party device (601).
Upon receiving the call reporting options, the user may select one of the reporting
options via the GUI. In one implementation, the user may select the option related to
transmitting a media message to the called party device (602).
At step 812, the application (405) receives a selection of the option related to
transmitting the media message. Subsequently, the application (405) receives a media
message from the user. Examples of the media message include audio message, voice
message, video message, a text message, a multimedia message, an image message, an audiovisual
message, and a combination thereof. In one example, the application (405) may
activate a microphone for the user to record an audio or voice message in real time. In
another example, the application (405) may enable the user to select a pre-recorded media
message. In one another example, the application (405) may activate a camera for the user
record a video message or audio-visual message in real time. In yet another example, the
application (405) may activate a keyboard for the user to provide a text message in real time.
At step 813, the application (405) determines an existence or availability of data
connection in the calling party device (601) with the server (604), as described in reference to
Figure 6.
In case the data connection exists, the application (405) delivers the media message to
the server (604) via the data connection at step 814. In addition, the application (405)
transmits mobile numbers of the calling party device (601) and the called party device (602),
and details of the outgoing call.
In case data connection does not exist, the application (405) stores the media message
in a memory of the calling party device (601) at step 815. Subsequently, the application (405)
periodically determines if the data connection is available. Upon determining availability, the
application (405) transmits the media message to the server (604).
Now referring to Figure 8c, at step 816, the server (604) receives the media message
from the calling party device (601). Upon receiving, the server (604) stores the media
message in a database along with the mobile numbers of the calling party device (601) and
the called party device (602), and details of the call. This enables maintaining a unique record
for a pair of calling mobile number and called mobile number associated with one call in the
database. Thus, a unique record will be maintained for each incomplete call. In one example,
31
the database can be external to the server (604). In another example, the database can be
internal to the server (604). Further, the server (604) stores the media message in accounts
corresponding to the calling party device (601) and the called party device (602) in the
database as described in reference to Figure 7.
At step 817, the application (405) in the called party device (602) queries the server
(604) for one or more media messages received corresponding to the called party device
(602) over the data connection. The query may include mobile number of the calling party
device (601). In one example, the application (405) periodically sends the query. In another
example, the application (405) sends the query when the data connection is enabled ondemand
manually. In an example, the user of the called party device (602) can select ‘online
sync’ option in the application (405) for receiving the media message from the server (604).
In one example, the application (405) may send a single query corresponding to all contacts
including the calling party device (601) in a contact list of the called party device (602)
having the application (405) in their respective mobile devices. In another example, the
application (405) may send separate queries for each of the contacts.
At step 818, the server (604) fetches the media message corresponding to the called
party device (602) from the database, based on the received query. Upon fetching, the server
(604) sends the media message to the application (405) in the called party device (602) via
the data connection. Thus, the called party device (602) can receive the media message via
the data connection whenever the data connection is available even if connection or signal
strength is weak or not available for the called party device (602). As such, the user of the
called party device (602) does not have to contact the network operator to retrieve the media
messages. Thus, the involvement of network operator is completely eliminated.
As would be understood, upon receiving the media message, a media-rendering unit
of the called party device (602) renders the media message through the application (405) on a
display unit of the called party device (602). Examples of the media-rendering unit include,
but not limited to, a media player and a speaker. Further, the media message can be stored in
a memory of the called party device (602) for future rendering and further processing.
In another implementation, the user may select the option related to transmitting an
alert to the called party device (602). Consequently, the application (405) receives a selection
of the option related to transmitting the alert. Subsequently, the application (405) may receive
a message from the user or select a pre-stored message for sending the alert. Examples of the
message include a text message. In one example, the application (405) may activate a
keyboard for the user to provide a text message in real time. In another example, the
32
application (405) may enable the user to select a pre-stored text message. In yet another
example, the application (405) may select the user to select a pre-stored text message. In such
example, the application (405) may either allow the user to store a customized text message
or include a pre-store and generalized text message. The application (405) then transmits the
message as an alert message in a manner as described in steps 812 and 813. The alert
message is provided to the called party device (602) in a manner as described in steps 814 to
818.
While certain present preferred embodiments of the invention have been illustrated
and described herein, it is to be understood that the invention is not limited thereto. Clearly,
the invention may be otherwise variously embodied, and practiced within the scope of the
following claims.
33
We Claim:
1. A method comprising:
- detecting, by a calling party device, a placing of a call to a called party;
- sending, by the calling party device, a request trigger to a server, the request
trigger being indicative of the call and includes calling party number, called
party number, date of the call, and time-stamp of the call;
- receiving, by the calling party device, a response trigger corresponding to the
call from the server, the response trigger being indicative of one of incomplete
call to the called party and complete call to the called party; and
- providing, by the calling party device, one or more call reporting options when
the response trigger is indicative of incomplete call.
2. The method as claimed in claim 1, wherein sending the request trigger by the calling
party device comprises:
- determining existence of data connection with the server; and
- in case the data connection exists, delivering the request trigger to the server via
the data connection; or
- in case data connection does not exist, delivering the request trigger to the
server via a non-data connection with the server.
3. The method as claimed in claim 1, wherein the response trigger is received via one of
a data connection and a non-data connection with the server.
4. The method as claimed in claim 1, further comprising:
- receiving, by the calling party device, a media message from a user of the
calling party device in response to selection of one of the one or more call
reporting options; and
- transmitting, by the calling party device, the media message to the server such
that the media message is further transmitted to the called party.
5. The method as claimed in claim 4, wherein transmitting the media message by the
calling party device comprises:
- determining existence of data connection with the server; and
34
- in case the data connection exists, delivering the media message to the server; or
- in case data connection does not exist, storing the media message in a memory
of the calling party device for delivery to the server at a later point in time when
the data connection exists.
6. The method as claimed in claim 1, further comprising:
- creating an account corresponding to the calling party on the server, the account
corresponding to the user of the calling party device.
7. The method as claimed in claim 1, wherein the request trigger is generated by an
application or a module in the calling party device.
8. The method as claimed in claim 1, wherein the request trigger includes details of the
user.
9. The method as claimed in claim 1, wherein the incomplete call is a call that is not
established with a called party device due to occurrence of one or more of a plurality
of events, the plurality of events include the called party device being busy, the called
party device being in an out of coverage area, the called party device being
unreachable, the called party device being switched off, network congestion, the call
being rejected by the called party, the called being unanswered by the called party,
and the call being answered by the called party for predetermined time.
10. The method as claimed in claim 1, wherein the one or more call reporting options
enable a user to provide notification of the incomplete call and wherein the one or
more call reporting options include transmitting a media message to the called party
device, transmitting an alert to the called party device, and any combination thereof.
11. The method as claimed in claim 4, wherein the media message is one of: a voice
message, an audio message, a video message, a text message, a multimedia message,
an image message, an audio-visual message, and any combination thereof.
12. A method comprising:
- receiving, by a server, a request trigger from a calling party device, the request
trigger being indicative of a placement of a call from the calling party device to
35
a called party and includes calling party number, called party number, date of
the call and time-stamp of the call;
- determining if called party trigger is received from a called party device
corresponding to the call, the called party trigger being indicative of one of
complete call and incomplete call with the called party; and
- transmitting, by the server, a success response trigger to the calling party device
upon receipt of the called party trigger being indicative of the complete call; or
- transmitting, by the server, a failure response trigger to the calling party device
upon one of:
- receipt of the called party trigger being indicative of the incomplete call;
and
- non-receipt of the called party trigger.
13. The method as claimed in claim 12, wherein the request trigger is received via one of
a data connection and a non-data connection with the calling party device.
14. The method as claimed in claim 12, wherein the called party trigger includes details
of the incomplete call with the called party.
15. The method as claimed in claim 12, wherein transmitting the success response trigger
by the server comprises:
- determining existence of data connection with the calling party device; and
- in case the data connection exists, delivering the success response trigger to the
calling party device via the data connection; or
- in case data connection does not exist, delivering the success response trigger to
the calling party device via a non-data connection with the calling party device.
16. The method as claimed in claim 12, wherein transmitting the failure response trigger
by the server comprises:
- determining existence of data connection with the calling party device; and
- in case the data connection exists, delivering the failure response trigger to the
calling party device via the data connection; or
- in case data connection does not exist, delivering the failure response trigger to
the calling party device via a non-data connection with the calling party device.
36
17. The method as claimed in claim 12, wherein the called party trigger is received by the
server via one of a data connection and a non-data connection with the called party
device.
18. The method as claimed in claim 12, further comprising:
- receiving, by the server, a media message from the calling party device, the
media message being provided for the called party; and
- transmitting, by the server, the media message to the called party.
19. The method as claimed in claim 18, further comprising:
- determining an account corresponding to the called party; and
- storing the media message in the account corresponding to the called party.
20. The method as claimed in claim 18, wherein transmitting the media message further
comprises:
- receiving, by the server, a query from the called party device via data
connection with the server, the query being directed towards the account
corresponding to the called party;
- fetching the media message from the account; and
- transmitting the media message to the called party via the data connection.
21. The method as claimed in claim 12, wherein the determining further comprises:
- determining, by the server, a non-receipt of the called party trigger from the
called party device upon elapse of a predetermined time from the reception of
the request trigger from calling party;
- transmitting, by the server, an intermediate trigger to the called party device;
and
- determining, by the server, a receipt or non-receipt of acknowledgment from the
called party device in response to the intermediate trigger.
37
22. The method as claimed in claim 12, further comprising:
- creating an account corresponding to the calling party, the account
corresponding to the calling party being associated with a calling party user
identification and a calling party number; and
- creating an account corresponding to the called party, the account corresponding
to the called party being associated with a called party user identification and a
called party number.
23. The method as claimed in claim 22, further comprising storing the media message as
received from the calling party device in the account corresponding to the calling
party.
24. The method as claimed in any of claims 19 or 23, wherein the media message thus
stored is associated with the calling party number, the called party number, date of the
call, and time stamp of the call.
25. The method as claimed in claim 21, wherein the intermedia trigger is transmitted by
the server via one of a data connection and a non-data connection with the called
party device.
26. The method as claimed in claim 21, wherein the acknowledgment is indicative of one
of a complete call and an incomplete call with the called party.
27. The method as claimed in claim 21, wherein the non-receipt of the acknowledgment is
indicative of an incomplete call with the called party.
28. A method comprising:
- detecting, by a called party device, a receipt of a call from a calling party;
- monitoring, by the called party device, a progress of the call since detecting the
receipt of the call;
- determining, by the called party device, the call being one of incomplete call
and a complete call based on the monitoring; and
- transmitting, by the calling party device, a called party trigger to a server, the
called party trigger being indicative of one of the complete call and the
incomplete call.
38
29. The method as claimed in claim 28, wherein the progress of the call is monitored from
the call being received to the call being one of: answered, unanswered, and rejected.
30. The method as claimed in 28, wherein the incomplete call is a call that is not
established with the called party device due to occurrence of one or more of a
plurality of events, the plurality of events the call being rejected, the call being
unanswered, and the call being answered for predetermined time.
31. The method as claimed in claim 28, wherein the called party trigger is transmitted
instantaneously upon monitoring.
32. The method as claimed in claim 28, wherein the called party trigger is transmitted in
response to receipt of an intermediate trigger from the server.
33. The method as claimed in claim 28, wherein transmitting the called party trigger by
the called party device comprises:
- determining existence of data connection with the server; and
- in case the data connection exists, delivering the called party trigger to the
server via the data connection; or
- in case data connection does not exist, delivering the called party trigger to the
server via a non-data connection with the server.
34. A calling party device comprising:
- a processor to:
- detect an outgoing call to a called party; send a request trigger to a server,
the request trigger being indicative of the call and includes calling party
number, called party number, date of the call, and time-stamp for the call;
- receive a response trigger from the server, the response trigger being
indicative of one of incomplete call to the called party and complete call to
the called party; and
- provide one or more call reporting options when the response trigger is
indicative of incomplete call; and
39
- a display unit coupled to the processor to depict the one or more call reporting
options.
35. The calling party device as claimed in claim 34, wherein the processor further:
- determines existence of data connection with the server; and
- in case the data connection exists, delivers the request trigger to the server via
the data connection; or
- in case data connection does not exist, delivers the request trigger to the server
via a non-data connection with the server.
36. The calling party device as claimed in claim 34, wherein the processor further:
- receives a media message from a user of the calling party device in response to
selection of one of the one or more call reporting options; and
- transmits the media message to the server such that the media message is further
transmitted to the called party.
37. The calling party device as claimed in claim 36, wherein the processor further:
- determines existence of data connection with the server; and
- in case the data connection exists, delivers the media message to the server; or
- in case data connection does not exist, stores the media message in a memory of
the calling party device for delivery to the server at a later point in time when
the data connection exists.
38. A server comprising:
- a communication interface to receive a request trigger from a calling party
device, the request trigger being indicative of a placement of a call from the
calling party device to a called party and includes calling party number, called
party number, date of the call and time-stamp of the call; and
- a processor coupled to the communication interface to:
- determine if a called party trigger is received from a called party device
corresponding to the call, the called party trigger being indicative of one of
complete call and incomplete call with the called party; and
- transmit a success response trigger to the calling party device upon receipt
of the called party trigger being indicative of the complete call ; or
40
- transmit a failure response trigger to the calling party device upon one of:
- receipt of the called party trigger being indicative of the incomplete
call; and
- non-receipt of the called party trigger.
39. The server as claimed in claim 38, wherein the processor further:
- receives a media message from the calling party device, the media message
being provided for the called party; and
- transmits the media message to the called party.
40. A called party device comprising:
- a processor to;
- detect a receipt of a call from a calling party; and
- monitor a progress of the call since detecting the receipt of the call; and
- determining, by the called party device, the call being one of an
incomplete call and a complete call based on the monitoring; and
- transmit a called party trigger to a server, the called party trigger being
indicative of one of the complete call and the incomplete call.
| # | Name | Date |
|---|---|---|
| 1 | 201611005328-IntimationOfGrant03-08-2022.pdf | 2022-08-03 |
| 1 | Power of Attorney [16-02-2016(online)].pdf | 2016-02-16 |
| 2 | Form 9 [16-02-2016(online)].pdf | 2016-02-16 |
| 2 | 201611005328-PatentCertificate03-08-2022.pdf | 2022-08-03 |
| 3 | Form 5 [16-02-2016(online)].pdf | 2016-02-16 |
| 3 | 201611005328-Written submissions and relevant documents [01-03-2022(online)].pdf | 2022-03-01 |
| 4 | Form 3 [16-02-2016(online)].pdf | 2016-02-16 |
| 4 | 201611005328-FORM-26 [16-02-2022(online)].pdf | 2022-02-16 |
| 5 | Form 18 [16-02-2016(online)].pdf | 2016-02-16 |
| 5 | 201611005328-Correspondence to notify the Controller [15-02-2022(online)].pdf | 2022-02-15 |
| 6 | Drawing [16-02-2016(online)].pdf | 2016-02-16 |
| 6 | 201611005328-US(14)-HearingNotice-(HearingDate-17-02-2022).pdf | 2022-01-11 |
| 7 | Description(Complete) [16-02-2016(online)].pdf | 2016-02-16 |
| 7 | 201611005328-ABSTRACT [12-06-2020(online)].pdf | 2020-06-12 |
| 8 | abstract.jpg | 2016-07-13 |
| 8 | 201611005328-CLAIMS [12-06-2020(online)].pdf | 2020-06-12 |
| 9 | Other Patent Document [27-07-2016(online)].pdf | 2016-07-27 |
| 9 | 201611005328-FER_SER_REPLY [12-06-2020(online)].pdf | 2020-06-12 |
| 10 | 201611005328-OTHERS [12-06-2020(online)].pdf | 2020-06-12 |
| 10 | 201611005328-OTHERS-290716.pdf | 2016-08-05 |
| 11 | 201611005328-Correspondence-290716.pdf | 2016-08-05 |
| 11 | 201611005328-FER.pdf | 2019-12-12 |
| 12 | 201611005328-Correspondence-290716.pdf | 2016-08-05 |
| 12 | 201611005328-FER.pdf | 2019-12-12 |
| 13 | 201611005328-OTHERS [12-06-2020(online)].pdf | 2020-06-12 |
| 13 | 201611005328-OTHERS-290716.pdf | 2016-08-05 |
| 14 | 201611005328-FER_SER_REPLY [12-06-2020(online)].pdf | 2020-06-12 |
| 14 | Other Patent Document [27-07-2016(online)].pdf | 2016-07-27 |
| 15 | 201611005328-CLAIMS [12-06-2020(online)].pdf | 2020-06-12 |
| 15 | abstract.jpg | 2016-07-13 |
| 16 | 201611005328-ABSTRACT [12-06-2020(online)].pdf | 2020-06-12 |
| 16 | Description(Complete) [16-02-2016(online)].pdf | 2016-02-16 |
| 17 | 201611005328-US(14)-HearingNotice-(HearingDate-17-02-2022).pdf | 2022-01-11 |
| 17 | Drawing [16-02-2016(online)].pdf | 2016-02-16 |
| 18 | 201611005328-Correspondence to notify the Controller [15-02-2022(online)].pdf | 2022-02-15 |
| 18 | Form 18 [16-02-2016(online)].pdf | 2016-02-16 |
| 19 | Form 3 [16-02-2016(online)].pdf | 2016-02-16 |
| 19 | 201611005328-FORM-26 [16-02-2022(online)].pdf | 2022-02-16 |
| 20 | Form 5 [16-02-2016(online)].pdf | 2016-02-16 |
| 20 | 201611005328-Written submissions and relevant documents [01-03-2022(online)].pdf | 2022-03-01 |
| 21 | Form 9 [16-02-2016(online)].pdf | 2016-02-16 |
| 21 | 201611005328-PatentCertificate03-08-2022.pdf | 2022-08-03 |
| 22 | Power of Attorney [16-02-2016(online)].pdf | 2016-02-16 |
| 22 | 201611005328-IntimationOfGrant03-08-2022.pdf | 2022-08-03 |
| 1 | 2019-11-0515-16-51_05-11-2019.pdf |