The present invention pertains to the field of Instant Messaging and more particularly to notifications sent to users participating in an IM session.
Instant messaging (IM) is a form of real-time direct text-based chatting communication in push mode between two or more people using personal computers or other devices, along with shared clients. The user's text is conveyed over a network, such as the Internet. More advanced instant messaging software clients also allow enhanced modes of communication, such as live voice or video calling and inclusion of links to media.
Most IM programs provide these features:
The steps involved in originating an IM session are signaling and media channel setup, encoding, packetizing, and transmission as e.g. Internet Protocol (IP) packets over a packet-switched network. On the receiving side, similar steps (usually in the reverse order) such as reception of the IP packets, decoding of the packets and digital-to-analog conversion reproduce the original text or voice stream.
IM is available on many smartphones and Internet devices and enables users to place calls or send text messages over communication channels such as 3G or Wi-Fi.
When a message is sent to a user participating in an IM session or group chat, the user receives from the system server a notification alerting him of the pending message.
In group conversations or “chats”, the number of participants may be three or more, which means that many notifications are likely to be sent to each participant.
It may be beneficial to control the number of notifications receive by IM session participants, so as to render the use of IM more user friendly.
According to a first aspect of the present invention there is provided a method of delivering messages to participants in an instant messaging session, said participants running an IM application, comprising: receiving by a server a message from a first participant's IM application, addressed to at least one other participant; for each other participants: determining whether said other participant is active in the session; if said participant is determined to be active—sending the message by the server to said participant; and if said participant is determined to be inactive—sending a silent notification by the server to said participant.
The method may additionally comprise, for each inactive participant—storing said message in said server storage.
The method may additionally comprise providing a visual cue in said inactive participant's IM application GUI.
The visual cue may comprise a counter.
The method may additionally comprise sending by the server said stored message to said participant when said participant becomes active.
The method may additionally comprise, for each inactive participant—sending the message by the server to said inactive participant and storing the message in the inactive participant's storage device.
The method may additionally comprise increasing a displayed counter in said inactive participant's IM application GUI.
Determining whether said other participant is active in the session may comprise detecting an increase in the percentage of active participants in the session.
Determining whether said other participant is active in the session may comprise identifying said other participant as responsive to the first participant.
Determining whether said other participant is active in the session may comprise detecting a drastic increase in conversation tempo relative to an ongoing calculated average.
Determining whether said other participant is active in the session may comprise identifying location change of said other participant.
Determining whether said other participant is active in the session may comprise identifying stopped driving for a predefined length of time.
According to a second aspect of the present invention there is provided a system for delivering messages to participants in an instant messaging session, comprising: a system server; a plurality of user communication devices running an IM application, said communication devices configured to communicate over a network with other users' communication devices, said system server configured to: receive a message from a first participant's IM application, addressed to at least one other participant; for each said at least one other participants: determine whether the participant is active in the session; if said participant is active in the session—send the message to said participant; and if said participant is inactive in the session—sending a silent notification to said participant.
The system may additionally comprise, for each inactive participant—storing said message in said server.
The system may additionally comprise increasing a displayed counter in said inactive participant's IM application GUI.
The system may additionally comprise sending by the server said stored message to said participant when said participant becomes active.
The system may additionally comprise, for each inactive participant—sending the message by the server to said inactive participant and storing the message in the inactive participant's storage device.
The system may additionally comprise increasing a displayed counter in said inactive participant's IM application GUI.
The system may be configured to determine whether said other participant is active in the session by detecting an increase in the percentage of active participants in the session.
The system may be configured to determine whether said other participant is active in the session by identifying said other participant as responsive to the first participant.
The system may be configured to determine whether said other participant is active in the session by detecting a drastic increase in conversation tempo relative to an ongoing calculated average.
The system may be configured to determine whether said other participant is active in the session by identifying location change of said other participant.
The system may be configured to determine whether said other participant is active in the session by identifying stopped driving for a predefined length of time.
For a better understanding of the invention and to show how the same may be carried into effect, reference will now be made, purely by way of example, to the accompanying drawings.
With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of the preferred embodiments of the present invention only, and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects of the invention. In this regard, no attempt is made to show structural details of the invention in more detail than is necessary for a fundamental understanding of the invention, the description taken with the drawings making apparent to those skilled in the art how the several forms of the invention may be embodied in practice. In the accompanying drawings:
The present invention provides a system and method for overcoming the disadvantages of existing Instant Messaging (IM) systems, by aggregating notifications to users participating in an IM session or group chat, according to predefined criteria.
Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of the components set forth in the following description or illustrated in the drawings. The invention is applicable to other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting.
The communication devices (120, 130, 140) communicate bidirectionally with the IM service server 110 over a communications network (e.g. Internet), using an IM application such as Viber (www.viber.com),
In the example of
A system server 200, comprises a software relay 285, which may be implemented, for example, as a table mapping account-IDs to devices and connections to those devices (e.g. via TCP), or as a push-service by sending a message to all the IM applications running on the devices connected to the account ID using, for example, Google's C2DM service or Apple Push Service.
The relay 285 receives messages entered by each of the participants and communicates them to the other active participants (250, 260, 270). An active participant may be defined in the system according to various criteria such as, for example, the user has read messages for that conversation or sent messages for that conversation or viewed the conversation screen in the last 15 minutes.
On the other hand, a user may be inactive, in which case the system may refrain from automatically sending him incoming messages or sounding an audible cue alerting him of a pending message, but rather aggregate the messages for the inactive user in the system server and send him a “silent” notification notifying him that he has unread messages (e.g. 300,
The messages for each inactive participant may be aggregated in a notification aggregation storage 260 on the server 200, or passed to the device which will add them to its local message database.
In step 400, a group conversation is taking place with three participants (I, II and III).
In step 405 the system receives a message from participant I, to be communicated to the other participants.
In step 410 the system checks whether the sending participant I is defined as active. If not—participant l's status is changed to active (step 415).
The system then goes over the list of participants in the conversation and checks, for each one of them, whether it is active (step 420) according to predefined criteria such as described above. If the participant is determined to be active, the system communicates the message to the participant (step 430).
If in step 420 the participant was determined to be inactive, the system may store the message in the participant's aggregation storage (step 440) (which means it must be sent to the user when the device is active again) and the system sends the inactive participant a silent notification (step 450), as described above.
According to embodiments of the present invention, If in step 420 the participant was determined to be inactive, the system may send the message including a “silent” flag to the inactive participant.
According to yet another embodiment, the service may not maintain any status for the participants—instead, all messages are sent. The user application then performs the logic locally (same logic that works at the server):
Both server and client handling can be used at the same time (server is required when the app is not running on the device, for example).
In case of server handling, the device must notify the server that the conversation was entered—to reset the silence state, and to read any pending messages for this conversation currently waiting on the server.
According to embodiments of the invention, resetting silence mode, i.e. defining a device as active and sending it a notification regarding aggregated messages, may be triggered by a plurality of events; for example:
This patent application claims priority from and is related to U.S. Provisional Patent Application Ser. No. 61/672,921, filed Jul. 18, 2012, this U.S. Provisional Patent Application incorporated by reference in its entirety herein.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IB2013/054848 | 6/13/2013 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
61672921 | Jul 2012 | US |