REAL-TIME MESSAGING METHOD AND APPARATUS
20180013704 · 2018-01-11
Inventors
- Thomas E. KATIS (Jackson, WY, US)
- James T. PANTTAJA (San Francisco, CA, US)
- Mary G. PANTTAJA (San Francisco, CA, US)
- Matthew J. RANNEY (Oakland, CA, US)
Cpc classification
G06Q10/107
PHYSICS
H04L65/61
ELECTRICITY
H04L69/16
ELECTRICITY
H04L51/04
ELECTRICITY
H04L51/046
ELECTRICITY
International classification
Abstract
A system and method for the late-biding of time-based media in real-time. With late binding, the sender may create time-based media before or at the same time an active delivery route to the recipient is discovered. As soon as the route becomes available, the media is transmitted. The existing DNS and email infrastructure is possibly used for route discovery, while any real-time transmission protocol may be used for the actual delivery of the media. “Progressive” emails may also be used for the real-time delivery of time-based media.
Claims
1. An application, embedded in a non-transitory tangible computer readable medium, the application intended to run on a client communication device and to support live video messaging, the application including: a messaging module that creates a video message in response to an input indicative of an intent to create and send video to one or more recipients, the video message having a message header containing recipient identification information for the one or more recipients, the recipient information uniquely identifying each of the one or more recipients among a community of users, wherein the messaging module is further arranged to at least partially process separately the message header and the video media of the video message by communicating the message header, including the recipient identification information, to a server node on a communication network before creation of the video media of the video media is complete, wherein the server node uses the recipient identifier information, before creation of the video media is complete, to determine a delivery route to one or more recipient communication devices associated with the one or more recipients so that the video media can be streamed to the one or more recipient communication devices as the video media is streamed by the client communication device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0020] The invention may best be understood by reference to the following description taken in conjunction with the accompanying drawings, which illustrate specific embodiments of the invention.
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030] Throughout the Figures, like reference numbers refer to like elements.
[0031] The above-listed figures are illustrative and are provided as merely examples of embodiments for implementing the various principles and features of the present invention. It should be understood that the features and principles of the present invention may be implemented in a variety of other embodiments and the specific embodiments as illustrated in the Figures should in no way be construed as limiting the scope of the invention.
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
[0032] The invention will now be described in detail with reference to various embodiments thereof as illustrated in the accompanying drawings. In the following description, specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art, that the invention may be practiced without using some of the implementation details set forth herein. It should also be understood that well known operations have not been described in detail in order to not unnecessarily obscure the invention.
I. The Use of the Email and DNS Infrastructure to Define the Routing for the Delivery of Messages Containing Time-Based Media Using a Near Real-Time Communication Protocol for the Actual Delivery of the Media
[0033] Referring to
[0034] The Servers 16A, 16B, 16C and 16D are each configured to provide one or more services to Users A, B, C and D respectively. In this example, Server A defines Domain A and provides User A with the standard email delivery service using SMTP (or a similar proprietary or non-proprietary service) and MX DNS records, hereafter referred to as “MX”. Server A further provides User A with a real-time communication service, hereafter referred to as “RVX”. Server 16B defines Domain B and provides User B with the real-time communication service RVX, but not the email service MX. Server 16C defines Domain C and provides User C with the email service MX, but not the real-time domain RVX service. Server 16D does not provide user D with either the real-time communication service RVX nor the email domain MX service, but possibly other services that are not identified because they are not relevant.
[0035] In one embodiment, the real-time service RVX may rely on any communication protocol that allows users to communicate time-based media in near real-time, but does not require the recipient to review the time-based media in a near real-time mode. Known protocols with these properties include the Cooperative Transmission Protocol (CTP) described in detail in the U.S. applications Ser. No. 12/028,400 and Ser. No. 12/192,890 or the near real-time synchronization protocol of voice or other time-based media as described in U.S. application Ser. Nos. 12/253,816, 12/253,833 and 12/253,842. The above-listed U.S. applications are assigned to the assignee of the present invention and are incorporated herein by reference for all purposes.
[0036] In alternate embodiments, the RVX service may rely on other communications protocols, individually or in combination, that provide near real-time communication, such as SIP, RTP, Skype, VoIP, etc.
[0037] The communication devices 14A through 14D may each be any type of communication device, such as land-line telephones, VoIP telephones, cellular radios, satellite radios, military or first responder radios, mobile Internet devices, or just about any other type of communication device. In addition, a given user might have multiple communication devices 14. For example, a user may have one or more of the following; a home computer, a work computer, a Push to Talk radio, a mobile phone or a personal digital assistant (PDA). Regardless of the number of communication devices 14 each user A, B, C and D has, each will operate essentially the same and receive the services provided by the servers 16A, 16B, 16C and 16D as described herein respectively.
[0038] It should be noted that the system 10 as illustrated has been greatly simplified compared to what would typically be implemented in actual embodiments. For the sake of illustration, the RVX and MX services as (or not) provided to Users A, B, C and D as listed above have been purposely selected to highlight and describe certain features and principles of the invention. In actual embodiments, however, there would likely be a significantly larger number of users, each with one or more communication devices 14 and associated servers on the network 12, providing a variety of services to each user. In addition, any combination ranging from a single server or a suite of servers 16 may be included on the network 12 to provide the RVX and/or MX for one to multiple users respectively. The communication devices 14A, 14B and 14C and the servers 16A, 16B and 16C may also communicate with one another in a manner similar to that described above using DNS, SMTP, or other proprietary or non-proprietary email protocols for route discovery across one or more hops on the network 12.
[0039] The delivery route for a message to a recipient in the same domain is typically delivered to an inbox on the same server 16 or an associated server in the same domain. A message sent to a recipient in another domain will typically be sent to the email server of the recipient via one or more hops across the network 12. With each hop, the media is transmitted using the real-time protocol as soon as the delivery path to the next hop is discovered. If multiple hops are required, then media is typically being transmitted between hops using the real-time protocol before the complete delivery route to the recipient is know (i.e., the path through subsequent hops). This differs significantly from convention emails, where the body of the email is typically first received in full and stored at each hop and forwarded to the next hop only after the route to the next hop is discovered.
[0040] Referring to
[0041] Referring to
[0042] The start function elements 36/54 and the end function elements 38/56 of the mobile device 20 and computer 40 are meant to be symbolic of their respective functions. It is not necessary for mobile device 20, computer 40, or any other type of communication device 14, to physically include start and end buttons per se. Rather, it should be understood that each of these functions might be implemented in a variety of ways, for example, by entering a voice command, a predefined keystroke or command using a touch screen or other input device such as a mouse, stylus or pointer, etc. In one specific embodiment, the start and/or end functions may be implemented by default. In other words, the start function may automatically be implemented by the creation of media after the email address of a recipient is defined. For example, a sender may select a recipient from their contacts list, and then begin talking or creating other time-based media. By virtue of defining the recipient and the creation of media, the “start” function 34 may automatically be implemented. Similarly, the end function may be implemented by default. After the sender stops creating media, the end function may automatically be implemented after a predetermined period of time.
[0043] In one non-exclusive embodiment, the network 12 uses the existing email infrastructure, including the globally recognizable email addresses of the recipient users and DNS for route discovery, while using a near real-time RVX protocol for the actual transport of messages containing time-based media to the addressed recipient once the route is discovered. Like conventional emails, each message relies on a header that defines, among other things, a globally addressable email address of one or more recipients for routing purposes. Unlike conventional store and forward emails, however, the time-based media of the message is transmitted using a near real-time RVX protocol. As a result, time-based media may be simultaneously and progressively transmitted across the network 12, as the sender creates the media. In addition, the recipient may optionally simultaneously and progressively render the time-based media as it is received over the network.
[0044] When two or more parties are conversing (e.g., generating and reviewing time-based media) at approximately the same time, the network 12 is supporting full-duplex, near real-time communication, using one or more RVX protocol(s) for media delivery, while using the existing email infrastructure and DNS for routing. With full duplex real-time communication, the user experience is very similar to a conventional telephone conversation, except the hassles of dialing a telephone number and waiting and listening to the phone ring while a circuit connection is established is avoided.
[0045] Alternatively, if the recipient does not reply at approximately the same time, then the user experience is similar to an asynchronous messaging system, such as voice mail, but again without the hassles of dialing the telephone number of the recipient, listening to the phone ring while the establishment of a circuit connection is attempted, and then the eventual rolling-over into the voice mail system of the recipient. On the contrary, the sending party simply has to select or otherwise define the email address of the recipient and then start generating media. The media is routed to the recipient automatically without waiting for a circuit connection to be established.
[0046] Referring to
[0047] As soon as the email address of the recipient is defined, two operations are performed. A message header is created (step 62) and the defined email address is included in a header field (i.e., the “To”, CC, and/or “BCC” field). In addition, the route for delivering the media associated with the message to the globally addressed recipient is immediately discovered using a DNS lookup result. The result can be either an actual DNS lookup or a cached result from a previous lookup. Thereafter, the start function 36/54 is initiated, either manually or by default, and the user may begin creating time-based media (step 64), for example by speaking into the microphone, generating video, or both. The time-based media is then progressively and simultaneously encoded (step 66), transmitted (step 68) over the network 12 using an RVX protocol using the discovered delivery route, and optionally persistently stored on the device 14 (step 70). It should be noted that although these steps 62 through 70 are illustrated in the diagram in a sequence, for all practical purposes, they occur at substantially the same time. As the media is created, the RVX protocol progressively and simultaneously transmits the media across the network 12 to the recipient, as the route is typically discovered without any perceptible delay to the sending user.
[0048] The time-based media of outgoing messages may optionally be persistently stored on the sending communication device 14 for a number of reasons. For example, if time-based media of a message is created before the delivery route is discovered, then the time-based media may be transmitted from storage when the delivery route at least to the next hop is discovered. If time-based media is still being created after the route is discovered, then the time-based media is transmitted progressively and simultaneously as the media is being created. Alternatively with the storage of time-based media, the sender may review stored outgoing messages at an arbitrary later time. A message may also be created and stored when the communication device 14 is not connected to the network 12, where connected is defined as the ability to send messages over the network and not connected is defined as the inability to send messages over the network. When the device 14 later connects, the message may be transmitted to the intended recipient from storage, using either an RVX protocol or as an attachment to an email.
[0049] Referring to
[0050] In certain embodiments, the steps 62a through 62e may be performed on a sending communication device 14. In other embodiments, the sending communication device may send some or all of the message header information to a server 16, where the steps 62a through 62e are performed. The time-based media of the message may also be optionally stored on a server 16 for later review by the sending user or transmission to the recipient.
[0051] In the embodiments described above, a message header with various fields including a To, From, Message ID number, Conversation Name, and message Start and End time is provided. It should be understood that not all of these fields are necessary, and other fields may be included. The only required information is at least one recipient specified in one of the To, CC, or BCC fields, which defines the globally addressable email address of a recipient. The other fields are all optional.
[0052] The format of the message header is also variable. In one embodiment, the structure of the message header may be similar to that used with conventional emails or the enveloped used with emails. In other embodiments, the structure of the message header may take any form that is suitable for transmitting the globally addressable email address of the recipient(s), along with possibly other header information, across the network 12. While specific email header fields are discussed for specifying recipients, the actual header field containing the recipient address information may not necessarily include the globally addressable email address of the recipient per se. As is well known in the art, an “envelope recipient” may be used to specify the email address of the recipient, even though the envelope recipient may differ from the recipients listed in the email headers. Thus as used herein, the term message header should be broadly construed to include both envelope information and conventional message or email headers including any number of fields, such as but not limited to those specified in RFC 822 or 5322. In addition, the usage of the terms “addressing” or “globally addressable email address” should be broadly construed to include any addressing method, including usage in conventional message or email headers or in a message envelope.
[0053] The network 12, under certain circumstances, may deliver messages containing time-based media that can (i) be simultaneously and progressively transmitted to a recipient over the network 12 and (ii) reviewed in near real-time by the addressed recipient as the time-based media is being created and sent by the sending user. Under other circumstances, the messages cannot be delivered in real-time. Both the near real-time and non real-time scenarios are discussed below with regard to
[0054] Referring to
[0055] In the initial step 82, server 16A receives the message header (or the header information allowing the server to perform some or all of the steps 62a-62e). As soon as user B′s globally addressable email address (userB@DomainB) is received, server 16A requests that DNS server 18 using standard DNS protocols perform a DNS lookup of domain B or accesses a previously cached lookup for the RVX of domain B (step 84). Regardless of how obtained, the result is positive (decision 86) since the RVX exists for domain B. Typically at substantially the same time, the server 16A receives the time-based media of the message. As soon as the delivery path to server 16B is at least partially known, the media is progressively and simultaneously sent using the RVX protocol from the server 16A to server 16B. The time-based media may be transmitted across one or more hops between the two servers 16A and 16B. At each hop, a DNS lookup result is used to discover the delivery route to the next hop, while the RVX protocol is used to deliver the time-based media to each next hop.
[0056] In one embodiment, the media is simultaneously and progressively transmitted to the communication device 14B of the recipient when the time-based media arrives at server 16B. The recipient is notified of the incoming message, and in response, the recipient may elect to simultaneously review the media in the near real-time mode as the media of the message is progressively received.
[0057] In an alternative embodiment, the media of the message is also optionally placed in an inbox and persistently stored on the recipient device 14B. With the persistent storage of the message, the recipient has the option of reviewing the media in the near real-time mode as the media is received or at an arbitrary later time from storage.
[0058] In yet another embodiment, the message may also be stored in an inbox located at the server 16B associated with the user B. In this manner, the user of device 14B may access the message in either real-time or at an arbitrary later time. As noted above, user B is not provided the MX service and therefore cannot receive emails. But in situations where recipient can receive emails, the message can be encapsulated into a file and the file attached to an email that is forwarded to the inbox of the recipient.
[0059] In yet other embodiments, the media of the message may be stored in an out-box of the sending user, either located on the user's sending communication device 14A, or on the server 16A associated with the sender.
[0060] Referring to
[0061] Referring to
[0062] The scenario described with regard to
[0063] In an alternative embodiment, the communication devices 14A through 14C may be arranged in a peer-to-peer configuration. With this arrangement, at least the sending communication devices 14 are capable of performing the RVX and/or MX lookups on DNS server 18 directly and caching the results, without the aid of an intervening server 16 to perform the these functions. The communication devices 14 may also be capable of progressively transmitting the media of the messages directly to other communication devices. Depending on whether the recipient is a member or not of the RVX and/or MX domains, the sending communication device 14A will either (i) progressively transmit the time-based media of a message to the recipient over the network 12 as the media is created; (ii) encapsulate the time-based media of the message into a file and transmit an email including the file as an attachment to the recipient using SMTP or a similar proprietary protocol; (iii) or receive an error message if an invalid email address was used.
[0064] Referring to
[0065] On the other hand, if the recipient does not receive the RVX service (decision 102), then the media of the message is delivered by email, provided the recipient receives the MX domain service. The time-based media is encapsulated into a file and attached to an email (step 108). When the message is complete, the email is transmitted using the route defined by the MX lookup result (step 109) to the inbox of the recipient. In various embodiments, the inbox may be located on the device 14 of the recipient, a server 16 associated with the recipient, or both.
[0066] In situations where both peers are running an email client, media may be sent in the form of an attachment to an email from the sending communication device 14 to the receiving communication device 14. This differs from known telephone messaging systems, where a server, as opposed to a sending peer, emails a voice message to the recipient. In certain embodiments, an attachment may be substituted or augmented by a link to a web page containing the time-based media, as described in more detail below.
[0067] It should be noted that the discussion above with regard to
[0068] Referring to
[0069] With either the server or peer-to-peer models described above, the RVX lookup result is initially used to deliver the time-based media. If the RVX attempt fails, then the MX result is used as a backup. With this arrangement, a conventional email with the time-based media included in an attachment and/or web link is used to deliver the media in circumstances where the recipient is not provided RVX service. The email may be created either on a server or on the sending device.
II. Delivery Options
[0070] Referring to
III. Email Protocol Modifications and Progressive Emails
[0071] The messages as described above are routed using globally addressable email address and the DNS infrastructure for defining a delivery route, while using an RVX protocol for the actual delivery of the time-based media in near real-time. Although the SMTP and other proprietary and non-proprietary email protocols as currently defined and used are essentially store and forward protocols, with certain modifications, these protocols can be used as an RVX messaging protocol for the near real-time delivery of time-based media as contemplated herein. With conventional emails, the media content must be composed in full and packaged before the email can be sent. On the receiving end, the email must be received in full before the recipient can review it. As described in detail below, SMTP, Microsoft Exchange or any other proprietary email protocol may be used for creating “progressive” emails, where media may be sent in real-time.
[0072] The existing email infrastructure can be used to support the real-time transmission of time-based media by modifying the way the SMTP, Microsoft Exchange or other proprietary and non-proprietary email protocols (hereafter generically referred to as an email protocol or protocols) are used on the sending side and modifying the way that emails are retrieved from the server on the receiving side. Current email protocols do not strictly require that the entire message be available for sending before delivery is started, although this is typically how email protocols are used. Time-based media can therefore be delivered progressively, as it is being created, using standard email protocols.
[0073] Email is typically delivered to a recipient through an access protocol like POP or IMAP. These protocols do not support the progressive delivery of messages as they are arriving. However, by making modifications to these access protocols, a message may be progressively delivered to a recipient as the media of the message is arriving over the network. Such modifications include the removal of the current requirement that the email server know the full size of the email message before the message can be downloaded to the client. By removing this restriction, a client may begin downloading the time-based media of an email message as the time-based media of the email message is received at the server over the network.
[0074] Referring to
[0075] Referring to
[0076] With progressive emails 130, an email protocol session is established with the email server associated with the sender as soon as the email address of the recipient is defined. This differs from conventional emails 120, where the email protocol session is typically initiated only after the email has been composed in full and the sender implements the “send” function. As a result, the delivery route can be discovered either before or concurrent with the progressive transmission of time-based media as it is being created. In situations where the time-based media may be created before the session is established, the time-based media may be temporarily and/or persistently stored as the media is created. The stored media may then be progressively transmitted from storage once the protocol session with the email server is established.
[0077] The End date/time of email 130 may be either defined or open-ended. When the sender actively implements the end function 38/56 on the communication device 14, then the end time of the email 130 is defined. If the end function 38/56 is never implemented, then the duration of the email 130 is “open-ended” and does not necessarily have a defined end date/time. Open-ended emails 130 are therefore typically terminated by default after a predetermined period of time where no media is created.
[0078] In summary, progressive emails 130 can be sent using SMTP, Microsoft Exchange or any other proprietary or non-proprietary email protocol by implementing the above-described modifications. Similarly, recipients may simultaneously and progressively review the time-based media of progressive emails 130 by modifying access protocols such as POP, IMAC and the like. Together, these modifications enable the use of email addressing, email protocols, DNS and DNS protocols, and the existing email infrastructure to support real-time communication of time-based media.
IV. Late Binding of Recipient Addresses For Real-time Voice and Other Time-Based Media
[0079] With the messages (as described with regard to
V. Conversations
[0080] The messaging methods and systems as described (with regard to
[0081] Regardless of the embodiment, the “reply” function may be implemented in a variety ways. For example, the recipient may enter an explicit reply command into their communication device 14, such as by using a predefined voice or keystroke command, or entering a command through a touch screen. Alternatively, a reply message or email may be generated automatically when the recipient begins speaking or generating other time-based media in response to a message or email 130. When a reply message is automatically created, the email address of the original sender is used for addressing the reply message.
[0082] In yet other embodiments, the RVX protocol used for sending and receiving the messages of a conversation between participants in the real-time mode do not necessarily have to be the same. For example, one participant may send messages using one of the CTP, synchronization, progressive emails 130, VoIP, SIP, RTP, or Skype protocols, whereas other participants may use a different one of the listed protocols, provided some type of a common conversation identifier is used. Any messages, regardless of the protocol used for transmission, are linked or threaded together using the unique conversation identifier.
[0083] In various further embodiments, conversations can be defined using a variety of criteria. For example, conversations may be defined by the name of a person (e.g., mom, spouse, boss, etc) or common group of people (e.g., basketball team, sales team, poker buddies, etc). Conversations may also be defined by topic, such as fantasy football league, ACME corporate account, or “skunk works” project. Regardless of the contextual attribute used to define a conversation, the ability to link or organize the messages of a particular conversation together creates the notion of a persistent or ongoing conversation. With a conventional telephone call, the conversation typically ends when the parties hang up. There is no way to contextually link, organize and possibly store the spoken words of multiple telephone exchanges between the same parties. On the contrary, conversations, as defined herein, are a set of common messages linked together by a common attribute. So long as messages are added to the conversation, the conversation is continuous or ongoing. This attribute makes it possible for a participant to contribute to a conversation at any arbitrary time. For example, a user may select a conversation among a list of conversations and contribute a message to the selected conversation at anytime. The message is then sent to all the conversation participants. Messages are therefore not necessarily sent when either a conversation is first created or in reply to an incoming message.
VI. Implementation Embodiments
[0084] The messaging methods as described with regard to
[0085] In yet another embodiment, the messaging and progressive email 130 methods may be embedded in a software application that is intended to be loaded into and executed on conventional telephones, mobile or cellular telephones and radios, mobile, desktop and laptop computers. In each of these cases, the application enables the device to send, receive and process messages and progressive emails 130 as described herein.
[0086] In yet other implementations, conventional email clients can be modified to create, receive and process progressive emails 130. The modified email client may alternatively reside on a server on the Internet or other proprietary or non-proprietary network, on sending or receiving devices, or both.
[0087] Although the above-described systems and methods were generally described in the context of a single sender and a single recipient (as discussed with regard to
[0088] Also although the above-described email methods were generally described in the context of “globally” unique identifiers, such as an email address, it is necessary to note that such identifiers do not necessarily have to be a global. In alternative embodiments, the identifier may uniquely identify a user within a defined non-global community of users. For example, a community, such a social networking website, may issue each user a unique identifier within the community. Users within the community can then communicate with one another, as described herein with regard to
[0089] It also should be noted that the system and methods as described herein are not intended for use with only “live” real-time transmission. The aforementioned systems and methods as described with respect to
[0090] The time-based media exchanged by the messages and/or emails is not limited to just voice or video. In addition, the time-based media may be delivered to a recipient in a different form than it was created. For example, a voice message may be transcribed into a text file or a message in English may be translated into another language before being delivered to the recipient. Any media that varies over time, such as sensor data, GPS or positional information, may also be transmitted.
[0091] While the invention has been particularly shown and described with reference to specific embodiments thereof, it will be understood by those skilled in the art that changes in the form and details of the disclosed embodiments may be made without departing from the spirit or scope of the invention. It is therefore intended that the invention be interpreted to include all variations and equivalents that fall within the true spirit and scope of the invention, as provided in the attached claims.