This disclosure relates generally to apparatuses, methods, and computer readable media for composing communications for computing devices across multiple communications formats and protocols.
The proliferation of personal computing devices in recent years, especially mobile personal computing devices, combined with a growth in the number of widely-used communications formats (e.g., text, voice, video, image) and protocols (e.g., SMTP, IMAP/POP, SMS/MMS, XMPP, YMSG, etc.) has led to a communications experience that many users find fragmented and restrictive. Users desire a system that will provide ease of communication by sending an outgoing message created in whatever format was convenient to the composer, with delivery options to one or more receivers in whatever format or protocol that works best for them—all seamlessly from the composer's and recipient(s)'s perspective. With current communications technologies that remain “protocol-first”—as opposed to “message-first”—such ease of communication is not possible.
In the past, users of communications systems first had to choose a communication format before composing a message or selecting desired recipient(s). For example, a user must pick up a telephone before calling someone, or a user must launch a text or email application before composing the text or email, etc. And, while text might be the most convenient format at the time for the composer, text may not be convenient for the receiver—resulting in a delayed receipt of the message by the receiver. With the multi-format communication composition techniques described herein, however, the user flow is much more natural and intuitive. First, the user can select the desired recipient(s). Then, the user may compose the outgoing message (in any format). Next, the system (or the user, in some embodiments) chooses the delivery protocol for the communication, e.g., whether the communication is going to be sent via email, SMS, IM, or social media, etc. Finally, the outgoing message is converted into the desired outgoing message format (either by the user's client device or a central communications system server) and sent to the desired recipient(s) via the chosen delivery protocol(s).
According to the multi-format communication composition techniques described herein, the emphasis in the communication interface is on the “who” and the “what” of the communication—but not the “how.” The multi-format communication composition system described herein takes care of the “how”—including an ‘Optimal’ option, which may be employed to deliver the outgoing communication to the desired recipient(s) in the most preferred way, e.g., either through preferences that the recipient has specified via his or her profile in a multi-format communications network or through the communication protocol information regarding the desired recipient that is stored in the sender's contact list. This system could use information such as calendar information showing whether the recipient is in a meeting, recipient position or motion information (e.g., whether the recipient is driving, walking, sleeping, etc.), or historic communication patterns as a way to determine format or protocol.
Messages sent through the multi-format communications network described herein may reach recipients in traditional formats or protocols or with ‘on-network’ recipients, in their preferred format or protocol.
The subject matter of the present disclosure is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above. To address these and other issues, techniques that enable seamless, multi-format communications via a single user interface are described herein.
Disclosed are apparatuses, methods, and computer readable media for composing communications for computing devices across multiple formats and multiple protocols. More particularly, but not by way of limitation, this disclosure relates to apparatuses, methods, and computer readable media to permit computing devices, e.g., smartphones, smart devices, tablets, wearables, laptops, and the like, to send communications in a number of pre-determined and/or ‘determined-on-the-fly’ communications formats and/or protocols via a single, seamless user interface.
Determinations of outgoing communication formats and/or protocols may be based on, e.g., the format of the incoming communication, the preferred format of the recipient and/or sender of the communication, an optimal format for a given communication session/message, and/or economic considerations of format/protocol choice to the recipient and/or sender. The techniques disclosed herein allow communications systems to become ‘message-first,’ as opposed to ‘protocol-first,’ eventually allowing consideration of message protocol to fall away entirely for the sender of the communication. With reference to the figures, embodiments of communication optimization schemes according to this disclosure are provided below.
Referring now to
Server 106 in the server-entry point network architecture infrastructure 100 of
Referring now to
Referring now to
System unit 205 may be programmed to perform methods in accordance with this disclosure. System unit 205 comprises one or more processing units, input-output (I/O) bus 225 and memory 215. Access to memory 215 can be accomplished using the communication bus 225. Processing unit 210 may include any programmable controller device including, for example, a mainframe processor, a mobile phone processor, or, as examples, one or more members of the INTEL® ATOM™, INTEL® XEON™, and INTEL® CORE™ processor families from Intel Corporation and the Cortex and ARM processor families from ARM. (INTEL, INTEL ATOM, XEON, and CORE are trademarks of the Intel Corporation. CORTEX is a registered trademark of the ARM Limited Corporation. ARM is a registered trademark of the ARM Limited Company). Memory 215 may include one or more memory modules and comprise random access memory (RAM), read only memory (ROM), programmable read only memory (PROM), programmable read-write memory, and solid-state memory. As also shown in
Referring now to
The processing unit core 210 is shown including execution logic 280 having a set of execution units 285-1 through 285-N. Some embodiments may include a number of execution units dedicated to specific functions or sets of functions. Other embodiments may include only one execution unit or one execution unit that can perform a particular function. The execution logic 280 performs the operations specified by code instructions.
After completion of execution of the operations specified by the code instructions, back end logic 290 retires the instructions of the code 250. In one embodiment, the processing unit core 210 allows out of order execution but requires in order retirement of instructions. Retirement logic 295 may take a variety of forms as known to those of skill in the art (e.g., re-order buffers or the like). In this manner, the processing unit core 210 is transformed during execution of the code 250, at least in terms of the output generated by the decoder, the hardware registers and tables utilized by the register renaming logic 262, and any registers (not shown) modified by the execution logic 280.
Although not illustrated in
Multi-Protocol, Multi-Format Inbox Feed
As is shown across the top row of the interface 302, the multi-format, multi-protocol messages received by a user of the system may be grouped by format (e.g., Email, IM/SMS, Video, Voice, etc.), or all formats may be combined together into a single, unified inbox feed, as is shown in
Moving down to row 308 of inbox feed 300, messages from a second user, Peter Ehrmanntraut, have also been aggregated into a single row of the feed. As is displayed on the right hand side of row 308 is reveal arrow 310. Selection of reveal arrow 310 may provide additional options to the user such as to reply, delay reply/delay send, forward, return a call, favorite, archive, or delete certain message from a particular sender. Further, the reveal action may conveniently keep the user on the same screen and allows for quick visual filtering of messages. Gestures and icon features may help the user with the decision-making process regarding the choice to reply, delay replying (including the time delaying of response across multiple protocols), delete, mark as spam, see a full message, translate, read, or flag a message as being unread. With respect to the “delay reply/delay send” option, the multi-protocol, multi-format communication system may determine, based on the determined outgoing message format and protocol, that a particular communication in a particular format should be delayed before being sent to the recipient. For example, a video or voice message may not be appropriate to send at midnight, and so the system may delay sending the message until such time as the recipient is more likely to be awake, e.g., 9:00 am. On the other hand, the outgoing message is in text format and being delivered via the SMS protocol, sending the message at midnight may be more socially-appropriate. Delay reply/delay send may also take into account the time zone of the recipient and choose a more socially-appropriate delivery time for a message based on the recipient's local time.
Finally, moving down to row 312, the ‘grayed-out’ characteristic of the row may be used to indicate that there are no remaining unread/unopened messages of any format or protocol type remaining from a particular sender. Alternately, each message type may be individually grayed out, indicating that there are no new messages of a particular type. It is to be understood that the use of a grayed out row is merely exemplary, and that any number of visual indicators may be used to inform the user of the device that no unread messages remain.
As may now be appreciated, the multi-protocol, person-centric, multi-format inbox feed 300 of
In other embodiments, users may also select their preferred delivery method for incoming messages of all types. For example, they can choose to receive their email messages in voice format or voice messages in text, etc.
Referring now to
Referring now to
Referring now to
Multi-Protocol, Multi-Format Communication Composition User Interface
Referring now to
Message box 396 may be used by the user to enter his or her message any desired communications format or protocol that the system is capable of handling. For example, a text message may be entered by activating icon 397 and using an on-screen keyboard or the like. Alternately, an audio message or a video message may be recorded by activating the other icons across the top row of message box 396. Once the message has been composed in the desired format, the user may utilize the row of icons 399 across the bottom of message box 396 to select the desired delivery protocol for the outgoing communication. As shown in
The selection of the “Optimal” delivery option may have several possible implementations. The selection of output message format and protocol may be based on, e.g., the format of the incoming communication, the preferred format or protocol of the recipient and/or sender of the communication (e.g., if the recipient is an ‘on-network’ user who has set up a user profile specifying preferred communications formats and/or protocols), an optimal format or protocol for a given communication session/message (e.g., if the recipient is in an area with a poor service signal, lower bit-rate communication formats, such as text, may be favored over higher bit-rate communications formats, such as video or voice), and/or economic considerations of format/protocol choice to the recipient and/or sender (e.g., if SMS messages would charge the recipient an additional fee from his or her provider, other protocols, such as email, may be chosen instead).
Other considerations may also go into the determination of an optimal delivery option, such as analysis of recent communication volume, analysis of past communication patterns with a particular recipient, analysis of recipient calendar entries, and/or geo-position analysis. Other embodiments of the system may employ a ‘content-based’ determination of delivery format and/or protocol. For example, if an outgoing message is recorded as a video message, SMS may be de-prioritized as a sending protocol, given that text is not an ideal protocol for transmitting video content. Further, natural language processing (NLP) techniques may be employed to determine the overall nature of the message (e.g., a condolence note) and, thereby, assess an appropriate delivery format and/or protocol. For example, the system may determine that a condolence note should not be sent via SMS, but rather translated into email or converted into a voice message. Thus, the techniques disclosed herein allow communications systems to become ‘message-first,’ as opposed to ‘protocol-first,’ eventually allowing consideration of message protocol to fall away entirely for the sender of the communication.
Another beneficial aspect of the multi-protocol, multi-format communication composition system described herein is the ability to allow the user to send one message to the same recipient in multiple formats and/or via multiple protocols at the same time (or with certain formats/protocols time delayed). Likewise, the multi-protocol, multi-format communication composition system also allows the user the ability to send one message to multiple recipients in multiple formats and/or via multiple protocols. The choice of format/protocol for the outgoing message may be made by either the system (i.e., programmatically) or by the user, e.g., by selecting the desired formats/protocols via the user interface of the multi-protocol, multi-format communication composition system.
When the user desires to transmit a user-generated message, e.g., via the exemplary user interface of
User Interface-Driven Search Query Generation
After some amount of time, the client device may poll the inbox feed application to determine whether there is a new UI displaying on the client device (Step 525). If there is a new UI being displayed on the client device, the process 500 may return to Step 505 so that the client application may create and send a new query to the central communications system server based on the currently-displayed UI. If, instead, there is not a new UI being displayed on the client device, the client application may determine whether a given time interval, t, has passed since the last query that was sent to the central communications system server (Step 530). If the time interval, t, has not passed since the last time the UI was updated, the client application may simply return to Step 525 and continue to poll the inbox feed application to determine whether there is a new UI displaying on the client device. If, instead, the time interval, t, has passed since the last time the UI was updated, the client application may simply return to Step 505 so that the client application may create and send a new query to the central communications system server based on the currently-displayed UI. It is to be understood that the exemplary method shown in flowchart 500 may also be achieved by use of a “push-based” system, too, wherein the inbox feed application may push information to the client device periodically without the need for the client device to poll the server.
The following examples pertain to further embodiments. Example 1 is a non-transitory computer readable medium that comprises computer executable instructions stored thereon to cause one or more processing units to receive a first message in a first digital format from a first user, the message directed to at least a second user; receive a selection of one or more desired recipients for an outgoing second message; receive the outgoing second message in a second digital format; and for each of the one or more desired recipients: determine a third digital format for the desired recipient to receive the outgoing second message in; determine a first protocol for the outgoing second message to be sent via; convert the outgoing second message from the second digital format to the third digital format if the second digital format is different than the third digital format; and direct the outgoing second message to be sent to the desired recipient in the third digital format via the first protocol, wherein the determination of the first protocol is based, at least in part, on one or more of the following criteria: the first digital format, the second digital format, the third digital format, a preference of the desired recipient, a preference of the second user, and a capability of the desired recipient
Example 2 includes the subject matter of example 1, wherein the instructions to receive a selection of one or more desired recipients for an outgoing second message further comprise instructions to receive a selection of a particular protocol for at least one of the one or more desired recipients and to use the selected particular protocol as the first protocol for the respective desired recipients.
Example 3 includes the subject matter of example 1, wherein the second digital format and the third digital format are the same.
Example 4 includes the subject matter of example 1, wherein the second digital format and the third digital format are different.
Example 5 includes the subject matter of example 1, further comprising instructions stored thereon to cause the one or more processing units to, for at least one of the one or more desired recipients: determine a fourth digital format for the at least one of the one or more desired recipients to receive the outgoing second message in; determine a second protocol for the outgoing second message to be sent via; convert the outgoing second message from the second digital format to the fourth digital format if the second digital format is different than the fourth digital format; and direct the outgoing second message to be sent to the at least one of the one or more desired recipients in the fourth digital format via the second protocol, wherein the first protocol is different than the second protocol.
Example 6 includes the subject matter of example 1, wherein one of the one or more desired recipients is the first user, and wherein the determination of the third digital format for the first user comprises determining to use the first digital format.
Example 7 includes the subject matter of example 1, wherein one of the one or more desired recipients is the first user, and wherein the determination of the third digital format for the first user comprises determining to use the first digital format.
Example 8 includes the subject matter of example 1, wherein the instructions to convert the outgoing second message from the second digital format to the third digital format comprise instructions to perform a text-to-speech conversion on the outgoing second message.
Example 9 includes the subject matter of example 1, wherein the determination of the first protocol for at least one of the one or more desired recipients is further based, at least in part, on an economic cost of sending a message via the first protocol.
Example 10 includes the subject matter of example 5, further comprising instructions stored thereon to cause the one or more processing units to, for at least one of the one or more desired recipients: direct the outgoing second message to be sent to the desired recipient via the first protocol at a first time; and direct the outgoing second message to be sent to the desired recipient via the second protocol at a second time, wherein the first time is different than the second time.
Example 11 is an apparatus, comprising: a display; a memory; and one or more processing units, communicatively coupled to the memory, wherein the memory stores instructions to configure the one or more processing units to: receive a first message in a first digital format from a first user, the message directed to at least a second user; receive a selection of one or more desired recipients for an outgoing second message; receive the outgoing second message in a second digital format; and for each of the one or more desired recipients: determine a third digital format for the desired recipient to receive the outgoing second message in; determine a first protocol for the outgoing second message to be sent via; convert the outgoing second message from the second digital format to the third digital format if the second digital format is different than the third digital format; and direct the outgoing second message to be sent to the desired recipient in the third digital format via the first protocol, wherein the determination of the first protocol is based, at least in part, on one or more of the following criteria: the first digital format, the second digital format, the third digital format, a preference of the desired recipient, a preference of the second user, and a capability of the desired recipient.
Example 12 includes the subject matter of example 11, wherein the instructions to receive a selection of one or more desired recipients for an outgoing second message further comprise instructions to receive a selection of a particular protocol for at least one of the one or more desired recipients and to use the selected particular protocol as the first protocol for the respective desired recipients.
Example 13 includes the subject matter of example 11, wherein the second digital format and the third digital format are the same.
Example 14 includes the subject matter of example 11, wherein the second digital format and the third digital format are different.
Example 15 includes the subject matter of example 11, wherein the instructions stored on the memory further comprise instructions to cause the one or more processing units to, for at least one of the one or more desired recipients: determine a fourth digital format for the at least one of the one or more desired recipients to receive the outgoing second message in; determine a second protocol for the outgoing second message to be sent via; convert the outgoing second message from the second digital format to the fourth digital format if the second digital format is different than the fourth digital format; and direct the outgoing second message to be sent to the at least one of the one or more desired recipients in the fourth digital format via the second protocol, wherein the first protocol is different than the second protocol.
Example 16 includes the subject matter of example 11, wherein one of the one or more desired recipients is the first user, and wherein the determination of the third digital format for the first user comprises determining to use the first digital format.
Example 17 includes the subject matter of example 11, wherein the instructions to direct the outgoing second message to be sent to the desired recipient in the third digital format via the first protocol comprise instructions to delay the sending to the desired recipient for a first amount of time.
Example 18 includes the subject matter of example 11, wherein the instructions to convert the outgoing second message from the second digital format to the third digital format comprise instructions to perform a text-to-speech conversion on the outgoing second message.
Example 19 includes the subject matter of example 11, wherein the determination of the first protocol for at least one of the one or more desired recipients is further based, at least in part, on an economic cost of sending a message via the first protocol.
Example 20 includes the subject matter of example 15, wherein the instructions stored on the memory further comprise instructions to cause the one or more processing units to, for at least one of the one or more desired recipients: direct the outgoing second message to be sent to the desired recipient via the first protocol at a first time; and direct the outgoing second message to be sent to the desired recipient via the second protocol at a second time, wherein the first time is different than the second time.
Example 21 is a computer-implemented method of communicating digital information, comprising: receiving a first message in a first digital format from a first user, the message directed to at least a second user; receiving a selection of one or more desired recipients for an outgoing second message; receiving the outgoing second message in a second digital format; and for each of the one or more desired recipients: determining a third digital format for the desired recipient to receive the outgoing second message in; determining a first protocol for the outgoing second message to be sent via; converting the outgoing second message from the second digital format to the third digital format if the second digital format is different than the third digital format; and directing the outgoing second message to be sent to the desired recipient in the third digital format via the first protocol, wherein the determination of the first protocol is based, at least in part, on one or more of the following criteria: the first digital format, the second digital format, the third digital format, a preference of the desired recipient, a preference of the second user, and a capability of the desired recipient.
Example 22 includes the subject matter of example 21, wherein the act of receiving a selection of one or more desired recipients for an outgoing second message further comprises receiving a selection of a particular protocol for at least one of the one or more desired recipients and using the selected particular protocol as the first protocol for the respective desired recipients.
Example 23 includes the subject matter of example 21, further comprising, for at least one of the one or more desired recipients, the acts of: determining a fourth digital format for the at least one of the one or more desired recipients to receive the outgoing second message in; determining a second protocol for the outgoing second message to be sent via; converting the outgoing second message from the second digital format to the fourth digital format if the second digital format is different than the fourth digital format; and directing the outgoing second message to be sent to the at least one of the one or more desired recipients in the fourth digital format via the second protocol, wherein the first protocol is different than the second protocol
Example 24 includes the subject matter of example 21, wherein the act of directing the outgoing second message to be sent to the desired recipient in the third digital format via the first protocol comprises delaying the sending to the desired recipient for a first amount of time.
Example 25 includes the subject matter of example 23, further comprising, for at least one of the one or more desired recipients, the acts of: directing the outgoing second message to be sent to the desired recipient via the first protocol at a first time; and directing the outgoing second message to be sent to the desired recipient via the second protocol at a second time, wherein the first time is different than the second time.
In the foregoing description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosed embodiments. It will be apparent, however, to one skilled in the art that the disclosed embodiments may be practiced without these specific details. In other instances, structure and devices are shown in block diagram form in order to avoid obscuring the disclosed embodiments. References to numbers without subscripts or suffixes are understood to reference all instance of subscripts and suffixes corresponding to the referenced number. Moreover, the language used in this disclosure has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter, resort to the claims being necessary to determine such inventive subject matter. Reference in the specification to “one embodiment” or to “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least one disclosed embodiment, and multiple references to “one embodiment” or “an embodiment” should not be understood as necessarily all referring to the same embodiment.
It is also to be understood that the above description is intended to be illustrative, and not restrictive. For example, above-described embodiments may be used in combination with each other and illustrative process steps may be performed in an order different than shown. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention therefore should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. In the appended claims, terms “including” and “in which” are used as plain-English equivalents of the respective terms “comprising” and “wherein.”