US20190245824A1 - Message Delivery System and Method - Google Patents
Message Delivery System and Method Download PDFInfo
- Publication number
- US20190245824A1 US20190245824A1 US16/386,074 US201916386074A US2019245824A1 US 20190245824 A1 US20190245824 A1 US 20190245824A1 US 201916386074 A US201916386074 A US 201916386074A US 2019245824 A1 US2019245824 A1 US 2019245824A1
- Authority
- US
- United States
- Prior art keywords
- message
- user terminal
- client
- user
- condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H04L51/22—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/42—Mailbox-related aspects, e.g. synchronisation of mailboxes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Definitions
- This invention relates to a message delivery system and method, particularly but not exclusively for use in a packet-based communication system.
- Packet-based communication systems allow the user of a device, such as a personal computer, to communicate across a computer network such as the Internet.
- Packet-based communications systems include voice over internet protocol (“VoIP”) communication systems and instant messaging (“IM”) systems. These systems are beneficial to the user as they are often of significantly lower cost than fixed line or mobile networks. This may particularly be the case for long-distance communication.
- VoIP voice over internet protocol
- IM instant messaging
- P2P peer-to-peer
- the user To enable access to a peer-to-peer system, the user must execute P2P client software provided by a P2P software provider on their computer, and register with the P2P system.
- P2P client software provided by a P2P software provider on their computer
- the client software When the user registers with the P2P system the client software is provided with a digital certificate from a server.
- communication can subsequently be set up and routed between users of the P2P system without the further use of a server.
- the users can establish their own communication routes through the P2P system based on the exchange of one or more digital certificates(or user identity certificates, “UIC”), which enable access to the P2P system.
- UICC user identity certificates
- the exchange of the digital certificates between users provides proof of the user's identities and that they are suitably authorised and authenticated in the P2P system. Therefore, the presentation of digital certificates provides trust in the identity of the user. It is therefore a characteristic of peer-to-peer communication that the communication is not routed using a server but directly from end-user to end-user. Further details on such a P2P system are disclosed in WO 2005/009019.
- the communication client for a packet-based communication client has a flexible, rich graphical user interface.
- the graphical user interface is displayed to the user on a display of the personal computer, and permits the communication client to present a large number of features and options to the user.
- This disclosure describes a method that includes receiving a message by a communication client, the message comprising a trigger event that is to occur for a condition to be checked, the condition comprising a parameter value for evaluating whether the condition has been satisfied, monitoring a user terminal subsequent to receiving the message to determine whether the trigger event occurs at the user terminal, and determining whether the condition has been satisfied at the user terminal in response to a determination that the trigger event occurred.
- the method also includes displaying a selectable option for reconfiguring an attribute of the communication client in response to a determination that the condition has been satisfied, and reconfiguring the attribute of the communication client in response to a selection of the selectable option.
- the method includes reading a current value of a parameter in the user terminal and comparing the current value to the parameter value of the condition.
- the parameter value defines a maximum number of times the message is to be displayed by the communication client.
- the parameter value defines a start time and an end time for displaying the message.
- the method includes transmitting, prior to the receiving, a request for the message over a communication network.
- the request for the message comprises an identifier of a plurality of messages stored at the user terminal.
- the request for messages comprises at least one of a version number for a communication client executed on the user terminal and an identifier of an operating system executed on the user terminal.
- the message is received at the user terminal in a bundle comprising a plurality of messages.
- the method includes displaying a selectable control configured to cause display of information included with the message.
- the selectable control is a hyperlink comprising a network address of the information.
- This disclosure further describes a system that includes one or more processors, and one or more computer-readable storage devices having computer-executable instructions stored thereon that, when executed by the one or more processors, configure a user terminal to perform a plurality of operations comprising receiving a message by a communication client, the message comprising a trigger event that is to occur for a condition to be checked, the condition comprising a parameter value for evaluating whether the condition has been satisfied, and monitoring the user terminal subsequent to receiving the message to determine whether the trigger event occurs at the user terminal.
- the plurality of operations further comprises determining whether the condition has been satisfied at the user terminal in response to a determination that the trigger event occurred, displaying a selectable option for reconfiguring an attribute of the communication client in response to a determination that the condition has been satisfied, and reconfiguring the attribute of the communication client in response to a selection of the selectable option.
- the plurality of operations further comprises reading a current value of a parameter in the user terminal and comparing the current value to the parameter value of the condition.
- the parameter value defines a maximum number of times the message is to be displayed by the communication client.
- the parameter value defines a start time and an end time for displaying the message.
- the plurality of operations further comprises transmitting, prior to the receiving, a request for the message over a communication network.
- the request for the message comprises an identifier of a plurality of messages stored at the user terminal.
- the request for messages comprises at least one of a version number for a communication client executed on the user terminal and an identifier of an operating system executed on the user terminal.
- the message is received at the user terminal in a bundle comprising a plurality of messages.
- the plurality of operations further comprises displaying a selectable control configured to cause display of information included with the message.
- the selectable control is a hyperlink comprising a network address of the information.
- FIG. 1 shows a P2P communication system.
- FIG. 2 shows an example user interface of a client.
- FIG. 3 shows a detailed view of a user terminal.
- FIG. 4 shows a flowchart for defining and publishing a message.
- FIG. 5 shows the structure of a message
- FIG. 6 shows the process for a client to fetch a message.
- FIG. 7 shows a flowchart for a client to display a message.
- FIG. 8 shows a message display region in a contact tab of a client.
- FIG. 9 shows a message display region in a dial tab of a client.
- FIG. 10 shows a message display region in a public conversations tab of a client
- FIG. 11 shows a message display region in a directory tab of a client.
- FIG. 12 shows a message display region displayed during a call.
- FIG. 13 shows example messages displayed in the client.
- FIG. 1 illustrates a P2P communication system 100 .
- P2P communication system 100 A first user of the P2P communication system (denoted “User A” 102 ) operates a user terminal 104 , which is shown connected to a P2P network 106 .
- the P2P network 106 utilises a communication system such as the Internet, but is illustrated as a separate network in FIG. 1 for clarity.
- the user terminal 104 may be, for example, a personal computer (“PC”), personal digital assistant (“PDA”), a mobile phone, a gaming device or other embedded device able to connect to the P2P network 106 .
- the user device is arranged to receive information from and output information to a user of the device.
- the user device comprises a display such as a screen and a keyboard and mouse.
- the user device 104 is connected to the P2P network 106 via a network interface 108 such as a modem, and the connection between the user terminal 104 and the network interface 108 may be via a cable (wired) connection or a wireless connection.
- the user terminal 104 is running a client 110 , provided by the P2P software provider.
- the client 110 is a software program executed on a local processor in the user terminal 104 .
- the user terminal 104 is also connected to a handset 112 , which comprises a speaker and microphone to enable the user to listen and speak in a voice call.
- the microphone and speaker does not necessarily have to be in the form of a traditional telephone handset, but can be in the form of a headphone or earphone with an integrated microphone, or as a separate loudspeaker and microphone independently connected to the user terminal 104 .
- FIG. 2 An example of a user interface 200 of the client 110 executed on the user terminal 104 of User A 102 is shown illustrated in FIG. 2 .
- the client user interface 200 displays the username 202 of User A 102 in the P2P system, and User A can set his own presence state (that will be seen by other users) using a drop down list by selecting icon 204 .
- the client user interface 200 comprises a tab 206 labelled “contacts”, and when this tab is selected the contacts stored by the user in a contact list are displayed.
- a tab 206 labelled “contacts”, and when this tab is selected the contacts stored by the user in a contact list are displayed.
- five contacts of other users of the P2P system (User B to F) are shown listed in contact list 208 . Each of these contacts have authorised the user of the client 110 to view their contact details and online presence and mood message information.
- Each contact in the contact list has a presence status icon associated with it.
- the presence status icon for User B 210 indicates that User B is “online”
- the presence icon for User C 212 indicates that User C is “not available”
- the presence icon for User D 214 indicates that User D's state is “do not disturb”
- the presence icon for User E 216 indicates User E is “away”
- the presence icon for User F 218 indicates that User F is “offline”.
- Further presence indications can also be included.
- the mood messages 220 of the contacts are the mood messages 220 of the contacts.
- the contact list for the users (e.g. the contact list 208 for User A) is stored in a contact server (not shown in FIG. 1 ).
- a contact server (not shown in FIG. 1 ).
- the contact server is also used to store the user's own mood message (e.g. the mood message of User A 102 ) and a picture selected to represent the user (known as an avatar). This information can be downloaded to the client 110 , and allows this information to consistent for the user when logging on from different terminals.
- the client 110 also periodically communicates with the contact server in order to obtain any changes to the information on the contacts in the contact list, or to update the stored contact list with any new contacts that have been added. Presence information is not stored centrally in the contact server. Rather, the client 110 periodically requests the presence information for each of the contacts in the contact list 208 directly over the P2P system. Similarly, the current mood message for each of the contacts, as well as a picture (avatar) that has been chosen to represent the contact, are also retrieved by the client 110 directly from the respective clients of each of the contacts over the P2P system.
- avatar picture
- Calls to the P2P users in the contact list may be initiated over the P2P system by selecting the contact and clicking on a “call” button 222 using a pointing device such as a mouse. Alternatively, the call may be initiated by typing in the P2P identity of a contact in the field 224 .
- the call set-up is performed using proprietary protocols, and the route over the network 106 between the calling user and called user is determined by the peer-to-peer system without the use of servers.
- an illustrative route is shown between the caller User A ( 102 ) and the called party, User B ( 114 ), via other peers ( 116 , 118 , 120 ) of the P2P system. It will be understood that this route is merely an example, and that the call may be routed via fewer or more peers.
- the client 110 performs the encoding and decoding of VoIP packets.
- VoIP packets from the user terminal 104 are transmitted into the network 106 via the network interface 108 , and routed to the computer terminal 122 of User B 114 , via a network interface 123 .
- a client 124 (similar to the client 110 ) running on the user terminal 122 of User B 114 decodes the VoIP packets to produce an audio signal that can be heard by User B using the handset 126 .
- the client 124 executed on user terminal 122 encodes the audio signals into VoIP packets and transmits them across the network 106 to the user terminal 104 .
- the client 110 executed on user terminal 104 decodes the VoIP packets from User B 114 , and produces an audio signal that can be heard by the user of the handset 112 .
- the VoIP packets for calls between P2P users are passed across the network 106 only, and the PSTN network is not involved. Furthermore, due to the P2P nature of the system, the actual voice calls between users of the P2P system can be made with no central servers being used. This has the advantages that the network scales easily and maintains a high voice quality, and the call can be made free to the users. Additionally, calls can also be made from the client ( 110 , 122 ) using the P2P system to fixed-line or mobile telephones, by routing the call via a gateway 128 to the PSTN network 130 . Similarly, calls from fixed-line or mobile telephones can be made to the P2P system via the PSTN 130 and gateway 128 .
- FIG. 3 illustrates a detailed view of the user terminal ( 104 ) on which is executed client 110 .
- the user terminal 104 comprises a central processing unit (“CPU”) 302 , to which is connected a display 304 such as a screen, an input device such as a keyboard 306 , a pointing device such as a mouse 308 , a speaker 310 and a microphone 312 .
- the speaker 310 and microphone 312 may be integrated into a handset 112 or headset, or may be separate.
- the CPU 302 is connected to a network interface 108 as shown in FIG. 1 .
- FIG. 3 also illustrates an operating system (“OS”) 314 executed on the CPU 302 .
- OS operating system
- Running on top of the OS 314 is a software stack 316 for the client 110 .
- the software stack shows a protocol layer 322 , a client engine layer 320 and a client user interface layer (“UI”) 318 .
- Each layer is responsible for specific functions. Because each layer usually communicates with two other layers, they are regarded as being arranged in a stack as shown in FIG. 3 .
- the operating system 314 manages the hardware resources of the computer and handles data being transmitted to and from the network via the network interface 108 .
- the client protocol layer 322 of the client software communicates with the operating system 314 and manages the connections over the P2P system.
- the client engine layer 320 comprises message manager functionality 324 and a message database 326 .
- the functionality of these elements will be described in more detail hereinafter.
- the client engine 320 also communicates with the client user interface layer 318 .
- the client engine 320 may be arranged to control the client user interface layer 318 to present information to the user via the user interface of the client (as shown in FIG. 2 ) and to receive information from the user via the user interface.
- the control of the client user interface 318 will be explained in more detail hereinafter.
- P2P client software permits the inclusion of a large number of features that can be used by the users. However, there is a difficultly in keeping the users informed of these features. Furthermore, it is useful for the P2P software provider to be able to inform the users of promotions that are available, and to give the users feedback in the case of detected problems or errors.
- Error messages and information/help messages can be built into the client (i.e. hard-coded) such that they can be shown to the users as soon as the client is installed and executed on the user's terminal.
- this has the significant disadvantage that the messages cannot be adapted or changed without the user installing a new version of the client.
- the P2P software provider may become aware that a particular feature is not being used frequently by the users, because the users are either unaware of its existence or do not understand how to use it. In such cases, hard-coded messages cannot change in order to inform the user of this feature.
- the P2P software provider may begin offering a new promotion or pricing plan, which cannot be communicated through the client until a new version is released with the hard-coded messages.
- FIG. 1 A dynamic message delivery system is shown illustrated in FIG. 1 . Before the process by which the messages are delivered to the clients and displayed to the users is described, the process for creating the messages is outlined.
- the messages are preferably created by an administrator affiliated with the P2P software provider. However, in some embodiments, this role could be fullfilled by a trusted third party.
- the administrator 132 operates a user terminal 134 that is connected via a network interface 136 to a network 138 such as the Internet.
- Executed on a processor of the user terminal 134 is a web browser program 140 .
- the web browser program 140 is used to view web pages retrieved over the network 138 using the hypertext transfer protocol (“HTTP”).
- HTTP hypertext transfer protocol
- the network 106 used by the P2P system and the network 138 used by the administrator 132 are both, in practice, the Internet. However, they are shown separately in FIG. 1 in order to distinguish between the information passed over the P2P system (network 106 ) and the information passed over the World Wide Web (network 138 ).
- FIG. 4 shows a flowchart for the process by which the message is created by the administrator 132 .
- the administrator executes the web browser program 140 on the user terminal 134 .
- the administrator 132 uses the web browser program 140 to log into a back office server ( 142 in FIG. 1 ) over the network 138 .
- the back office server 142 displays to the administrator a selection of options that define the structure, content and properties of the message.
- the administrator selects the options required options to define what the message should display and when it should be displayed. The details of the message structure will be described with reference to FIG. 5 below.
- step S 408 the administrator selects to save the message.
- the message is saved by the back office server 142 in a content database ( 144 in FIG. 1 ).
- the message is marked as requiring review.
- the review is an optional stage whereby the message is checked, e.g. for language. This may particularly be needed if translations of the messages into multiple languages are required.
- step S 410 and S 412 the process waits for the message to be reviewed. Once the message has been approved, then in step S 414 the message stored in the content DB 144 is marked as ready for publication to the clients.
- Bundles are created to minimise the amount of data that needs to be transmitted to the clients.
- a bundle comprises the set of messages that are different to those messages that are pre-installed with the client. Therefore, the bundle constitutes changes or additions to the messages that the clients already contain.
- the bundle By creating the bundles, only those messages that are not already present in the client are transmitted. Obviously, if only a single message is updated compared to those already installed in the client, then the bundle will comprise only one message.
- different versions of the clients will contain different messages when they are installed on the user terminals, different bundles need to be compiled for different client versions. Each bundle is given a unique identifier in order to distinguish between them.
- the message 500 comprises a message type field 502 which defines a particular category for the message.
- the message type field 502 can define that the message is an information message, a user tip message or a promotion message.
- the type of message can be used to determine how the message is displayed in the client, for example background colours and icons can be displayed according to the type of message.
- the message 500 also comprises a message content field 504 , which contains the actual information to be displayed to the users of the clients.
- the message content 504 can comprise text, images, animation (e.g. flash animation) or a combination of the above. Example message content will be described herein after.
- the message 500 further comprises a trigger 506 .
- the trigger 506 defines an event that must occur in the client before the message content is displayed to the user of the client.
- Example triggers include, but are not limited to:
- a date, time or period (e.g. a specific date or every x days);
- a contact is added to the user's contact list
- the message 500 can also define a condition 508 that must further be satisfied in order for the message to be shown to the user.
- Example conditions include, but are not limited to:
- the client version number for the user initiating a call
- the client version number for a user receiving a call
- the language is the client in;
- the P2P identity (username) of the user.
- the trigger 506 defines the event that causes a particular condition 508 to be checked.
- the condition 508 in the message defines a value (e.g. a number, Boolean value or string) that must be checked against a certain property within the client before the display of the message can proceed.
- multiple conditions can be defined, such that more than one of the above-listed conditions must be met in order for the message to be displayed.
- no condition can be set, such that only the trigger 506 is required in order for the message to be displayed.
- the message 500 also comprises a link action field 510 .
- the link action 510 defines the action that is taken by the client when the user clicks on a certain part of the message using the pointing device (e.g. a certain word, sequence of words or image).
- the link action 510 can define that the client executes a web browser program, which navigates to a certain webpage.
- the link action 510 can perform an action within the client itself (e.g. opening an option window, displaying the user's profile etc).
- a recycle field 512 is present in the message 500 , which defines a set number of times that the message content 504 should be displayed. Even if the message has triggered ( 506 ) and met the condition ( 508 ) it will only be displayed if the number of times it has been displayed previously does not exceed the recycle value 512 . Therefore, the recycle value 512 ensures that a given message will only be shown a certain number of times, thereby preventing it from becoming annoying for the users.
- the recycle value 512 can also be set such that a message can be displayed an indefinite number of times.
- the message 500 further comprises start and end date values 514 .
- the start and end date values 514 define a time interval during which the message should be displayed. This allows messages to only be displayed over a certain period, which is useful, for example, for time-sensitive marketing campaigns. However, the values for the start and end dates can be set such that the messages are always able to be displayed regardless of the date.
- the message 500 also comprises a display location 516 for the message in the user interface of the client. Example display locations are illustrated in more detail with reference to FIGS. 8 to 12 . Furthermore, the message 500 comprises a priority field 518 .
- the priority field 518 defines a priority level for the message in question, such that if the client attempts to display two or more messages in the same location at the same time, then only the message with the highest priority is displayed.
- a message has been created by the administrator 132 (as illustrated with reference to FIG. 4 ) comprising the properties described above with reference to FIG. 5 , and is stored in the content DB 144 .
- the administrator can create a plurality of messages, each of which is stored in the content DB 144 .
- the process by which the messages are delivered to the clients is now described with reference to FIG. 1 and FIG. 6 .
- the clients 110 , 122 ) are configured to periodically check whether new messages are available to be downloaded.
- the message manager 324 (as illustrated in FIG. 3 ) is responsible for triggering the periodic check for new messages.
- the periodicity of the message checking can be defined in order to balance the requirements of rapidly delivering new messages against the consequential network and server load. For example, the message checking period can be every 14 days, although any time period may be used.
- each client In order to prevent all the clients in the P2P system simultaneously attempting to retrieve messages, each client independently maintains its own timer of when messages were last retrieved. Therefore, as the users install and execute clients at different times, this ensures that the message retrieval is distributed over time, thereby reducing peak network loading.
- step S 602 the client ( 110 , 122 ) sends a “request content” message via the network interface ( 108 , 123 ) over the P2P system.
- the “request content” message contains an identifier of the bundle of messages currently held by the client, which allows the message delivery system to determine which messages need to be provided to the client.
- the “request content” message also comprises the software version number for the client and the operating system used on the user terminal. This information is provided because different bundles of messages are compiled for different operating systems and client versions.
- the “request content” message is transmitted from the client to a proxy server 146 over the P2P system.
- the function of the proxy server 146 is to provide an interface between the peers of the P2P system and backend systems.
- the proxy server 146 authenticates users of the P2P system to ensure that they are allowed to have access to the backend systems.
- the proxy server 146 forwards the “request content” message to a message server 148 in step S 604 .
- the message server 146 acts as the interface to the content DB 144 , and handles the delivery of messages to the clients.
- Multiple message servers can be utilised in practice, in order to handle the load from a large number of clients requesting content.
- the message server 148 reads the information regarding the software version, operating system and current message bundle ID from the “request content” message, and determines whether newer messages need to be sent to the client. The message server 148 compares the bundle ID for the most recent bundle for the given operating system and software version to the bundle ID from the client. If a newer bundle of messages exists then the message server prepares to send this to the client. If the client already has the latest bundle (i.e. no existing messages have been changed or new ones added since either the client was installed or since the last time the client requested messages from the message server) then the process stops without messages being transmitted to the client.
- the message server 148 Presuming that a newer bundle exists, the message server 148 requests the newer bundle from the content DB 144 in step S 606 , and in step S 608 the newer message bundle is returned to the message server 148 .
- the message server 148 can also comprise a cache element 150 , which is used to maintain a local cache of the most recent and commonly requested bundles. This can be advantageously utilised to avoid the need to fetch the bundle from the content DB 144 , thereby reducing the load on the database.
- step S 610 the message bundle is transmitted from the message server 148 to the proxy server 146 .
- the proxy server 146 then transmits the message bundle to the client 110 , 122 over the P2P system in step S 612 .
- the client then installs the message bundle.
- the new message bundle can add new messages to the client, as well as make changes to existing messages or delete messages.
- the current bundle ID held at the client is updated.
- the message bundle is received by the message manager 324 in the client and stored in the message DB 326 in the client 110 as illustrated in FIG. 3 .
- statistics about the messages displayed in the clients are also collected in step S 614 .
- a set of statistics can be collected for each message, which include: a message identifier; the total number of times the message was displayed; the total number of times the user closed the message; the total number of times a link in the message is clicked on; and the total amount of time, in seconds, that the message was displayed.
- Different statistics requirements can be defined for different messages, and these statistics requirements can be pre-set in the installed client, or can be communicated to the client along with the bundle of messages.
- the statistics collected by the client are reported back to the message server 148 periodically by the client.
- the client can be arranged to report statistics every four hours.
- the statistics are collated and transmitted in S 616 to the proxy server 146 , and forwarded to the message server 148 in S 618 .
- the message server 148 then stores the statistics in the statistics DB 152 in step S 620 .
- the steps of S 616 to S 620 are repeated whenever the period for reporting statistics expires.
- step S 702 the client 110 is executed on the user terminal 104 of the user 102 .
- step S 704 the message manager 324 of the client 110 reads the messages stored in the message DB 326 .
- step S 706 the message manager 324 extracts the message properties from the messages, specifically those properties described above with reference to FIG. 5 , including the trigger, conditions, recycle value, start and end dates and priority. The message manager 324 can then begin monitoring the client 110 behaviour to determine whether to display the message.
- step S 708 the message manager 324 starts monitoring the triggers defined in the message.
- Example triggers were outlined hereinabove. If, in step S 710 , the event defined by the trigger has not yet occurred, then the message manager 324 continues monitoring in S 708 . Alternatively, if the trigger event has occurred, then in step S 712 the conditions defined by the message are analysed. Example conditions were described hereinbefore. Typically, the conditions define a value that needs to be compared against a property within the client. The message manager 324 performs this comparison to determine if the condition is met. Note that multiple conditions may be defined in the message, which must all be met, or a null condition defined which is always met by default.
- step S 714 the message manager 324 ceases to process the current message in question, and returns to monitoring triggers in step S 708 for the display of future messages.
- step S 716 the message manager 324 checks the number of times that the message in question has been displayed. If it is found in step S 718 that this exceeds the recycle value for this message, then the message is not displayed, and the message manager returns to monitoring triggers in step S 708 . If, however, step S 718 finds that the recycle value has not been exceeded, then the process proceeds to step S 720 .
- step S 720 the message manager 324 checks the start and end date values for this message. As mentioned before, these values define a time interval during which the message should be displayed. Therefore, in step S 720 , the message manager compares the current date to the start and end dates, to determine if the current date falls within them. If in step S 722 the current date is not within the start and end dates, then the message display should be skipped and the message manager 324 returns to monitoring the triggers in step S 708 .
- step S 724 it is checked whether another message is already displayed at this display location, and if so, the priority levels of the message are compared.
- step S 726 if the priority level of the current message is lower than another message already being displayed, then the current message is not displayed and step S 708 is returned to.
- step S 728 the message display is not skipped, and in the step S 728 the message is displayed in the UI of the client 110 . More details on the display of the message in the client is provided with reference to FIGS. 8 to 13 below.
- step S 730 the count of the number of times the message in question has been displayed is incremented, before the message manager 324 returns to monitoring the triggers in step S 708 .
- FIGS. 8 to 12 illustrates example locations where the messages can be displayed in the client 110 .
- the messages define a UI display location ( 516 ) which determines where the message is displayed.
- FIG. 8 shows the user interface of the client 110 when displaying the contact list tab 206 , as described above with reference to FIG. 2 .
- the message placeholder 802 comprises a close button 804 that removes the message from the display, thereby reverting the client to the form shown in FIG. 2 .
- FIG. 9 shows the UI of the client 110 when the tab named “call phones” 902 is selected.
- This tab 902 displays a keypad 904 , allowing the user to enter a telephone number to call.
- This tab 902 shows an example message display location 906 with a close button 908 as described above.
- FIG. 10 shows the UI of the client when the tab labelled “live” 1002 is selected.
- This tab 1002 displays a list 1004 of ongoing and upcoming public conversations that can be joined by the user.
- This tab 1002 also displays an example message location 1006 with a close button 1008 .
- FIG. 11 illustrates the UI of the client 110 when the tab labelled “SkypeFind” 1102 is selected by the user.
- This tab 1102 displays a directory service with fields 1104 for searching for businesses.
- This tab 1102 displays an example message location 1106 with a close button 1108 .
- FIG. 12 shows the tab displayed to the user of the client 110 when a call is in progress. In this case, User A 102 is in a call with User B 114 .
- the call tab 1202 displays information 1204 about the user being called.
- An example message location 1206 with a close button 1208 is shown at the bottom of the tab.
- FIG. 13 illustrates a set of example messages that can be displayed in the UI locations described previously.
- Message 1302 is a message displayed in the call tab 1202 as shown in FIG. 12 .
- This message indicates to the user that the client 110 cannot detect any sound on the microphone, and hence there may be a problem with the audio settings.
- the trigger for this message is making a call (of any type), and the condition is the audio gain level on the microphone.
- the link in the message i.e. the link action 510 from FIG. 5 ) takes the user to the audio settings of the client 110 (i.e. a location internal to the client).
- Message 1304 is a message displayed in the contacts tab 206 shown in FIG. 8 .
- the message prompts the user to sign up for a voicemail service.
- the trigger for this message is a missed call at the client, and the condition is that user has not subscribed to voicemail.
- the link takes the user to an internet page where they can subscribe to the voicemail service.
- Message 1306 is a message displayed in the call phones tab 902 shown in FIG. 9 .
- This message informs the user that they need to purchase credit in order to make calls to the PSTN network.
- the trigger is the user viewing the call phones tab 902 , and the condition is the user's credit balance is zero.
- the link action takes the user to an internet page where they can purchase credit.
- Message 1308 is a promotional message displayed in the contacts list tab 206 shown in FIG. 8 .
- This message promotes a service whereby the user can purchase a telephone number to allow PSTN users to call their VoIP client.
- the trigger for this message is time-based, such that it is displayed on a specified number of days.
- the condition is that the user has not already signed up for this service—it is not desirable to promote a service the user already has.
- the link takes the user to an internet page where they can subscribe to the service.
- Message 1310 is a message displayed in the call tab 1202 shown in FIG. 12 . If the user was making a PSTN call (trigger) and the balance of his account goes to zero (condition) then the message is displayed.
- the links display webpages for the user to buy more credit and to set up an automatic credit recharging system.
- Message 1312 is a promotional message displayed in the live 1002 or SkypeFind 1102 tabs in FIG. 10 or 11 respectively.
- This message includes images as well as text.
- the message promotes a subscription service.
- the trigger is time-based, and the condition is that the user has not already subscribed to the service.
- the link displays a webpage in which the user can subscribe to the service.
- Message 1314 is displayed in the call tab 1202 .
- the trigger is that the user is making a call to a PSTN number. There is no condition applied to this message.
- the message notifies the user that the call would be free if the other party also used the VoIP service, and the link takes the user to a webpage where the user can invite the other party to join the VoIP service.
- the messages displayed in the client are relevant to the particular user of the client, due to using triggers and conditions that are dependent upon actions occurring within the client itself.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This application is a continuation of and claims priority to U.S. patent application Ser. No. 15/692,896, titled “Message Delivery System and Method” and filed Aug. 31, 2017, which is a continuation of U.S. Pat. No. 9,756,004, filed Nov. 8, 2007 and titled “Message Delivery System and Method,” the disclosures of which are incorporated by reference herein in their entireties.
- This invention relates to a message delivery system and method, particularly but not exclusively for use in a packet-based communication system.
- Packet-based communication systems allow the user of a device, such as a personal computer, to communicate across a computer network such as the Internet. Packet-based communications systems include voice over internet protocol (“VoIP”) communication systems and instant messaging (“IM”) systems. These systems are beneficial to the user as they are often of significantly lower cost than fixed line or mobile networks. This may particularly be the case for long-distance communication. To use a VoIP or IM system, the user must install and execute client software on their device. The client software provides the VoIP or IM connections as well as other functions such as registration and authentication. In addition to voice communication, the client may also provide further features such as video calling.
- One type of packet-based communication system uses a peer-to-peer (“P2P”) topology built on proprietary protocols. To enable access to a peer-to-peer system, the user must execute P2P client software provided by a P2P software provider on their computer, and register with the P2P system. When the user registers with the P2P system the client software is provided with a digital certificate from a server. Once the client software has been provided with the certificate, communication can subsequently be set up and routed between users of the P2P system without the further use of a server. In particular, the users can establish their own communication routes through the P2P system based on the exchange of one or more digital certificates(or user identity certificates, “UIC”), which enable access to the P2P system. The exchange of the digital certificates between users provides proof of the user's identities and that they are suitably authorised and authenticated in the P2P system. Therefore, the presentation of digital certificates provides trust in the identity of the user. It is therefore a characteristic of peer-to-peer communication that the communication is not routed using a server but directly from end-user to end-user. Further details on such a P2P system are disclosed in WO 2005/009019.
- In contrast to traditional communication systems such as fixed-line or mobile networks, the communication client for a packet-based communication client has a flexible, rich graphical user interface. The graphical user interface is displayed to the user on a display of the personal computer, and permits the communication client to present a large number of features and options to the user. However, it is difficult for the provider of the client software to inform the user of these features in a timely and non-intrusive manner.
- This disclosure describes a method that includes receiving a message by a communication client, the message comprising a trigger event that is to occur for a condition to be checked, the condition comprising a parameter value for evaluating whether the condition has been satisfied, monitoring a user terminal subsequent to receiving the message to determine whether the trigger event occurs at the user terminal, and determining whether the condition has been satisfied at the user terminal in response to a determination that the trigger event occurred. The method also includes displaying a selectable option for reconfiguring an attribute of the communication client in response to a determination that the condition has been satisfied, and reconfiguring the attribute of the communication client in response to a selection of the selectable option.
- In another embodiment of the method, the method includes reading a current value of a parameter in the user terminal and comparing the current value to the parameter value of the condition.
- In a further embodiment of the method, the parameter value defines a maximum number of times the message is to be displayed by the communication client.
- In yet another embodiment of the method, the parameter value defines a start time and an end time for displaying the message.
- In yet a further embodiment of the method, the method includes transmitting, prior to the receiving, a request for the message over a communication network.
- In another embodiment of the method, the request for the message comprises an identifier of a plurality of messages stored at the user terminal.
- In a further embodiment of the method, the request for messages comprises at least one of a version number for a communication client executed on the user terminal and an identifier of an operating system executed on the user terminal.
- In yet another embodiment of the method, the message is received at the user terminal in a bundle comprising a plurality of messages.
- In yet a further embodiment of the method, the method includes displaying a selectable control configured to cause display of information included with the message.
- In another embodiment of the method, the selectable control is a hyperlink comprising a network address of the information.
- This disclosure further describes a system that includes one or more processors, and one or more computer-readable storage devices having computer-executable instructions stored thereon that, when executed by the one or more processors, configure a user terminal to perform a plurality of operations comprising receiving a message by a communication client, the message comprising a trigger event that is to occur for a condition to be checked, the condition comprising a parameter value for evaluating whether the condition has been satisfied, and monitoring the user terminal subsequent to receiving the message to determine whether the trigger event occurs at the user terminal. The plurality of operations further comprises determining whether the condition has been satisfied at the user terminal in response to a determination that the trigger event occurred, displaying a selectable option for reconfiguring an attribute of the communication client in response to a determination that the condition has been satisfied, and reconfiguring the attribute of the communication client in response to a selection of the selectable option.
- In another embodiment of the system, the plurality of operations further comprises reading a current value of a parameter in the user terminal and comparing the current value to the parameter value of the condition.
- In a further embodiment of the system, the parameter value defines a maximum number of times the message is to be displayed by the communication client.
- In yet another embodiment of the system, the parameter value defines a start time and an end time for displaying the message.
- In yet a further embodiment of the system, the plurality of operations further comprises transmitting, prior to the receiving, a request for the message over a communication network.
- In another embodiment of the system, the request for the message comprises an identifier of a plurality of messages stored at the user terminal.
- In a further embodiment of the system, the request for messages comprises at least one of a version number for a communication client executed on the user terminal and an identifier of an operating system executed on the user terminal.
- In yet another embodiment of the system, the message is received at the user terminal in a bundle comprising a plurality of messages.
- In yet a further embodiment of the system, the plurality of operations further comprises displaying a selectable control configured to cause display of information included with the message.
- In another embodiment of the system, the selectable control is a hyperlink comprising a network address of the information.
- For a better understanding of the present invention and to show how the same may be put into effect, reference will now be made, by way of example, to the following drawings in which:
-
FIG. 1 shows a P2P communication system. -
FIG. 2 shows an example user interface of a client. -
FIG. 3 shows a detailed view of a user terminal. -
FIG. 4 shows a flowchart for defining and publishing a message. -
FIG. 5 shows the structure of a message, -
FIG. 6 shows the process for a client to fetch a message. -
FIG. 7 shows a flowchart for a client to display a message. -
FIG. 8 shows a message display region in a contact tab of a client. -
FIG. 9 shows a message display region in a dial tab of a client. -
FIG. 10 shows a message display region in a public conversations tab of a client -
FIG. 11 shows a message display region in a directory tab of a client. -
FIG. 12 shows a message display region displayed during a call. -
FIG. 13 shows example messages displayed in the client. - Reference is first made to
FIG. 1 , which illustrates aP2P communication system 100. Note that whilst this illustrative embodiment is described with reference to a P2P communication system, other types of communication system could also be used, such as instant messaging systems and other, non-P2P, VoIP systems. A first user of the P2P communication system (denoted “User A” 102) operates auser terminal 104, which is shown connected to aP2P network 106. Note that theP2P network 106 utilises a communication system such as the Internet, but is illustrated as a separate network inFIG. 1 for clarity. Theuser terminal 104 may be, for example, a personal computer (“PC”), personal digital assistant (“PDA”), a mobile phone, a gaming device or other embedded device able to connect to theP2P network 106. The user device is arranged to receive information from and output information to a user of the device. In a preferred embodiment of the invention the user device comprises a display such as a screen and a keyboard and mouse. Theuser device 104 is connected to theP2P network 106 via anetwork interface 108 such as a modem, and the connection between theuser terminal 104 and thenetwork interface 108 may be via a cable (wired) connection or a wireless connection. - The
user terminal 104 is running aclient 110, provided by the P2P software provider. Theclient 110 is a software program executed on a local processor in theuser terminal 104. Theuser terminal 104 is also connected to ahandset 112, which comprises a speaker and microphone to enable the user to listen and speak in a voice call. The microphone and speaker does not necessarily have to be in the form of a traditional telephone handset, but can be in the form of a headphone or earphone with an integrated microphone, or as a separate loudspeaker and microphone independently connected to theuser terminal 104. - An example of a
user interface 200 of theclient 110 executed on theuser terminal 104 ofUser A 102 is shown illustrated inFIG. 2 . Theclient user interface 200 displays theusername 202 ofUser A 102 in the P2P system, and User A can set his own presence state (that will be seen by other users) using a drop down list by selectingicon 204. - The
client user interface 200 comprises atab 206 labelled “contacts”, and when this tab is selected the contacts stored by the user in a contact list are displayed. In the example user interface inFIG. 2 , five contacts of other users of the P2P system (User B to F) are shown listed incontact list 208. Each of these contacts have authorised the user of theclient 110 to view their contact details and online presence and mood message information. Each contact in the contact list has a presence status icon associated with it. For example, the presence status icon forUser B 210 indicates that User B is “online”, the presence icon forUser C 212 indicates that User C is “not available”, the presence icon forUser D 214 indicates that User D's state is “do not disturb”, the presence icon forUser E 216 indicates User E is “away”, and the presence icon forUser F 218 indicates that User F is “offline”. Further presence indications can also be included. Next to the names of the contacts inpane 208 are themood messages 220 of the contacts. - The contact list for the users (e.g. the
contact list 208 for User A) is stored in a contact server (not shown inFIG. 1 ). When theclient 110 first logs into the P2P system the contact server is contacted, and the contact list is downloaded to theuser terminal 104. This allows the user to log into the P2P system from any terminal and still access the same contact list. The contact server is also used to store the user's own mood message (e.g. the mood message of User A 102) and a picture selected to represent the user (known as an avatar). This information can be downloaded to theclient 110, and allows this information to consistent for the user when logging on from different terminals. Theclient 110 also periodically communicates with the contact server in order to obtain any changes to the information on the contacts in the contact list, or to update the stored contact list with any new contacts that have been added. Presence information is not stored centrally in the contact server. Rather, theclient 110 periodically requests the presence information for each of the contacts in thecontact list 208 directly over the P2P system. Similarly, the current mood message for each of the contacts, as well as a picture (avatar) that has been chosen to represent the contact, are also retrieved by theclient 110 directly from the respective clients of each of the contacts over the P2P system. - Calls to the P2P users in the contact list may be initiated over the P2P system by selecting the contact and clicking on a “call”
button 222 using a pointing device such as a mouse. Alternatively, the call may be initiated by typing in the P2P identity of a contact in thefield 224. Referring again toFIG. 1 , the call set-up is performed using proprietary protocols, and the route over thenetwork 106 between the calling user and called user is determined by the peer-to-peer system without the use of servers. InFIG. 1 , an illustrative route is shown between the caller User A (102) and the called party, User B (114), via other peers (116, 118, 120) of the P2P system. It will be understood that this route is merely an example, and that the call may be routed via fewer or more peers. - Following authentication through the presentation of digital certificates (to prove that the users are genuine subscribers of the P2P system—described in more detail in WO 2005/009019), the call can be made using VoIP. The
client 110 performs the encoding and decoding of VoIP packets. VoIP packets from theuser terminal 104 are transmitted into thenetwork 106 via thenetwork interface 108, and routed to thecomputer terminal 122 ofUser B 114, via anetwork interface 123. A client 124 (similar to the client 110) running on theuser terminal 122 ofUser B 114 decodes the VoIP packets to produce an audio signal that can be heard by User B using thehandset 126. Conversely, whenUser B 114 talks intohandset 126, theclient 124 executed onuser terminal 122 encodes the audio signals into VoIP packets and transmits them across thenetwork 106 to theuser terminal 104. Theclient 110 executed onuser terminal 104 decodes the VoIP packets fromUser B 114, and produces an audio signal that can be heard by the user of thehandset 112. - The VoIP packets for calls between P2P users (such as 102 and 114) as described above are passed across the
network 106 only, and the PSTN network is not involved. Furthermore, due to the P2P nature of the system, the actual voice calls between users of the P2P system can be made with no central servers being used. This has the advantages that the network scales easily and maintains a high voice quality, and the call can be made free to the users. Additionally, calls can also be made from the client (110, 122) using the P2P system to fixed-line or mobile telephones, by routing the call via agateway 128 to thePSTN network 130. Similarly, calls from fixed-line or mobile telephones can be made to the P2P system via thePSTN 130 andgateway 128. -
FIG. 3 illustrates a detailed view of the user terminal (104) on which is executedclient 110. Theuser terminal 104 comprises a central processing unit (“CPU”) 302, to which is connected adisplay 304 such as a screen, an input device such as a keyboard 306, a pointing device such as amouse 308, aspeaker 310 and amicrophone 312. Thespeaker 310 andmicrophone 312 may be integrated into ahandset 112 or headset, or may be separate. TheCPU 302 is connected to anetwork interface 108 as shown inFIG. 1 . -
FIG. 3 also illustrates an operating system (“OS”) 314 executed on theCPU 302. Running on top of theOS 314 is asoftware stack 316 for theclient 110. The software stack shows aprotocol layer 322, aclient engine layer 320 and a client user interface layer (“UI”) 318. Each layer is responsible for specific functions. Because each layer usually communicates with two other layers, they are regarded as being arranged in a stack as shown inFIG. 3 . Theoperating system 314 manages the hardware resources of the computer and handles data being transmitted to and from the network via thenetwork interface 108. Theclient protocol layer 322 of the client software communicates with theoperating system 314 and manages the connections over the P2P system. Processes requiring higher level processing are passed to theclient engine layer 320. In particular, theclient engine layer 320 comprisesmessage manager functionality 324 and amessage database 326. The functionality of these elements will be described in more detail hereinafter. Theclient engine 320 also communicates with the clientuser interface layer 318. Theclient engine 320 may be arranged to control the clientuser interface layer 318 to present information to the user via the user interface of the client (as shown inFIG. 2 ) and to receive information from the user via the user interface. The control of theclient user interface 318 will be explained in more detail hereinafter. - As mentioned, the use of P2P client software permits the inclusion of a large number of features that can be used by the users. However, there is a difficultly in keeping the users informed of these features. Furthermore, it is useful for the P2P software provider to be able to inform the users of promotions that are available, and to give the users feedback in the case of detected problems or errors.
- Error messages and information/help messages can be built into the client (i.e. hard-coded) such that they can be shown to the users as soon as the client is installed and executed on the user's terminal. However, this has the significant disadvantage that the messages cannot be adapted or changed without the user installing a new version of the client. For example, the P2P software provider may become aware that a particular feature is not being used frequently by the users, because the users are either unaware of its existence or do not understand how to use it. In such cases, hard-coded messages cannot change in order to inform the user of this feature. Similarly, the P2P software provider may begin offering a new promotion or pricing plan, which cannot be communicated through the client until a new version is released with the hard-coded messages.
- There is therefore a need for a dynamic message delivery system that permits the delivery of messages from the P2P software provider to the clients, such that these messages can be displayed by the clients to inform the users of pertinent information.
- A dynamic message delivery system is shown illustrated in
FIG. 1 . Before the process by which the messages are delivered to the clients and displayed to the users is described, the process for creating the messages is outlined. - The messages are preferably created by an administrator affiliated with the P2P software provider. However, in some embodiments, this role could be fullfilled by a trusted third party. Referring to
FIG. 1 , theadministrator 132 operates auser terminal 134 that is connected via anetwork interface 136 to anetwork 138 such as the Internet. Executed on a processor of theuser terminal 134 is aweb browser program 140. Theweb browser program 140 is used to view web pages retrieved over thenetwork 138 using the hypertext transfer protocol (“HTTP”). It will be understood that thenetwork 106 used by the P2P system and thenetwork 138 used by theadministrator 132 are both, in practice, the Internet. However, they are shown separately inFIG. 1 in order to distinguish between the information passed over the P2P system (network 106) and the information passed over the World Wide Web (network 138). -
FIG. 4 shows a flowchart for the process by which the message is created by theadministrator 132. In step S402, the administrator executes theweb browser program 140 on theuser terminal 134. In step S404, theadministrator 132 uses theweb browser program 140 to log into a back office server (142 inFIG. 1 ) over thenetwork 138. Theback office server 142 displays to the administrator a selection of options that define the structure, content and properties of the message. In S406, the administrator selects the options required options to define what the message should display and when it should be displayed. The details of the message structure will be described with reference toFIG. 5 below. - Following the selection of the message options, in step S408, the administrator selects to save the message. The message is saved by the
back office server 142 in a content database (144 inFIG. 1 ). The message is marked as requiring review. The review is an optional stage whereby the message is checked, e.g. for language. This may particularly be needed if translations of the messages into multiple languages are required. In step S410 and S412 the process waits for the message to be reviewed. Once the message has been approved, then in step S414 the message stored in thecontent DB 144 is marked as ready for publication to the clients. - The messages that are created are grouped together into “bundles”. Bundles are created to minimise the amount of data that needs to be transmitted to the clients. Specifically, a bundle comprises the set of messages that are different to those messages that are pre-installed with the client. Therefore, the bundle constitutes changes or additions to the messages that the clients already contain. By creating the bundles, only those messages that are not already present in the client are transmitted. Obviously, if only a single message is updated compared to those already installed in the client, then the bundle will comprise only one message. As different versions of the clients will contain different messages when they are installed on the user terminals, different bundles need to be compiled for different client versions. Each bundle is given a unique identifier in order to distinguish between them. Once all the messages in a bundle have been approved, the bundle itself can be approved and can be marked as ready for publication to the clients
- The process by which the messages are delivered to the clients is described in detail with reference to
FIG. 6 hereinafter. - Reference is now made to
FIG. 5 which illustrates the detailed structure of the messages created by the above-described process and stored in thecontent DB 144. Themessage 500 comprises amessage type field 502 which defines a particular category for the message. For example, themessage type field 502 can define that the message is an information message, a user tip message or a promotion message. The type of message can be used to determine how the message is displayed in the client, for example background colours and icons can be displayed according to the type of message. Themessage 500 also comprises amessage content field 504, which contains the actual information to be displayed to the users of the clients. Themessage content 504 can comprise text, images, animation (e.g. flash animation) or a combination of the above. Example message content will be described herein after. - The
message 500 further comprises atrigger 506. Thetrigger 506 defines an event that must occur in the client before the message content is displayed to the user of the client. Example triggers include, but are not limited to: - Making a call from a P2P client to another P2P client;
- Making a call from a P2P client to the PSTN;
- Receiving a call at a P2P client from another P2P client;
- Receiving a call at a P2P client from the PSTN;
- Starting to send a video feed;
- Starting to receive a video feed;
- Making a conference call;
- A date, time or period (e.g. a specific date or every x days);
- A missed call;
- A contact is added to the user's contact list;
- Viewing a particular UI in the client;
- Starting an IM chat conversation with one party; and
- Started an IM chat conversation with more than one party (called a multichat).
- In addition to the
trigger event 506 that must occur for the message to be displayed, themessage 500 can also define acondition 508 that must further be satisfied in order for the message to be shown to the user. Example conditions include, but are not limited to: - The time elapsed since the message was last displayed;
- The value of the user's account balance for outgoing PSTN calls;
- The date of expiry of credit in the user's account for outgoing PSTN calls;
- Whether the user has subscribed to receive incoming PSTN calls;
- The date of expiry of the user's incoming PSTN call subscription;
- Whether the user has subscribed for voicemail;
- The date of expiry of the user's voicemail subscription;
- The user's region as defined in their profile;
- A software registry key value;
- The client version number for the user initiating a call;
- The client version number for a user receiving a call;
- The operating system on which the client is executed;
- The user's privacy settings;
- Has the user ever set a mood message;
- The last date the user's avatar was changed;
- Has the user ever had an IM chat conversation;
- Has the user ever had an IM multi-chat conversation;
- Has the user ever had a conference call;
- Has the user ever used file transfer;
- The number of contacts in the user's contact list;
- Has the user set up call forwarding;
- Has the user utilised a contact importing tool;
- Has the user made a video call;
- Has the user performed a video test;
- Has the user made a PSTN call;
- Is the other party in a call authorised by the user;
- Is the other party in a call listed in the user's contact list;
- The value of the audio gain level on the user's microphone;
- The current call duration;
- The currently viewed tab in the client UI;
- The client's current CPU usage;
- The current value of packet loss for a call;
- The current roundtrip value for a call;
- The currently available voice bandwidth;
- The currently available video bandwidth;
- Is the current call relayed over multiple peers;
- The destination country of an outgoing PSTN call;
- The originating country of an incoming PSTN call;
- The amount of credit spent by the user today, this month, this year;
- The language is the client in; and
- The P2P identity (username) of the user.
- Therefore, the
trigger 506 defines the event that causes aparticular condition 508 to be checked. Thecondition 508 in the message defines a value (e.g. a number, Boolean value or string) that must be checked against a certain property within the client before the display of the message can proceed. Furthermore, multiple conditions can be defined, such that more than one of the above-listed conditions must be met in order for the message to be displayed. Optionally, no condition can be set, such that only thetrigger 506 is required in order for the message to be displayed. - The
message 500 also comprises alink action field 510. Thelink action 510 defines the action that is taken by the client when the user clicks on a certain part of the message using the pointing device (e.g. a certain word, sequence of words or image). Thelink action 510 can define that the client executes a web browser program, which navigates to a certain webpage. Alternatively, thelink action 510 can perform an action within the client itself (e.g. opening an option window, displaying the user's profile etc). - A
recycle field 512 is present in themessage 500, which defines a set number of times that themessage content 504 should be displayed. Even if the message has triggered (506) and met the condition (508) it will only be displayed if the number of times it has been displayed previously does not exceed therecycle value 512. Therefore, therecycle value 512 ensures that a given message will only be shown a certain number of times, thereby preventing it from becoming annoying for the users. Therecycle value 512 can also be set such that a message can be displayed an indefinite number of times. - The
message 500 further comprises start and end date values 514. The start and end date values 514 define a time interval during which the message should be displayed. This allows messages to only be displayed over a certain period, which is useful, for example, for time-sensitive marketing campaigns. However, the values for the start and end dates can be set such that the messages are always able to be displayed regardless of the date. - The
message 500 also comprises adisplay location 516 for the message in the user interface of the client. Example display locations are illustrated in more detail with reference toFIGS. 8 to 12 . Furthermore, themessage 500 comprises apriority field 518. Thepriority field 518 defines a priority level for the message in question, such that if the client attempts to display two or more messages in the same location at the same time, then only the message with the highest priority is displayed. - Therefore, at this point in the process a message has been created by the administrator 132 (as illustrated with reference to
FIG. 4 ) comprising the properties described above with reference toFIG. 5 , and is stored in thecontent DB 144. Note that the administrator can create a plurality of messages, each of which is stored in thecontent DB 144. - The process by which the messages are delivered to the clients is now described with reference to
FIG. 1 andFIG. 6 . The clients (110, 122) are configured to periodically check whether new messages are available to be downloaded. The message manager 324 (as illustrated inFIG. 3 ) is responsible for triggering the periodic check for new messages. The periodicity of the message checking can be defined in order to balance the requirements of rapidly delivering new messages against the consequential network and server load. For example, the message checking period can be every 14 days, although any time period may be used. In order to prevent all the clients in the P2P system simultaneously attempting to retrieve messages, each client independently maintains its own timer of when messages were last retrieved. Therefore, as the users install and execute clients at different times, this ensures that the message retrieval is distributed over time, thereby reducing peak network loading. - Referring to
FIG. 6 , in step S602 the client (110, 122) sends a “request content” message via the network interface (108, 123) over the P2P system. The “request content” message contains an identifier of the bundle of messages currently held by the client, which allows the message delivery system to determine which messages need to be provided to the client. The “request content” message also comprises the software version number for the client and the operating system used on the user terminal. This information is provided because different bundles of messages are compiled for different operating systems and client versions. - The “request content” message is transmitted from the client to a
proxy server 146 over the P2P system. The function of theproxy server 146 is to provide an interface between the peers of the P2P system and backend systems. In particular, theproxy server 146 authenticates users of the P2P system to ensure that they are allowed to have access to the backend systems. - Providing the client can be authenticated, the
proxy server 146 forwards the “request content” message to amessage server 148 in step S604. Themessage server 146 acts as the interface to thecontent DB 144, and handles the delivery of messages to the clients. Multiple message servers can be utilised in practice, in order to handle the load from a large number of clients requesting content. - The
message server 148 reads the information regarding the software version, operating system and current message bundle ID from the “request content” message, and determines whether newer messages need to be sent to the client. Themessage server 148 compares the bundle ID for the most recent bundle for the given operating system and software version to the bundle ID from the client. If a newer bundle of messages exists then the message server prepares to send this to the client. If the client already has the latest bundle (i.e. no existing messages have been changed or new ones added since either the client was installed or since the last time the client requested messages from the message server) then the process stops without messages being transmitted to the client. - Presuming that a newer bundle exists, the
message server 148 requests the newer bundle from thecontent DB 144 in step S606, and in step S608 the newer message bundle is returned to themessage server 148. Note that, in preferred embodiments, themessage server 148 can also comprise acache element 150, which is used to maintain a local cache of the most recent and commonly requested bundles. This can be advantageously utilised to avoid the need to fetch the bundle from thecontent DB 144, thereby reducing the load on the database. - In step S610, the message bundle is transmitted from the
message server 148 to theproxy server 146. Theproxy server 146 then transmits the message bundle to theclient message manager 324 in the client and stored in themessage DB 326 in theclient 110 as illustrated inFIG. 3 . - In preferred embodiments, statistics about the messages displayed in the clients are also collected in step S614. For example, a set of statistics can be collected for each message, which include: a message identifier; the total number of times the message was displayed; the total number of times the user closed the message; the total number of times a link in the message is clicked on; and the total amount of time, in seconds, that the message was displayed. Different statistics requirements can be defined for different messages, and these statistics requirements can be pre-set in the installed client, or can be communicated to the client along with the bundle of messages.
- The statistics collected by the client are reported back to the
message server 148 periodically by the client. For example, the client can be arranged to report statistics every four hours. When a time period has passed such that the client needs to report statistics, then the statistics are collated and transmitted in S616 to theproxy server 146, and forwarded to themessage server 148 in S618. Themessage server 148 then stores the statistics in thestatistics DB 152 in step S620. The steps of S616 to S620 are repeated whenever the period for reporting statistics expires. - Reference is now made to
FIG. 7 , which illustrates the process by which messages received at the client are interpreted and displayed. In step S702, theclient 110 is executed on theuser terminal 104 of theuser 102. In step S704, themessage manager 324 of theclient 110 reads the messages stored in themessage DB 326. In step S706, themessage manager 324 extracts the message properties from the messages, specifically those properties described above with reference toFIG. 5 , including the trigger, conditions, recycle value, start and end dates and priority. Themessage manager 324 can then begin monitoring theclient 110 behaviour to determine whether to display the message. - In step S708, the
message manager 324 starts monitoring the triggers defined in the message. Example triggers were outlined hereinabove. If, in step S710, the event defined by the trigger has not yet occurred, then themessage manager 324 continues monitoring in S708. Alternatively, if the trigger event has occurred, then in step S712 the conditions defined by the message are analysed. Example conditions were described hereinbefore. Typically, the conditions define a value that needs to be compared against a property within the client. Themessage manager 324 performs this comparison to determine if the condition is met. Note that multiple conditions may be defined in the message, which must all be met, or a null condition defined which is always met by default. - If the conditions are not met, then in step S714 the
message manager 324 ceases to process the current message in question, and returns to monitoring triggers in step S708 for the display of future messages. Alternatively, if the conditions are met, then in step S716 themessage manager 324 checks the number of times that the message in question has been displayed. If it is found in step S718 that this exceeds the recycle value for this message, then the message is not displayed, and the message manager returns to monitoring triggers in step S708. If, however, step S718 finds that the recycle value has not been exceeded, then the process proceeds to step S720. - In step S720, the
message manager 324 checks the start and end date values for this message. As mentioned before, these values define a time interval during which the message should be displayed. Therefore, in step S720, the message manager compares the current date to the start and end dates, to determine if the current date falls within them. If in step S722 the current date is not within the start and end dates, then the message display should be skipped and themessage manager 324 returns to monitoring the triggers in step S708. - If the message is to be displayed (i.e. the current date is within the start and end dates), then in step S724 it is checked whether another message is already displayed at this display location, and if so, the priority levels of the message are compared. In step S726, if the priority level of the current message is lower than another message already being displayed, then the current message is not displayed and step S708 is returned to. However, if another message is not being displayed at the display location, or the current message has a higher priority, then in step S726 the message display is not skipped, and in the step S728 the message is displayed in the UI of the
client 110. More details on the display of the message in the client is provided with reference toFIGS. 8 to 13 below. Finally, in step S730, the count of the number of times the message in question has been displayed is incremented, before themessage manager 324 returns to monitoring the triggers in step S708. - The above process is obviously performed for every message that is stored in the bundles in the
message DB 326. It should also be noted that the monitoring, triggering and display of messages happens in parallel for all messages in the client. Therefore, more than one message can be triggered and displayed in the client at one time. - Reference is now made to
FIGS. 8 to 12 , which illustrates example locations where the messages can be displayed in theclient 110. As mentioned with regards toFIG. 5 , the messages define a UI display location (516) which determines where the message is displayed. -
FIG. 8 shows the user interface of theclient 110 when displaying thecontact list tab 206, as described above with reference toFIG. 2 . However, in the case ofFIG. 8 , there is aplaceholder 802 for a message to be displayed below the contact list. Themessage placeholder 802 comprises aclose button 804 that removes the message from the display, thereby reverting the client to the form shown inFIG. 2 . -
FIG. 9 shows the UI of theclient 110 when the tab named “call phones” 902 is selected. Thistab 902 displays akeypad 904, allowing the user to enter a telephone number to call. Thistab 902 shows an examplemessage display location 906 with aclose button 908 as described above.FIG. 10 shows the UI of the client when the tab labelled “live” 1002 is selected. Thistab 1002 displays alist 1004 of ongoing and upcoming public conversations that can be joined by the user. Thistab 1002 also displays anexample message location 1006 with aclose button 1008. -
FIG. 11 illustrates the UI of theclient 110 when the tab labelled “SkypeFind” 1102 is selected by the user. This tab 1102 displays a directory service withfields 1104 for searching for businesses. This tab 1102 displays anexample message location 1106 with aclose button 1108.FIG. 12 shows the tab displayed to the user of theclient 110 when a call is in progress. In this case,User A 102 is in a call with User B114. Thecall tab 1202 displaysinformation 1204 about the user being called. Anexample message location 1206 with aclose button 1208 is shown at the bottom of the tab. - Reference is now made to
FIG. 13 , which illustrates a set of example messages that can be displayed in the UI locations described previously. -
Message 1302 is a message displayed in thecall tab 1202 as shown inFIG. 12 . This message indicates to the user that theclient 110 cannot detect any sound on the microphone, and hence there may be a problem with the audio settings. The trigger for this message is making a call (of any type), and the condition is the audio gain level on the microphone. The link in the message (i.e. thelink action 510 fromFIG. 5 ) takes the user to the audio settings of the client 110 (i.e. a location internal to the client). -
Message 1304 is a message displayed in thecontacts tab 206 shown inFIG. 8 . The message prompts the user to sign up for a voicemail service. The trigger for this message is a missed call at the client, and the condition is that user has not subscribed to voicemail. The link takes the user to an internet page where they can subscribe to the voicemail service. -
Message 1306 is a message displayed in thecall phones tab 902 shown inFIG. 9 . This message informs the user that they need to purchase credit in order to make calls to the PSTN network. The trigger is the user viewing thecall phones tab 902, and the condition is the user's credit balance is zero. The link action takes the user to an internet page where they can purchase credit. -
Message 1308 is a promotional message displayed in thecontacts list tab 206 shown inFIG. 8 . This message promotes a service whereby the user can purchase a telephone number to allow PSTN users to call their VoIP client. The trigger for this message is time-based, such that it is displayed on a specified number of days. The condition is that the user has not already signed up for this service—it is not desirable to promote a service the user already has. The link takes the user to an internet page where they can subscribe to the service. -
Message 1310 is a message displayed in thecall tab 1202 shown inFIG. 12 . If the user was making a PSTN call (trigger) and the balance of his account goes to zero (condition) then the message is displayed. The links display webpages for the user to buy more credit and to set up an automatic credit recharging system. -
Message 1312 is a promotional message displayed in the live 1002 or SkypeFind 1102 tabs inFIG. 10 or 11 respectively. This message includes images as well as text. The message promotes a subscription service. The trigger is time-based, and the condition is that the user has not already subscribed to the service. The link displays a webpage in which the user can subscribe to the service. -
Message 1314 is displayed in thecall tab 1202. The trigger is that the user is making a call to a PSTN number. There is no condition applied to this message. The message notifies the user that the call would be free if the other party also used the VoIP service, and the link takes the user to a webpage where the user can invite the other party to join the VoIP service. - Therefore, as shown with the examples above, the messages displayed in the client are relevant to the particular user of the client, due to using triggers and conditions that are dependent upon actions occurring within the client itself.
- While this invention has been particularly shown and described with references to example embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/386,074 US20190245824A1 (en) | 2007-11-08 | 2019-04-16 | Message Delivery System and Method |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/937,069 US9756004B2 (en) | 2007-11-08 | 2007-11-08 | Message delivery system and method |
US15/692,896 US10298532B2 (en) | 2007-11-08 | 2017-08-31 | Message delivery system and method |
US16/386,074 US20190245824A1 (en) | 2007-11-08 | 2019-04-16 | Message Delivery System and Method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/692,896 Continuation US10298532B2 (en) | 2007-11-08 | 2017-08-31 | Message delivery system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
US20190245824A1 true US20190245824A1 (en) | 2019-08-08 |
Family
ID=40624779
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/937,069 Active 2031-12-22 US9756004B2 (en) | 2007-11-08 | 2007-11-08 | Message delivery system and method |
US15/692,896 Active US10298532B2 (en) | 2007-11-08 | 2017-08-31 | Message delivery system and method |
US16/386,074 Abandoned US20190245824A1 (en) | 2007-11-08 | 2019-04-16 | Message Delivery System and Method |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/937,069 Active 2031-12-22 US9756004B2 (en) | 2007-11-08 | 2007-11-08 | Message delivery system and method |
US15/692,896 Active US10298532B2 (en) | 2007-11-08 | 2017-08-31 | Message delivery system and method |
Country Status (1)
Country | Link |
---|---|
US (3) | US9756004B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10498899B2 (en) * | 2014-06-16 | 2019-12-03 | Karen Paulson | Communication logging system |
US12027277B1 (en) * | 2019-12-05 | 2024-07-02 | Evidation Health, Inc. | Active learning for wearable health sensor |
US12033761B2 (en) | 2020-01-30 | 2024-07-09 | Evidation Health, Inc. | Sensor-based machine learning in a health prediction environment |
US12119115B2 (en) | 2022-02-03 | 2024-10-15 | Evidation Health, Inc. | Systems and methods for self-supervised learning based on naturally-occurring patterns of missing data |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9756004B2 (en) | 2007-11-08 | 2017-09-05 | Skype | Message delivery system and method |
US8621010B2 (en) * | 2008-03-17 | 2013-12-31 | International Business Machines Corporation | Method and system for protecting messaging consumers |
US9143533B2 (en) | 2010-10-12 | 2015-09-22 | Skype | Integrating communications |
CN103081404A (en) * | 2010-12-13 | 2013-05-01 | 三菱电机株式会社 | Alert monitoring device and alert monitoring method |
US20120265808A1 (en) * | 2011-04-15 | 2012-10-18 | Avaya Inc. | Contextual collaboration |
CN102843307A (en) * | 2011-06-22 | 2012-12-26 | 中兴通讯股份有限公司 | Transmission method and system of user internet state information and intelligent network platform |
KR20160046558A (en) * | 2014-10-21 | 2016-04-29 | 삼성전자주식회사 | Method and apparatus for outputing notification event |
US10417447B2 (en) * | 2015-06-15 | 2019-09-17 | Arris Enterprises Llc | Selective display of private user information |
US10929155B2 (en) | 2018-05-11 | 2021-02-23 | Slack Technologies, Inc. | System, method, and apparatus for building and rendering a message user interface in a group-based communication system |
Family Cites Families (95)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5008853A (en) * | 1987-12-02 | 1991-04-16 | Xerox Corporation | Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment |
US5745711A (en) * | 1991-10-23 | 1998-04-28 | Hitachi, Ltd. | Display control method and apparatus for an electronic conference |
US5583993A (en) * | 1994-01-31 | 1996-12-10 | Apple Computer, Inc. | Method and apparatus for synchronously sharing data among computer |
US5532941A (en) * | 1994-07-08 | 1996-07-02 | Lin; Lawrence I. | Inter-laboratory performance monitoring system |
US6226678B1 (en) * | 1995-09-25 | 2001-05-01 | Netspeak Corporation | Method and apparatus for dynamically defining data communication utilities |
JP3454997B2 (en) * | 1995-12-06 | 2003-10-06 | 河野製紙株式会社 | Hydrolytic paper having moisture retention and method for producing the same |
US6631271B1 (en) * | 2000-08-29 | 2003-10-07 | James D. Logan | Rules based methods and apparatus |
US7020880B2 (en) * | 1997-01-08 | 2006-03-28 | International Business Machines Corporation | Modular application collaborator for providing inter-operability between applications and monitoring errors to trigger execution of required compensating actions to undo interrupted transaction |
US6269369B1 (en) * | 1997-11-02 | 2001-07-31 | Amazon.Com Holdings, Inc. | Networked personal contact manager |
US6237026B1 (en) * | 1997-12-31 | 2001-05-22 | Intel Corporation | Method and apparatus for automatic enrollment of a computer to a conference network or the like |
US6606305B1 (en) * | 1998-11-25 | 2003-08-12 | Lucent Technologies Inc. | Apparatus, method and system for automatic telecommunication conferencing and broadcasting |
US6463145B1 (en) * | 1999-01-29 | 2002-10-08 | Microsoft Corporation | Computer-implemented call forwarding options and methods therefor in a unified messaging system |
US6263064B1 (en) * | 1999-01-29 | 2001-07-17 | International Thinklink Corporation | Centralized communication control center for visually and audibly updating communication options associated with communication services of a unified messaging system and methods therefor |
US6446113B1 (en) * | 1999-07-19 | 2002-09-03 | Groove Networks, Inc. | Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager |
US6687698B1 (en) * | 1999-10-18 | 2004-02-03 | Fisher Rosemount Systems, Inc. | Accessing and updating a configuration database from distributed physical locations within a process control system |
JP2001175551A (en) * | 1999-12-10 | 2001-06-29 | Internatl Business Mach Corp <Ibm> | Maintenance and managing system, remote maintenance and management method, sheet member processor and remote maintenance and management method for printer |
AU2582401A (en) * | 1999-12-17 | 2001-06-25 | Dorado Network Systems Corporation | Purpose-based adaptive rendering |
US6876734B1 (en) * | 2000-02-29 | 2005-04-05 | Emeeting.Net, Inc. | Internet-enabled conferencing system and method accommodating PSTN and IP traffic |
US7624172B1 (en) * | 2000-03-17 | 2009-11-24 | Aol Llc | State change alerts mechanism |
JP3883775B2 (en) * | 2000-03-17 | 2007-02-21 | 株式会社デジタル | CONTROL SYSTEM SERVER DEVICE, CONTROL SYSTEM, CONTROL SYSTEM SERVER DEVICE COMMUNICATION METHOD, AND RECORDING MEDIUM CONTAINING THE PROGRAM |
US6944766B2 (en) * | 2000-05-02 | 2005-09-13 | Canon Kabushiki Kaisha | Information processing apparatus |
US7379963B1 (en) * | 2000-07-14 | 2008-05-27 | Knownow-Delaware | Delivery of any type of information to anyone anytime anywhere |
WO2002017115A2 (en) * | 2000-08-21 | 2002-02-28 | Thoughtslinger Corporation | Simultaneous multi-user document editing system |
US8064887B2 (en) * | 2000-08-29 | 2011-11-22 | Logan James D | Communication and control system using location aware devices for audio message storage and transmission operating under rule-based control |
US20030013951A1 (en) * | 2000-09-21 | 2003-01-16 | Dan Stefanescu | Database organization and searching |
EP1209597A1 (en) * | 2000-11-24 | 2002-05-29 | Matsushita Electric Industrial Co., Ltd. | Methods for sending and receiving content and system for delivering content through use of e-mail |
US7631039B2 (en) * | 2000-12-01 | 2009-12-08 | Radvision Ltd. | Initiation and support of video conferencing using instant messaging |
US20020076025A1 (en) * | 2000-12-18 | 2002-06-20 | Nortel Networks Limited And Bell Canada | Method and system for automatic handling of invitations to join communications sessions in a virtual team environment |
US7028262B2 (en) * | 2000-12-29 | 2006-04-11 | International Business Machines Corporation | Method and system for designing a theme and associating it with a collaboration space user interface |
EP1352333A4 (en) * | 2001-01-11 | 2009-02-25 | Polycom Inc | Conferencing method |
US7903796B1 (en) * | 2001-02-27 | 2011-03-08 | Verizon Data Services Llc | Method and apparatus for unified communication management via instant messaging |
US8503639B2 (en) * | 2001-02-27 | 2013-08-06 | Verizon Data Services Llc | Method and apparatus for adaptive message and call notification |
US20020169669A1 (en) * | 2001-03-09 | 2002-11-14 | Stetson Samantha H. | Method and apparatus for serving a message in conjuction with an advertisement for display on a world wide web page |
WO2003017166A1 (en) * | 2001-04-03 | 2003-02-27 | Rx-Connect, Inc. | Medical service and prescription management system |
EP1461679A4 (en) * | 2001-11-12 | 2006-01-18 | Worldcom Inc | System and method for implementing frictionless micropayments for consumable services |
US20030135565A1 (en) * | 2002-01-14 | 2003-07-17 | Julio Estrada | Electronic mail application with integrated collaborative space management |
US7024429B2 (en) * | 2002-01-31 | 2006-04-04 | Nextpage,Inc. | Data replication based upon a non-destructive data model |
US8068595B2 (en) * | 2002-03-15 | 2011-11-29 | Intellisist, Inc. | System and method for providing a multi-modal communications infrastructure for automated call center operation |
WO2003105009A1 (en) * | 2002-06-07 | 2003-12-18 | Bellsouth Intellectual Property Corporation | Sytems and methods for establishing electronic conferencing over a distributed network |
US7698276B2 (en) * | 2002-06-26 | 2010-04-13 | Microsoft Corporation | Framework for providing a subscription based notification system |
US20040019640A1 (en) * | 2002-07-25 | 2004-01-29 | Bartram Linda Ruth | System and method for distributing shared storage for collaboration across multiple devices |
US7640306B2 (en) * | 2002-11-18 | 2009-12-29 | Aol Llc | Reconfiguring an electronic message to effect an enhanced notification |
US20040187029A1 (en) * | 2003-03-21 | 2004-09-23 | Ting David M. T. | System and method for data and request filtering |
US7231662B2 (en) | 2003-05-28 | 2007-06-12 | International Business Machines Corporation | Automated security tool for storage system |
US7218956B2 (en) * | 2003-06-19 | 2007-05-15 | Motokazu Okawa | Advertisement using cellular phone |
US8028073B2 (en) * | 2003-06-25 | 2011-09-27 | Oracle International Corporation | Mobile meeting and collaboration |
WO2005009019A2 (en) | 2003-07-16 | 2005-01-27 | Skype Limited | Peer-to-peer telephone system and method |
US8200775B2 (en) * | 2005-02-01 | 2012-06-12 | Newsilike Media Group, Inc | Enhanced syndication |
US20050071752A1 (en) * | 2003-09-24 | 2005-03-31 | Marlatt Jane E. | Forms management system |
US7602895B2 (en) * | 2003-10-01 | 2009-10-13 | Aol Llc | Dynamic call response system |
US7907559B2 (en) | 2003-12-22 | 2011-03-15 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for multi-access |
KR100552519B1 (en) * | 2004-01-19 | 2006-02-14 | 삼성전자주식회사 | system and method for unified messaging system service using voice over Internet protocol |
US7912904B2 (en) * | 2004-03-31 | 2011-03-22 | Google Inc. | Email system with conversation-centric user interface |
US7162226B2 (en) * | 2004-04-13 | 2007-01-09 | Global Direct Management Corp. | Method and system of advertising in a mobile communication system |
US7702653B1 (en) * | 2004-06-30 | 2010-04-20 | Google Inc. | Methods and systems for triggering actions |
US7706401B2 (en) * | 2004-08-13 | 2010-04-27 | Verizon Business Global Llc | Method and system for providing interdomain traversal in support of packetized voice transmissions |
US8117102B1 (en) * | 2004-09-27 | 2012-02-14 | Trading Technologies International, Inc. | System and method for assisted awareness |
US7936863B2 (en) * | 2004-09-30 | 2011-05-03 | Avaya Inc. | Method and apparatus for providing communication tasks in a workflow |
US8180722B2 (en) * | 2004-09-30 | 2012-05-15 | Avaya Inc. | Method and apparatus for data mining within communication session information using an entity relationship model |
US20060149571A1 (en) * | 2004-12-30 | 2006-07-06 | Rodney Birch | Multi-channel enterprise communication management framework |
US8347088B2 (en) * | 2005-02-01 | 2013-01-01 | Newsilike Media Group, Inc | Security systems and methods for use with structured and unstructured data |
WO2006086353A2 (en) * | 2005-02-07 | 2006-08-17 | Mobiliad Investments & Trading Ltd. | System and method for transmitting and display of visual messages on screens of connected mobile devices |
US7860932B2 (en) * | 2005-04-04 | 2010-12-28 | Asaf Fried | Method and system for temporal delivery of email messages |
US7783711B2 (en) * | 2005-07-01 | 2010-08-24 | 0733660 B.C. Ltd. | Electronic mail system with functionally for senders to control actions performed by message recipients |
US7840438B2 (en) * | 2005-07-29 | 2010-11-23 | Yahoo! Inc. | System and method for discounting of historical click through data for multiple versions of an advertisement |
US20070074250A1 (en) * | 2005-09-28 | 2007-03-29 | Sharp Kabushiki Kaisha | Sub-contents reproducing apparatus and contents related service providing system |
US20070115919A1 (en) * | 2005-10-14 | 2007-05-24 | 3Com Corporation | Method and system for using a packet-network telephone to schedule a conference call |
US20070088852A1 (en) * | 2005-10-17 | 2007-04-19 | Zohar Levkovitz | Device, system and method of presentation of advertisements on a wireless device |
US7809392B2 (en) * | 2005-12-14 | 2010-10-05 | Sony Ericsson Mobile Communications Ab | Text and voice capable mobile communication device |
US7969461B2 (en) * | 2006-03-30 | 2011-06-28 | Polycom, Inc. | System and method for exchanging connection information for videoconferencing units using instant messaging |
US20070255715A1 (en) * | 2006-04-26 | 2007-11-01 | Bayhub, Inc. | Collaborative hub system for accessing and managing shared business content |
US7921099B2 (en) * | 2006-05-10 | 2011-04-05 | Inquira, Inc. | Guided navigation system |
US9001691B2 (en) * | 2006-05-10 | 2015-04-07 | Applied Voice & Speech Technologies, Inc. | Messaging systems and methods |
US20080010148A1 (en) * | 2006-06-13 | 2008-01-10 | Ebay Inc. | Targeted messaging based on attributes |
US20080040179A1 (en) * | 2006-08-14 | 2008-02-14 | Deutsche Boerse Ag | System and method for sharing information and causing an action based on that information |
US7814145B2 (en) * | 2006-08-24 | 2010-10-12 | Shane Lundy | System, method, apparatus, and computer media for distributing targeted alerts |
JP2008146602A (en) * | 2006-12-13 | 2008-06-26 | Canon Inc | Document retrieving apparatus, document retrieving method, program, and storage medium |
US8229083B2 (en) * | 2007-01-10 | 2012-07-24 | International Business Machines Corporation | Method and system for automatically connecting to conference calls |
US7778629B2 (en) * | 2007-01-10 | 2010-08-17 | International Business Machines Corporation | Method and system for handling potentially contentious situations upon receipt of an automatically connecting SMS message |
CA2679560C (en) * | 2007-02-27 | 2013-01-29 | Research In Motion Limited | Method, apparatus and system for initiating calendar events |
US8671146B2 (en) * | 2007-02-28 | 2014-03-11 | Microsoft Corporation | Presence aware notification for information technology management |
US7970388B2 (en) * | 2007-04-01 | 2011-06-28 | Time Warner Cable Inc. | Methods and apparatus for providing multiple communications services with unified parental notification and/or control features |
US8453159B2 (en) * | 2007-05-31 | 2013-05-28 | Informatica Corporation | Workspace system and method for monitoring information events |
US8392503B2 (en) * | 2007-06-19 | 2013-03-05 | Cisco Technology, Inc. | Reporting participant attention level to presenter during a web-based rich-media conference |
US8311513B1 (en) * | 2007-06-27 | 2012-11-13 | ENORCOM Corporation | Automated mobile system |
WO2009006542A2 (en) * | 2007-07-03 | 2009-01-08 | 3M Innovative Properties Company | System and method for assessing effectiveness of communication content |
US20090040948A1 (en) * | 2007-08-08 | 2009-02-12 | Alcatel Lucent | Speed conferencing |
US20090049090A1 (en) * | 2007-08-13 | 2009-02-19 | Research In Motion Limited | System and method for facilitating targeted mobile advertisement |
US20090061833A1 (en) * | 2007-08-30 | 2009-03-05 | Junius Ho | System, method and device to use messaging to implement programmatic actions |
US8341663B2 (en) * | 2007-10-10 | 2012-12-25 | Cisco Technology, Inc. | Facilitating real-time triggers in association with media streams |
US20090109961A1 (en) * | 2007-10-31 | 2009-04-30 | John Michael Garrison | Multiple simultaneous call management using voice over internet protocol |
US9756004B2 (en) | 2007-11-08 | 2017-09-05 | Skype | Message delivery system and method |
US8368738B2 (en) * | 2008-01-14 | 2013-02-05 | Microsoft Corporation | Joining users to a conferencing session |
US20100333116A1 (en) | 2009-06-30 | 2010-12-30 | Anand Prahlad | Cloud gateway system for managing data storage to cloud storage sites |
US8438272B2 (en) * | 2010-08-31 | 2013-05-07 | Sap Ag | Methods and systems for managing quality of services for network participants in a networked business process |
-
2007
- 2007-11-08 US US11/937,069 patent/US9756004B2/en active Active
-
2017
- 2017-08-31 US US15/692,896 patent/US10298532B2/en active Active
-
2019
- 2019-04-16 US US16/386,074 patent/US20190245824A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10498899B2 (en) * | 2014-06-16 | 2019-12-03 | Karen Paulson | Communication logging system |
US12027277B1 (en) * | 2019-12-05 | 2024-07-02 | Evidation Health, Inc. | Active learning for wearable health sensor |
US12033761B2 (en) | 2020-01-30 | 2024-07-09 | Evidation Health, Inc. | Sensor-based machine learning in a health prediction environment |
US12119115B2 (en) | 2022-02-03 | 2024-10-15 | Evidation Health, Inc. | Systems and methods for self-supervised learning based on naturally-occurring patterns of missing data |
Also Published As
Publication number | Publication date |
---|---|
US9756004B2 (en) | 2017-09-05 |
US20090125593A1 (en) | 2009-05-14 |
US10298532B2 (en) | 2019-05-21 |
US20170366494A1 (en) | 2017-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10298532B2 (en) | Message delivery system and method | |
US9106744B2 (en) | Interactive content for click-to-call calls | |
US6904140B2 (en) | Dynamic user state dependent processing | |
US8473545B2 (en) | Distributing presence information | |
US20100002685A1 (en) | Method and system for providing communication | |
US9584563B2 (en) | Communication system and method for content access | |
US20160056976A1 (en) | Integrating Communications | |
KR100810253B1 (en) | Method and system for providing service menu in a communication system | |
US7817792B2 (en) | Hyperlink-based softphone call and management | |
US20110153868A1 (en) | Cloud-Based Application For Low-Provisioned High-Functionality Mobile Station | |
KR100964211B1 (en) | Method and system for providing multimedia portal contents and addition service in a communication system | |
US20070220111A1 (en) | Personal communications browser client for remote use in enterprise communications | |
JP2002524976A (en) | Embedded web phone module | |
KR20160008552A (en) | Web platform with select-to-call functionality | |
KR20160010535A (en) | Reverse number look up | |
TWI533736B (en) | System and method for activating a mobile device to initiate a communication | |
US20060178155A1 (en) | Message handling based on the state of a telecommunications terminal | |
US8194836B2 (en) | Enhanced extension mobility | |
US20100124324A1 (en) | Communication control system, communication control method, and recording medium including communication control program | |
JP2008219201A (en) | Call control system, call control method and program | |
US20100284396A1 (en) | Communication system and method | |
US7864761B2 (en) | Handling unsolicited content at a telecommunications terminal | |
US10356133B2 (en) | Automatic call initiation in response to selecting tags in electronic documents and applications | |
KR20110065944A (en) | Method and apparatus for providing a click-to-call service |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SKYPE, IRELAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SKYPE LIMITED;REEL/FRAME:049798/0555 Effective date: 20111115 Owner name: SKYPE LIMITED, IRELAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HIIR, TANEL;KARNER, KAIDO;KASESALU, PRIIT;AND OTHERS;SIGNING DATES FROM 20080702 TO 20080708;REEL/FRAME:049798/0158 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCV | Information on status: appeal procedure |
Free format text: NOTICE OF APPEAL FILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: TC RETURN OF APPEAL |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SKYPE;REEL/FRAME:054694/0660 Effective date: 20200309 |
|
STCV | Information on status: appeal procedure |
Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS |
|
STCV | Information on status: appeal procedure |
Free format text: BOARD OF APPEALS DECISION RENDERED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |