Patent Description:
Interactive voice response (IVR) is a technology that allows a human caller to call and communicate with a computer in a telephony environment. In an IVR telephony environment, the computer typically outputs prerecorded voice audio prompts that the human caller typically answers using dual-tone multi-frequency signaling (DTMF) tones input via a keypad of the human caller's telephone. Some IVR telephony environments allow human callers to answer the computer's prerecorded voice audio prompts with regular speech, which the computer then attempts to interpret via voice recognition.

IVR telephony systems are used by companies to service higher call volumes at lower cost. IVR telephony systems are often used by companies to answer common questions, such as business hours, without such calls needing to go through to a human operator. IVR telephony systems are also often used to determine why a human caller is calling so that the human caller can be directed to a human operator that might be able to assist the human caller. However, callers often complain that traditional IVR systems can often waste time by forcing the caller to listen to a lengthy recording reading every option of an extensive menu before the caller can make a selection. Callers can also often be placed on hold for long periods of time waiting to speak to a human operator after already having spent a long period of time navigating the IVR system, increasing their frustration.

SMS (short message service) is a text messaging service enabling text-based communication between two mobile phone devices using standardized communication protocols. MMS (multimedia message service) is a messaging service enabling communication between two mobile phone devices that sends images as well as text using standardized communication protocols. Rich text messaging services, such as Apple® Business Chat®, Facebook® Messenger®, or WhatsApp®, similarly enable image and text communication between devices, though some of these messaging services also enable group messaging between more than two devices and transfer of videos as well as images. These rich text messaging services, however, are not standardized across all devices, and typically require users to be subscribed to a corresponding messaging service. Messaging services, whether SMS or rich text messaging services, are convenient for users in that they enable asynchronous communication, alerting users when a message comes in without the users having to pay constant attention as they would during a traditional audio-based telephone phone call.

The patent publication documents <CIT>, <CIT>, <CIT> and <CIT> represent examples of background art.

There is a need in the art for improved and intelligent integration between telephony environments and messaging environments.

Techniques and technologies are described for context-aware caller redirection from a telephony environment to a messaging environment.

In one example, a method for context-aware caller redirection from a telephony environment to a messaging environment is provided according to claim <NUM>.

In another example, a system for context-aware caller redirection is provided according to claim <NUM>.

In another example, a non-transitory computer-readable medium is provided according to claim <NUM>.

A redirection and messaging system receives telephony information identifying a caller and call context from a telephony system. The system selects one of a plurality of messaging operators based on the call context, optionally sends an introductory message to the caller via a messaging service, and generates a message interface for the selected message operator. The message interface includes the caller and call context and any messages sent between the caller and the selected message operator, with an input interface allowing the selected message operator to input and send messages to the caller.

<FIG> illustrates a system architecture for intelligent redirection of callers from a telephony environment to a messaging environment.

The system architecture of <FIG> includes a user <NUM>, also referred to as caller <NUM>, and an associated mobile device <NUM>, such as a smartphone. The user <NUM> uses the mobile device <NUM> to initiate a phone call <NUM> to a telephony system <NUM>. Alternately, the telephony system <NUM> may initiate the phone call <NUM> to the mobile device <NUM>. The telephony system <NUM> may be an interactive voice response (IVR) telephony system <NUM>.

During the phone call <NUM>, the telephony system <NUM> may convey audio to the mobile device <NUM>. This audio may include pre-recorded audio messages, such as menu options. This audio may include audio messages that the telephony system <NUM> at least partially generates using a text-to-speech algorithm, for example one in which the telephony system <NUM> generates audio that includes the user's name or other information identifying the user <NUM>, or one in which the telephony system <NUM> generates audio that includes an account balance or other information associated with an object or service owned by the user <NUM> or otherwise associated with the user <NUM>.

The user <NUM> may respond to the audio from the telephony system <NUM> by providing one or more inputs at the mobile device <NUM> (e.g., by pressing any combination of any of the numbers zero through nine and/or the point or star/asterix symbols) and thereby sending dual-tone multi-frequency signaling (DTMF) tones to the telephony system <NUM>. These inputs/tones may correspond to menu options, such as true-false style responses or multiple-choice-style responses, for example. These inputs/tones may correspond to numeric entries, such as identification numbers or card numbers or account numbers, for example. The user <NUM> may alternately or additionally respond to the audio from the telephony system <NUM> by speaking a word or phrase, which the telephony system <NUM> may interpret via a speech-to-text algorithm. The telephony system <NUM> and user <NUM> / mobile device <NUM> may thus have a back-and-forth conversation including one or more audio messages sent from the telephony system <NUM> to the mobile device <NUM> and one or more DTMF messages or voice messages (e.g., the voice of the user <NUM>) sent from the mobile device <NUM> to the telephony system <NUM>. At least a subset of these messages may alternate so as to form a back-and-forth conversation between the telephony system <NUM> and the mobile device <NUM>. In this way, the telephony system <NUM> may gather information from the user <NUM> in an automated manner, such as by having the user <NUM> select options from one or more menus.

These menus may, for example, allow the user <NUM> to indicate to the telephony system <NUM> which of a number of languages are preferred, which of a number of reasons correspond to a reason why the user <NUM> called the telephony system <NUM>, which of a number of skills or areas of expertise would be helpful for a human operator to have in order to properly help the user <NUM>, information identifying the user, information identifying an object or service owned by or otherwise associated with the user, or combinations thereof. Information identifying the user may include, for example, the user's first name, middle name, last name, mailing address, residence address, email address, username, password, reference number/code, social security number, driver's license number/code, government issued identification number/code, or combinations thereof. Information identifying an object or service owned by or otherwise associated with the user may include, for example, an account number, a product or service serial number, a credit card number, a debit card number , an ATM card number, an insurance account/policy/group number, a bank account number, a bank routing number, or combinations thereof.

During the phone call <NUM>, the telephony system <NUM> may connect the user <NUM> to one or more human or virtual telephony operators <NUM> by connecting the mobile device <NUM> to one or more telephony devices <NUM> (e.g., telephones with optional associated computer systems) associated with the one or more human or virtual telephony operators <NUM>.

Any information received by the telephony system <NUM> from the mobile device <NUM> during interactions between the telephony system <NUM> and the mobile device <NUM> / user <NUM> may be stored by the telephony system <NUM> as call context information. Likewise, information conveyed by the telephony system <NUM> to the mobile device <NUM> may also be stored by the telephony system <NUM> as call context information. This includes any interactions between the user <NUM> / mobile device <NUM> and the one or more telephony operators <NUM> / telephony devices <NUM>.

In some cases, one or more recordings of the phone call <NUM> and/or transcripts of recordings of the phone call <NUM> (e.g., generated using speech-to-text and/or previously known transcriptions of pre-recorded audio from the telephony system <NUM>) may be stored as call context information. This includes any interactions between the user <NUM> / mobile device <NUM> and the one or more telephony operators <NUM> / telephony devices <NUM>. The call context information can be included in a set of telephony data that the telephony system <NUM> sends to a redirection system <NUM> via one or more data transmissions <NUM>.

The telephony system <NUM> may receive a user/caller/device identifier associated with the user <NUM> and/or with the mobile device <NUM>. For example, the telephony service <NUM> may use caller identification to identify a phone number associated with the mobile device <NUM> and/or a subscriber identification module (SIM) card associated with the mobile device <NUM>. Caller identification may be referred to as caller ID (CID), calling line identification (CLI or CLID), calling number delivery (CND), calling number identification (CNID), calling line identification presentation (CLIP), or call display. Caller identification may include identification and transmission of a name associated with the telephone number, a service referred to as calling name delivery (CNAM). Any of these may be included as part of the caller identifier.

In some cases, the telephony system <NUM> may identify a type of the mobile device <NUM>, for example by identifying whether the mobile device <NUM> is in fact a mobile device such as a smartphone or, instead, a more traditional wired landline telephone, or cordless landline telephone. In countries with a "mobile range" of phone numbers, where numbers within this range are almost always mobile numbers, this is one way to check the device type. In countries without a "mobile range," a test SMS can be sent to the phone number to see whether a response is returned, or the telephony system <NUM> can look up the phone number is public or private databases of SMS-capable phone numbers. The telephony system <NUM> can check whether the phone number is valid, for example whether a numbering plan area code (NPA), central office exchange code (NXX), and/or line/subscriber number are valid alone and/or in combination.

The telephony system <NUM> can also inquire from third party / proprietary / specialized messaging services whether corresponding a messaging software application are present on the caller device corresponding to the phone number. For example, in some cases, the telephony system <NUM> can inquire from an Apple® server as to whether the phone number corresponds to a device that has a software application or other interface for Apple® iMessage® or Apple® Business Chat®. In some cases, the telephony system <NUM> can inquire from a Google® server as to whether the phone number corresponds to a device that has a software application or other interface for Google® Rich Communication Services (RCS) for Business Messaging®, Google® Jibe®, Google® Hangouts®, Google® Allo®, or Google® Duo®. In some cases, the telephony system <NUM> can inquire from a Facebook® server as to whether the phone number corresponds to a device that has a software application or other interface for Facebook® Messenger®, Instagram® Direct Messages®, or WhatsApp®. In some cases, the telephony system <NUM> can inquire from a Slack® server as to whether the phone number corresponds to a device that has Slack® Channels®. In some cases, the telephony system <NUM> can inquire from a Line® server as to whether the phone number corresponds to a device that has Line®. In some cases, the telephony system <NUM> can inquire from a Viber® server as to whether the phone number corresponds to a device that has Viber®. In some cases, the telephony system <NUM> can inquire from a telecommunications provider as to whether the phone number corresponds to a device that has a Rich Communication Services (RCS) system provided by that telecommunications provider.

These third party / proprietary / specialized messaging services may be generally referred to as messaging services other than SMS or MMS (or an open cross-platform version of RCS). These entities can check whether the mobile device <NUM> includes the corresponding software application by pinging the software application on the mobile device <NUM> and seeing whether a response is received to the ping. Lack of response within a predetermined time period may indicate that the software application is not stored on and/or not installed on the caller device, or is locked behind restrictions put in place on the caller device that prevent the software application from successfully responding to the ping (e.g., firewall restrictions preventing outbound data or operating system restrictions preventing certain types of processes). Receipt of a response within the predetermined time period may itself be an indicator that software application associated with the messaging service is installed on the mobile device <NUM>, though the response may instead be a response sent by the mobile device <NUM> indicating that the software application associated with the messaging service is not installed on the mobile device.

The response may also identify one or more settings/configurations of the software application, permissions given to the software application, or restrictions put on the software application by a firewall or operating system of the caller device or by the software application itself. For example, the response may identify whether the software application associated with the messaging service has permissions within the mobile device <NUM> to present notifications to the user <NUM> through the mobile device <NUM>, which may impact whether messaging should be used, as the user <NUM> might not see messages from the software application if the software application lacks notification permission. The third party / proprietary / specialized messaging service may then interpret the response to identify whether the caller device has stored and/or installed the software application corresponding to the messaging service, and any other information such as the settings / configurations, permissions, and/or restrictions. The telephony system <NUM> may alternately or additionally ping one or more of these messaging service software applications on the mobile device <NUM> itself, and receive and interpret the response itself to see whether the software application is installed on the mobile device <NUM> and whether it has notification permissions on the mobile device <NUM> (and/or any other information about settings / configurations, permissions, or restrictions), rather than having a third party perform the ping and receive/interpret the response.

Third party / proprietary / specialized messaging service entities often also possess the phone number corresponding to the mobile device <NUM> when the corresponding software application, which may for example be provided by the user to the entities for use with a <NUM>-factor authentication system involving a SMS message, a MMS message, or a phone call. In such cases, identifying whether the mobile device <NUM> has stored/installed the application may simply entail checking to see if such entities possess the phone number corresponding to the mobile device <NUM>, which may for example be stored in a database.

Any data discussed above with respect to caller identification, determining whether the caller device <NUM> is a smartphone or landline phone, determining whether a software application corresponding to a particular messaging service is stored and/or installed on the caller device <NUM>, and/or determining settings / configurations, permissions, or restrictions of the software device on the caller device <NUM> may be included as user/caller/device identifier and/or in a set of telephony data that the telephony system <NUM> sends to the redirection system <NUM> via one or more data transmissions <NUM>.

Any of this data discussed above with respect to caller identification, determining whether the caller device <NUM> is a smartphone or landline phone, determining whether a software application corresponding to a particular messaging service is stored and/or installed on the caller device <NUM>, and/or determining settings / configurations, permissions, or restrictions of the software device on the caller device <NUM>, may alternately be acquired by the redirection system <NUM> and/or messaging system <NUM> and/or messaging gateway <NUM> (or some combination thereof) instead of by the telephony system <NUM>. In such cases, the redirection system <NUM> and/or messaging system <NUM> and/or messaging gateway <NUM> (or some combination thereof) may optionally communicate this data back to the telephony system <NUM> via one or more communications <NUM> (optionally also via intermediate communications <NUM> and/or <NUM> and/or <NUM> and/or <NUM> and/or <NUM>).

Whenever there are multiple choices for possible messaging services to use, an optimal messaging service (and/or channel) may be selected by the redirection system <NUM>. The selection may alternately or additionally be performed by the telephony system <NUM>, one or more messaging gateway(s) <NUM>, and/or messaging system <NUM>. The optimal messaging service (and/or channel) may be the messaging service/channel that the user <NUM> is most likely to use, to see, to read, or some combination thereof. For example, when a particular caller device <NUM> has stored/installed thereon a software application associated with one messaging service, but lacks any software application associated with another messaging service, then the messaging service with the associated software application installed on the caller device <NUM> should be selected as the optimal messaging service and the messaging service without the associated software application installed on the caller device <NUM> should not be selected as the optimal messaging service. Settings, configurations, permissions, and restrictions may also play a role in selection of the optimal messaging service. For example, a messaging service whose associated software application on the caller device <NUM> has more permissions (such as notification permissions discussed above) and/or fewer restrictions (such as firewall restrictions discussed above) should be selected as the optimal messaging service while another messaging service whose associated software application on the caller device <NUM> has fewer permissions and/or more restrictions should not be selected as the optimal messaging service. A messaging service whose associated software application is configured with particular settings or configurations may also be favored for selection as the optimal messaging service - for example a messaging service for which the user/caller has completed a profile/account/login for the associated software application should be favored, and a messaging service whose associated software application is selected on the caller device as the default messaging application should be favored. If it can be determined how often a particular caller uses one messaging service versus another, the messaging service that the caller uses more often can also be used. An optimal messaging service may also be selected at least in part by the user, for example with the user making a selection after being provided a list by the telephony system <NUM> during the phone call <NUM> (or during a previous phone call or messaging session), where the list may have already been pre-narrowed based on any of the other considerations in the paragraph. An optimal messaging service may also be selected at least in part based on past/historical interactions with the caller <NUM> and/or the caller device <NUM> - for example, the caller <NUM> previously called using the caller device <NUM> and previously chose a particular messaging service - or previously initiated a messaging chat session using a particular messaging service - that particular messaging service may be selected as the optimal messaging service. Selection of the optimal messaging service may be based on messaging service preferences associated with and/or stored at the telephony system <NUM>, redirection system <NUM>, messaging system <NUM>, messaging gateway <NUM>, or some combination thereof. These messaging service preferences may rank messaging services based on capabilities of these messaging services, preferences of a messaging operator <NUM>, preferences of a telephony operator <NUM>, and/or preferences of a client using the telephony system <NUM>, redirection system <NUM>, messaging system <NUM>, messaging gateway <NUM>, or some combination thereof. For example, if a company that owns and operates a particular messaging service is a client of the redirection system <NUM>, it may store a preference indicating that the particular messaging service that the client owns and operates is to be selected as the optimal messaging service - always, or whenever possible, or just when all else is equal.

The redirection system <NUM> receives telephony information from the telephony system <NUM> via one or more communications <NUM>. This telephony information may include user/caller/device identifier information as discussed above, and may include call context information as discussed above. Examples of the telephony information are also illustrated in and discussed with respect to the "Caller Context" window <NUM> of <FIG>. In some cases, the redirection system <NUM> may gather some of the telephony information discussed above itself rather than receive it from the telephony system <NUM>. For example, the redirection system <NUM> may itself determine whether the mobile device <NUM> is in fact a mobile device such as a smartphone or, instead, a more traditional wired landline telephone, or cordless landline telephone. The redirection system <NUM> may likewise detect whether the mobile device <NUM> has a software application associated with a particular messaging service installed, and whether the software application associated with the messaging service has notification permissions on the mobile device <NUM>, as described above with respect to the telephony system <NUM>.

In response to receiving the telephony information from the telephony system <NUM>, the redirection system <NUM> and/or the messaging system <NUM> may send an introductory message to the mobile device <NUM>, either directly (not shown in <FIG>) or through a messaging gateway <NUM> as an intermediary device. The messaging gateway <NUM> assists in conveying the introductory message from the redirection system <NUM> (via communication channel <NUM>) or from the messaging system <NUM> (via communication channel <NUM>) to the mobile device <NUM> (via communication channel <NUM>). In some cases, the messaging gateway <NUM> may be used to then convey messages from the mobile device <NUM> back to the redirection system <NUM> and/or to the messaging system <NUM> and/or to the messaging device <NUM>. The messaging gateway <NUM> may convey further messages between the mobile device <NUM> and the redirection system <NUM> and/or the messaging system <NUM> and/or the messaging device <NUM>. In some architectures, the messaging gateway <NUM> may be unnecessary and therefore may be omitted or combined with one of the redirection system <NUM>, the messaging system <NUM>, and/or the messaging device <NUM>.

The messaging gateway <NUM> may be an SMS messaging gateway device, such as a GSM gateway appliance, a direct-to-short message service center (SMSC) gateway (Direct-to-SMSC), a Direct-to-SMS gateway, or a Spreadsheet-to-SMS gateway. The messaging gateway <NUM> may alternately or additionally include a MMS gateway and/or a rich communication services (RCS) gateway. Such a messaging gateway <NUM> may include one or more a separate hardware devices from the redirection system <NUM> and messaging system <NUM>, may include software running on the redirection system <NUM> and/or messaging system <NUM>, or some combination thereof. Thus, any tasks discussed herein as performed by the messaging gateway <NUM> may be understood to be alternately or additionally performed by the redirection system <NUM>, the messaging system <NUM>, and/or by the messaging device <NUM>.

The messaging gateway <NUM> may alternately or additionally include one or more servers associated with a third party messaging service, such as Apple® iMessage®, Apple® Business Chat® (ABC), Google® Rich Communication Services (RCS) for Business Messaging® (GRBM), Google® Jibe®, Google® Hangouts®, Google® Allo®, Google® Duo®, Facebook® Messenger® (FBM), WhatsApp®, Slack® Channels®, Skype® Instant Messenger®, Blackberry® Messenger®, Line®, Viber®, Rich Communication Services (RCS) provided by telecommunications provider(s), or similar services.

The redirection system <NUM> is connected to, and communicates with, a messaging system <NUM> via one or more communications <NUM>. Either the redirection system <NUM> or the messaging system <NUM> selects a particular message operator <NUM> of a number of possible message operators, for example from a database of possible message operators, optionally based on the call context. The redirection system <NUM> and/or messaging system <NUM> may select the selected message operator <NUM> based on a language, skill, or area of expertise that the selected message operator <NUM> has, or based on a geographic area that the selected message operator <NUM> is located in or otherwise associated with. For example, if the call context collected by the telephony system <NUM> indicates that the user <NUM> prefers Spanish rather than English, the redirection system <NUM> and/or messaging system <NUM> may select a message operator <NUM> who is identified as fluent in Spanish, for example in a database of selectable message operators. Similarly, if the call context indicates that the user <NUM> is calling for tech support for a particular product, the redirection system <NUM> and/or messaging system <NUM> may select a message operator <NUM> who is identified in the database of selectable message operators as having technical skills/expertise, and optionally as having technical skills/expertise relevant to that particular product. Sometimes, the redirection system <NUM> and/or messaging system <NUM> may select a message operator <NUM> at least in part simply based on availability, to ensure that no one message operator <NUM> has too much assigned, and to ensure that no caller is kept waiting too long. In some cases, the redirection system <NUM> and/or messaging system <NUM> may rank possible/available message operators <NUM> so that the message operator <NUM> with the most relevant expertise/skill, with the most availability, with the closest geographic area, with the most relevant language, or some combination thereof, may be selected.

The messaging system <NUM> receives at least a subset of the telephony information that the redirection system <NUM> received from the telephony system and generates a messaging operator interface <NUM> using this information, the messaging operator interface <NUM> for use by the messaging operator <NUM> using the messaging device <NUM>. An exemplary messaging operator interface <NUM> is illustrated in <FIG>. Using the messaging operator interface <NUM>, the messaging operator <NUM> can see the telephony information, such as the call context information and the identifier of the user <NUM> and/or of the mobile device <NUM>, and can read messages from the mobile device <NUM> and send messages to the mobile device <NUM>, either directly (not shown in <FIG>), through messaging system <NUM>, through messaging gateway <NUM>, or a combination thereof.

The mobile device <NUM>, telephony system <NUM>, telephony device <NUM>, redirection system <NUM>, messaging gateway <NUM>, messaging system <NUM>, and messaging device <NUM> may each be computing devices <NUM> as illustrated in and discussed with respect to <FIG>, or may include at least a subset of the components of such a computing device <NUM>.

<FIG> is a flow diagram illustrating a mobile device user experience during redirection from a telephony environment to a messaging environment.

In user interface <NUM>, the mobile device <NUM> displays a telephone call with a customer service telephony service <NUM>. Prerecorded audio <NUM> is received by the mobile device <NUM> from the customer service telephony service <NUM> stating "Hello there! We've detected that you are using a smartphone with messaging capabilities! Press one to message with an expert from your phone. If you stay on the line, the wait time to reach an agent will be about <NUM> minutes. If you transfer to messaging, the wait time to reach an agent will be about <NUM> minutes.

In user interface <NUM>, the mobile device <NUM> has presumably pressed "one," and the mobile device <NUM> displays a notification indicating that it has received an introductory message <NUM> from the customer service entity, the message <NUM> coming from the messaging gateway <NUM>, the redirection system <NUM>, the messaging system <NUM>, the messaging device <NUM>, or some combination thereof. Any path through these devices that the message <NUM> undertakes may be invisible to the mobile device <NUM>. The introductory message <NUM> of <FIG> reads "Hi there! How can we help you?".

In user interface <NUM>, the user <NUM> is having a messaging conversation <NUM> with the messaging operator <NUM> via multiple messages sent between the mobile device <NUM> and the messaging device <NUM>, optionally through the messaging gateway <NUM> and/or the messaging system <NUM>. The messaging conversation <NUM> reads as follows: "'Hi! Download the app or continue messaging here. ' / 'Hello, I need to update my mailing address. ' / 'Sure! What is your new address?' /'<NUM> Fake Street. ' 'Great! We've updated it. '" In the interface <NUM> of <FIG>, the messages written by the user <NUM> and sent by the mobile device <NUM> are on the right-hand side of the conversation window <NUM>, while the messages received by the mobile device <NUM> are on the left-hand side of the conversation window <NUM>. Of the messages received by the mobile device <NUM>, some can be written by the messaging operator <NUM> and sent from the messaging device <NUM>, while others can be automatic messages sent by the redirection system <NUM> or messaging system <NUM>. For example, the first message in conversation <NUM> ("Hi! Download the app or continue messaging here") could be an automatic introductory message sent from the redirection system <NUM> or messaging system <NUM> to the mobile device <NUM>, optionally through the messaging gateway <NUM>, while the remaining messages received by the mobile device <NUM> can be written by the messaging operator <NUM> and sent from the messaging device <NUM>. In some cases, the messaging operator <NUM> may be a piece of software rather than a human being - in particular, the messaging operator <NUM> may be an artificially intelligent "chatbot" or virtual assistant capable of messaging with the user <NUM> at least about a few topics, such as topics relevant to customer service. For example, such a "chatbot" or virtual assistant may be capable of interpreting and understanding the user <NUM>'s request to change his or her mailing address, and may be capable of modifying a user account database corresponding to the user <NUM> to include the corrected mailing address provided by the user <NUM> during the conversation <NUM>.

The user interface <NUM> also includes an input interface <NUM> through which the user <NUM> writes responses. The input interface <NUM> is illustrated as a text input field, but may also allow the user <NUM> to insert images, videos, audio, or other multimedia, and may allow the user <NUM> to add text formatting and change fonts, and mix text and multimedia into a rich media message.

<FIG> illustrates a messaging operator user interface generated by the messaging system using context from the phone call. The messaging operator user interface <NUM> of <FIG> includes a conversation window <NUM> and a context window <NUM>.

The conversation window <NUM> includes conversation similar to the conversation <NUM> shown in user interface <NUM> of <FIG>, but from the perspective of the messaging operator <NUM> rather than the user <NUM>. The conversation in the conversation window <NUM> of <FIG> reads as follows: "'Hi! Download the app or continue messaging here. ' / 'Hello, I need to update my mailing address. ' / 'Sure! What is your new address?' / '<NUM> Fake St. , Phoenix, AZ <NUM>' 'Great! We've updated it. '" The conversation window <NUM> shows timestamps and optionally dates for each message. The messages on the right-hand side of the conversation window <NUM> are written by the message operator <NUM> and sent by the message device <NUM> (though they may also include some automated messages written and sent by the redirection system <NUM> and/or messaging system <NUM>), while the messages on the left-hand side of the conversation window <NUM> are written by the user <NUM> and sent by the mobile device <NUM>.

The conversation window <NUM> also includes an input interface <NUM> through which the message operator <NUM> writes responses. The input interface <NUM> is illustrated as a text input field, but may also allow the message operator <NUM> to insert images, videos, audio, or other multimedia, and may allow the message operator <NUM> to add text formatting and change fonts, and mix text and multimedia into a rich media message. The input interface <NUM> of <FIG> includes the unfinished message text "Thank you for using" written in, and the conversation window <NUM> includes a ". " ellipsis box indicating that the message operator <NUM> has written into the input interface <NUM> but has not yet sent.

The context window <NUM> optionally includes the telephony information received by the redirection system <NUM> from the telephony system <NUM>, the telephony information including identifying information about the user <NUM> and/or the mobile device <NUM> as well as context information about the phone call <NUM>.

The context window <NUM> of <FIG> includes a call start time <NUM> identifying when the call <NUM> began, the call start time <NUM> provided as March <NUM>, <NUM> at <NUM>:<NUM>:<NUM> AM. The context window <NUM> includes a call redirection time <NUM> identifying when the user agreed to redirect the call to messaging and/or when the call was actually redirected to messaging, the call redirection time <NUM> provided as March <NUM>, <NUM> at <NUM>:<NUM>:<NUM> AM.

The context window <NUM> of <FIG> includes a call skill <NUM> identifying a skill or expertise area that the user <NUM> wishes to discuss and/or that the messaging operator <NUM> was selected based on, the call skill <NUM> provided as "Technical Support. " The context window <NUM> of <FIG> includes a caller device phone number <NUM> of the mobile device <NUM>, provided as <NUM> (<NUM>) <NUM>-<NUM>. The context window <NUM> of <FIG> includes a dialed phone number <NUM> of the mobile device <NUM>, provided as <NUM> (<NUM>) <NUM>-<NUM>. The context window <NUM> of <FIG> includes an IVR speech <NUM> identifying a transcript of prerecorded audio that was played by the telephony system <NUM> to the user <NUM> during the phone call <NUM>, the IVR speech <NUM> provided as: "Hello. Welcome to customer service. Please press one to transfer to messaging.

The context window <NUM> of <FIG> includes caller information <NUM> identifying information about the user <NUM>, provided as a name, "John Smith," and an address, "<NUM> Fake St. , Phoenix, AZ <NUM>. " The context window <NUM> of <FIG> includes caller history <NUM> identifying that the user <NUM> has called the telephony service <NUM> before, once on March <NUM>, <NUM> at <NUM>:<NUM>:<NUM> AM and once on September <NUM>, <NUM> at <NUM>:<NUM>:<NUM> PM. The context window <NUM> of <FIG> includes caller device <NUM> identifying that the mobile device <NUM> is an iPhone <NUM> running operating system iOS version <NUM>. The context window <NUM> of <FIG> includes caller location <NUM> provided as "Phoenix, AZ, USA.

The context window <NUM> of <FIG> includes call audio <NUM> with a hyperlink labeled "call-audio. mp3" directing to an attached MP3 audio file of the recorded audio of the phone call <NUM>. The context window <NUM> of <FIG> includes call transcript <NUM> with a hyperlink labeled "call-transcript. txt" directing to an attached text file of a transcript of the recorded audio of the phone call <NUM>, the transcript transcribed via a speech-to-text algorithm run by the telephony service <NUM>, by the redirection system <NUM>, by the messaging system <NUM>, or some combination thereof. The context window <NUM> of <FIG> includes message history <NUM> with a hyperlink labeled "msg-history. txt" directing to an attached text file of a transcript of the messages in the conversation window <NUM> and optionally the transcripts of one or more previous message conversations involving the user <NUM> and the telephony service <NUM>, even if with a different operator <NUM>. This way, the messaging operator <NUM> can review old messages and make sure not to lose important information discussed previously by or with the user. The call audio <NUM> and call transcripts <NUM> can also include the audio and transcripts, respectively, of one or more prior phone calls involving the telephony service, such as those listed in the caller history <NUM>, so that the messaging operator <NUM> can review old messages and make sure not to lose important information discussed previously by or with the user.

<FIG> is a swim lane flow diagram illustrating operations performed using a number of devices and systems involved in intelligent redirection of callers from the telephony environment to the messaging environment.

The devices identified in the columns of <FIG> are mostly shown in the architecture of <FIG> with a few exceptions. The configuration database <NUM> is a database that the redirection system <NUM> and messaging system <NUM> can use to identify configuration details such as which of a number of messaging services a particular company prefers to redirect its telephony system <NUM> to, optionally providing a preference ranking. The live info database <NUM> is used by the redirection system <NUM> and/or the messaging system <NUM> to store information such as telephony information and messages throughout the redirection process. The live info database <NUM> may, for example, be a specialized LiveDeflect® database. The redirection artificial intelligence (AI) bot <NUM> is a chatbot or virtual assistant that can help transfer the user <NUM> to an appropriate messaging operator <NUM> if the call context in the telephony information is not enough to do so.

At step <NUM>, a phone call is initiated between the mobile device <NUM> and the telephony system <NUM> when the mobile device <NUM> calls the telephony system <NUM> (or receives a call from the telephony system <NUM>). Still at step <NUM>, the mobile device <NUM> optionally receives an option to switch from the telephony environment to the messaging environment (e.g., see dialogue <NUM> of <FIG>), and the user <NUM> provides an input (e.g., a verbal or DTMF input) through the mobile device <NUM> indicating that the user agrees to transfer from the telephony environment to the messaging environment. In the example of dialogue <NUM> of <FIG>, the telephony system <NUM> tells the mobile device <NUM> estimated wait time for a telephony operator <NUM> (<NUM> minutes) and an estimated wait time for a messaging operator <NUM> (<NUM> minutes). Such a discrepancy in wait times might provide the user <NUM> with additional incentive to switch from the telephony environment to the messaging environment. In some cases, the telephony system <NUM> will automatically switch the mobile device <NUM> from the telephony environment to the messaging environment without asking, for example if the estimated wait time for a telephony operator <NUM> exceeds the estimated wait time for a messaging operator <NUM> by at least a predetermined threshold duration of time, or if the redirection system is configured to redirect callers for a specific business function, or if the telephony system <NUM> is being phased out altogether in favor of the messaging system <NUM>. If the estimated wait time for a messaging operator <NUM> exceeds the estimated wait time for a telephony operator <NUM> by at least a threshold duration of time, on the other hand, the user <NUM> might not be given the option to transfer the call to messaging at all. Absolute thresholds and relative thresholds alike can be used for either or both estimated wait times to determine whether one or both estimated wait times are sent from the redirection system <NUM> to the telephony system <NUM>, whether one or both estimated wait times are presented to the user <NUM> by the telephony system <NUM>, whether the user <NUM> is automatically routed to either staying on the line with the telephony system <NUM> or transferring to the messaging system <NUM>, or a combination thereof.

At step <NUM>, the telephony service sends the telephony information to the redirection system <NUM> and optionally to live info database and/or the messaging system <NUM>. The telephony information may be sent by the telephony system <NUM> to the redirection system <NUM> by or as part of a representational state transfer (REST) application programming interface (API) call. At step <NUM>, the redirection system <NUM> requests configuration information from the configuration database <NUM>, and the redirection system <NUM> receives the configuration information from the configuration database <NUM> at step <NUM>. The configuration information in the configuration database <NUM> identifies configuration details such as which of a number of messaging services a particular company prefers to redirect its telephony system <NUM> to, optionally providing a preference ranking.

At step <NUM>, the redirection system <NUM> sends/uploads the call context information (and optionally other telephony information) to the live information database <NUM>, and optionally to the messaging system <NUM>. At step <NUM>, the redirection system <NUM> triggers sending of an introductory message to the user by instructing the messaging gateway <NUM> to send the introductory message to the mobile device <NUM>. At step <NUM>, the messaging gateway <NUM> sends the introductory message to the mobile device <NUM>.

At step <NUM>, the mobile device <NUM> receives the introductory message sent in step <NUM> and sends a user message to the messaging system <NUM> in reply to the introductory message, the user message having been input by user <NUM> into the mobile device <NUM>. In some cases, step <NUM> (or another user message step like <NUM>) may occur after step <NUM> and/or step <NUM>, in which case the user message may be sent onward by the messaging system <NUM> to the messaging device <NUM>, or in some cases may be sent directly from the mobile device <NUM> to the messaging device <NUM>, which may optionally report the message back to the messaging system <NUM>.

At step <NUM>, the messaging system <NUM> and/or the redirection AI bot <NUM> request context information from the live information database <NUM>, which the live information database <NUM> provides back to the messaging system <NUM> and/or the redirection AI bot <NUM> at step <NUM>. This context information may include the call context information and/or other telephony information, and may also include other context information illustrated in and discussed with respect to the context window <NUM> of <FIG>, such as call history <NUM> or message history <NUM>. The messaging system <NUM> and/or the redirection AI bot <NUM> use this context information to select a context-appropriate message operator <NUM> of a number of possible message operators, for example based on call skill/expertise <NUM>, language spoken, availability, caller location <NUM>, the configuration of steps <NUM>/<NUM>, or a combination thereof. At step <NUM>, the messaging system <NUM> and/or the redirection AI bot <NUM> transfers the conversation to the selected messaging operator <NUM>, optionally generating at least part of the messaging operator interface <NUM> and sending this to the messaging device <NUM> of the selected messaging operator <NUM> at this step as well.

At step <NUM>, which may occur before step <NUM> or after step <NUM> or even after step <NUM>, the messaging system may upload a conversation identifier, such as a unique identification number or code corresponding to the conversation, to the live information database <NUM>, along with message information of any messages already in the conversation, such as the introductory message of steps <NUM> and the user message of step <NUM>. Context information can be requested by the messaging device <NUM> from the live information database <NUM> at step <NUM> and provided by the live information database <NUM> to the messaging device <NUM> at step <NUM>. At step <NUM>, the messaging device <NUM> sends the messaging operator <NUM>'s message in reply to the user message of step <NUM>.

Any message sent by the redirection system <NUM>, message system <NUM>, message device <NUM>, and/or message gateway <NUM> may be at least partially previously scripted. For instance, the introductory message sent in step <NUM>, any messages (not shown in <FIG>) sent from the redirection AI bot <NUM> to the mobile device <NUM>, and/or the message sent by the messaging operator <NUM> in step <NUM> may be at least partially previously scripted, especially if the messaging operator <NUM> is a chatbot or virtual assistant. Any such message may alternately or additionally be at least partially generated based on call context or previous messages during the same conversation or a previous conversation so as to include information such as the user <NUM>'s name or other information identifying the user <NUM>, or an account balance or other information associated with an object or service owned by the user <NUM> or otherwise associated with the user <NUM>, or any context information identified in context window <NUM> of <FIG>. Additionally, any message sent by the mobile device, redirection system <NUM>, message system <NUM>, and/or message device <NUM> may optionally be received by and conveyed along by the message gateway <NUM> along the way.

<FIG> is an architecture flow diagram illustrating further detail regarding the architecture of <FIG> and the processes of <FIG>.

In particular, the architecture of <FIG> illustrates the user <NUM> and mobile device <NUM>. The architecture of <FIG> illustrates the telephony system <NUM>, such as a brand IVR (that is, an IVR associated with customer service for a brand or company), this time including a deflect UX software plugin that interacts with the telephony system <NUM> to send it the requested telephony information and to provide a back and forth, for instance to determine an optimal messaging service/channel based on information provided by the redirection system <NUM>.

The architecture of <FIG> illustrates the redirection system <NUM>, which includes a messaging center context service, an identity service, a deflection service, a queue analysis and optimization service, a channel optimization service, and a bot / automation service. Each of these may handle different aspects of the processes discussed below with respect to steps <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>.

The architecture of <FIG> illustrates the messaging system <NUM>, which includes an agent widget that is used by the messaging device <NUM> of the messaging operator <NUM> (aka the messaging agent <NUM>), a messaging app, the redirection AI bot <NUM>, an in-app software development kit (SDK), Rich Communication Services (RCS), and Apple Business Chat® interface. Each of these may handle different aspects of the processes discussed below with respect to steps <NUM>, <NUM>, and <NUM>.

At step <NUM>, the user <NUM> (who may in some cases be referred to as the caller or the consumer) calls the telephony system <NUM> from the mobile device <NUM>. At step <NUM>, the telephony system <NUM> sends certain the telephony information (including call context such as phone number, skill site ID, call ID, call context, call queue status) to the redirection system <NUM>. At step <NUM>, the redirection system <NUM> returns user context (AKA consumer context) to the telephony system <NUM>, for example identifying if the number is a mobile number and recommending an optimal message service or channel (e.g., message service that the user <NUM> is most likely to use/see/read). At step <NUM>, the telephony service <NUM> records and conveys the user <NUM>'s IVR redirection/deflection choice to the redirection system <NUM>, again possibly providing additional telephony info such as call ID, site ID, and call context.

At step <NUM>, an introductory message is sent via the recommended optimal message service or channel. The optimal message service or channel may be any previously discussed channel, such as SMS, MMS, RCS, or a branded messaging system such as Apple® iMessage®, Apple® Business Chat® (ABC), Google® Rich Communication Services (RCS) for Business Messaging® (GRBM), Google® Jibe®, Google® Hangouts®, Google® Allo®, Google® Duo®, Facebook® Messenger® (FBM), WhatsApp®, Slack® Channels®, Skype® Instant Messenger®, Blackberry® Messenger®, Line®, Viber®, Rich Communication Services (RCS) provided by telecommunications provider(s), or similar services.

At step <NUM>, the redirection system <NUM> sends the telephony system <NUM> confirmation that redirection/deflection has occurred. At step <NUM>, the user <NUM> replies to the message of step <NUM> via the mobile device <NUM>. Both messages are conveyed to the messaging system <NUM>. At step <NUM>, the receipt of the user message in step <NUM> is treated as the user accepting the redirection / deflection, and this is conveyed from the messaging system <NUM> to the redirection system <NUM>, and then at step <NUM> from the redirection system to the telephony system, <NUM>. At step <NUM>, the messaging system <NUM> receives call context from the redirection system <NUM>, and conveys message context to the redirection system <NUM>.

Step <NUM> occurs if steps <NUM>-<NUM> never occurred - in which case the redirection/deflection to messaging is never accepted by the user, or the user expressly opts out of the redirection/deflection to messaging either during the phone call or via the user <NUM>'s response message of step <NUM>, and the telephony system <NUM> redials the customer to connect via phone call once again if needed.

<FIG> is a flow diagram illustrating operations for context-aware caller redirection from a telephony environment to a messaging environment.

The flow diagram of <FIG> may be performed by the redirection system <NUM>, the messaging gateway <NUM>, the messaging system <NUM>, or some combination thereof. With respect to the flow diagram of <FIG>, any combination of one or more of these system is referred to as the one or more system(s).

At step <NUM>, the one or more system(s) receive telephony information from a telephony system. The telephony information includes a caller identifier corresponding to a caller device and call context provided by the caller device during a telephone call between the caller device and the telephony system.

At step <NUM>, the one or more system(s) select a selected messaging operator of a plurality of messaging operators based on the call context.

At step <NUM>, the one or more system(s) generate a messaging interface for the selected messaging operator, the messaging interface including the caller identifier, the call context, and an input interface.

At step <NUM>, the one or more system(s) receive a caller message from the caller via the messaging service. At step <NUM>, the one or more system(s) update the messaging interface to include the caller message in response to receipt of the caller message.

At step <NUM>, the one or more system(s) trigger transmission of an operator message to the caller device via the messaging service, the operator message having been input by the selected messaging operator via the input interface of the messaging interface. At step <NUM>, the one or more system(s) update the messaging interface to include the operator message in response to triggering transmission of the operator message.

<FIG> illustrates an exemplary computing system <NUM> that may be used to implement some aspects of the subject technology. For example, any of the computing devices, computing systems, network devices, network systems, servers, and/or arrangements of circuitry described herein may include at least one computing system <NUM>, or may include at least one component of the computer system <NUM> identified in <FIG>. The computing system <NUM> of <FIG> includes one or more processors <NUM> and memory <NUM>. Each of the processor(s) <NUM> may refer to one or more processors, controllers, microcontrollers, central processing units (CPUs), graphics processing units (GPUs), arithmetic logic units (ALUs), accelerated processing units (APUs), digital signal processors (DSPs), application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or combinations thereof. Each of the processor(s) <NUM> may include one or more cores, either integrated onto a single chip or spread across multiple chips connected or coupled together. Memory <NUM> stores, in part, instructions and data for execution by processor <NUM>. Memory <NUM> can store the executable code when in operation. The system <NUM> of <FIG> further includes a mass storage device <NUM>, portable storage medium drive(s) <NUM>, output devices <NUM>, user input devices <NUM>, a graphics display <NUM>, and peripheral devices <NUM>.

The components shown in <FIG> are depicted as being connected via a single bus <NUM>. However, the components may be connected through one or more data transport means. For example, processor unit <NUM> and memory <NUM> may be connected via a local microprocessor bus, and the mass storage device <NUM>, peripheral device(s) <NUM>, portable storage device <NUM>, and display system <NUM> may be connected via one or more input/output (I/O) buses.

Mass storage device <NUM>, which may be implemented with a magnetic disk drive or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor unit <NUM>. Mass storage device <NUM> can store the system software for implementing some aspects of the subject technology for purposes of loading that software into memory <NUM>.

Portable storage device <NUM> operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk or Digital video disc, to input and output data and code to and from the computer system <NUM> of <FIG>. The system software for implementing aspects of the subject technology may be stored on such a portable medium and input to the computer system <NUM> via the portable storage device <NUM>.

The memory <NUM>, mass storage device <NUM>, or portable storage <NUM> may in some cases store sensitive information, such as transaction information, health information, or cryptographic keys, and may in some cases encrypt or decrypt such information with the aid of the processor <NUM>. The memory <NUM>, mass storage device <NUM>, or portable storage <NUM> may in some cases store, at least in part, instructions, executable code, or other data for execution or processing by the processor <NUM>.

Output devices <NUM> may include, for example, communication circuitry for outputting data through wired or wireless means, display circuitry for displaying data via a display screen, audio circuitry for outputting audio via headphones or a speaker, printer circuitry for printing data via a printer, or some combination thereof. The display screen may be any type of display discussed with respect to the display system <NUM>. The printer may be inkjet, laserjet, thermal, or some combination thereof. In some cases, the output device circuitry <NUM> may allow for transmission of data over an audio jack/plug, a microphone jack/plug, a universal serial bus (USB) port/plug, an Apple® Lightning® port/plug, an Ethernet port/plug, a fiber optic port/plug, a proprietary wired port/plug, a BLUETOOTH® wireless signal transfer, a BLUETOOTH® low energy (BLE) wireless signal transfer, an IBEACON® wireless signal transfer, a radio-frequency identification (RFID) wireless signal transfer, near-field communications (NFC) wireless signal transfer, <NUM> Wi-Fi wireless signal transfer, cellular data network wireless signal transfer, a radio wave signal transfer, a microwave signal transfer, an infrared signal transfer, a visible light signal transfer, an ultraviolet signal transfer, a wireless signal transfer along the electromagnetic spectrum, or some combination thereof. Output devices <NUM> may include any ports, plugs, antennae, wired or wireless transmitters, wired or wireless transceivers, or any other components necessary for or usable to implement the communication types listed above, such as cellular Subscriber Identity Module (SIM) cards.

Input devices <NUM> may include circuitry providing a portion of a user interface. Input devices <NUM> may include an alpha-numeric keypad, such as a keyboard, for inputting alpha-numeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. Input devices <NUM> may include touch-sensitive surfaces as well, either integrated with a display as in a touchscreen, or separate from a display as in a trackpad. Touch-sensitive surfaces may in some cases detect localized variable pressure or force detection. In some cases, the input device circuitry may allow for receipt of data over an audio jack, a microphone jack, a universal serial bus (USB) port/plug, an Apple® Lightning® port/plug, an Ethernet port/plug, a fiber optic port/plug, a proprietary wired port/plug, a wired local area network (LAN) port/plug, a BLUETOOTH® wireless signal transfer, a BLUETOOTH® low energy (BLE) wireless signal transfer, an IBEACON® wireless signal transfer, a radio-frequency identification (RFID) wireless signal transfer, near-field communications (NFC) wireless signal transfer, <NUM> Wi-Fi wireless signal transfer, wireless local area network (WAN) signal transfer, cellular data network wireless signal transfer, personal area network (PAN) signal transfer, wide area network (WAN) signal transfer, a radio wave signal transfer, a microwave signal transfer, an infrared signal transfer, a visible light signal transfer, an ultraviolet signal transfer, a wireless signal transfer along the electromagnetic spectrum, or some combination thereof. Input devices <NUM> may include any ports, plugs, antennae, wired or wireless receivers, wired or wireless transceivers, or any other components necessary for or usable to implement the communication types listed above, such as cellular SIM cards.

Input devices <NUM> may include receivers or transceivers used for positioning of the computing system <NUM> as well. These may include any of the wired or wireless signal receivers or transceivers. For example, a location of the computing system <NUM> can be determined based on signal strength of signals as received at the computing system <NUM> from three cellular network towers, a process known as cellular triangulation. Fewer than three cellular network towers can also be used - even one can be used - though the location determined from such data will be less precise (e.g., somewhere within a particular circle for one tower, somewhere along a line or within a relatively small area for two towers) than via triangulation. More than three cellular network towers can also be used, further enhancing the location's accuracy. Similar positioning operations can be performed using proximity beacons, which might use short-range wireless signals such as BLUETOOTH® wireless signals, BLUETOOTH® low energy (BLE) wireless signals, IBEACON® wireless signals, personal area network (PAN) signals, microwave signals, radio wave signals, or other signals discussed above. Similar positioning operations can be performed using wired local area networks (LAN) or wireless local area networks (WLAN) where locations are known of one or more network devices in communication with the computing system <NUM> such as a router, modem, switch, hub, bridge, gateway, or repeater. These may also include Global Navigation Satellite System (GNSS) receivers or transceivers that are used to determine a location of the computing system <NUM> based on receipt of one or more signals from one or more satellites associated with one or more GNSS systems. GNSS systems include, but are not limited to, the US-based Global Positioning System (GPS), the Russia-based Global Navigation Satellite System (GLONASS), the China-based BeiDou Navigation Satellite System (BDS), and the Europe-based Galileo GNSS. Input devices <NUM> may include receivers or transceivers corresponding to one or more of these GNSS systems.

Display system <NUM> may include a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, an electronic ink or "e-paper" display, a projector-based display, a holographic display, or another suitable display device. Display system <NUM> receives textual and graphical information, and processes the information for output to the display device. The display system <NUM> may include multiple-touch touchscreen input capabilities, such as capacitive touch detection, resistive touch detection, surface acoustic wave touch detection, or infrared touch detection. Such touchscreen input capabilities may or may not allow for variable pressure or force detection.

Peripherals <NUM> may include any type of computer support device to add additional functionality to the computer system. For example, peripheral device(s) <NUM> may include one or more additional output devices of any of the types discussed with respect to output device <NUM>, one or more additional input devices of any of the types discussed with respect to input device <NUM>, one or more additional display systems of any of the types discussed with respect to display system <NUM>, one or more memories or mass storage devices or portable storage devices of any of the types discussed with respect to memory <NUM> or mass storage <NUM> or portable storage <NUM>, a modem, a router, an antenna, a wired or wireless transceiver, a printer, a bar code scanner, a quick-response ("QR") code scanner, a magnetic stripe card reader, a integrated circuit chip (ICC) card reader such as a smartcard reader or a EUROPAY®-MASTERCARD®-VISA® (EMV) chip card reader, a near field communication (NFC) reader, a document/image scanner, a visible light camera, a thermal/infrared camera, an ultraviolet-sensitive camera, a night vision camera, a light sensor, a phototransistor, a photoresistor, a thermometer, a thermistor, a battery, a power source, a proximity sensor, a laser rangefinder, a sonar transceiver, a radar transceiver, a lidar transceiver, a network device, a motor, an actuator, a pump, a conveyer belt, a robotic arm, a rotor, a drill, a chemical assay device, or some combination thereof.

The components contained in the computer system <NUM> of <FIG> can include those typically found in computer systems that may be suitable for use with some aspects of the subject technology and represent a broad category of such computer components that are well known in the art. That said, the computer system <NUM> of <FIG> can be customized and specialized for the purposes discussed herein and to carry out the various operations discussed herein, with specialized hardware components, specialized arrangements of hardware components, and/or specialized software. Thus, the computer system <NUM> of <FIG> can be a personal computer, a hand held computing device, a telephone ("smartphone" or otherwise), a mobile computing device, a workstation, a server (on a server rack or otherwise), a minicomputer, a mainframe computer, a tablet computing device, a wearable device (such as a watch, a ring, a pair of glasses, or another type of jewelry or clothing or accessory ), a video game console (portable or otherwise), an e-book reader, a media player device (portable or otherwise), a vehicle-based computer, another type of computing device, or some combination thereof. The computer system <NUM> may in some cases be a virtual computer system executed by another computer system. The computer can also include different bus configurations, networked platforms, multiprocessor platforms, etc. Various operating systems can be used including Unix®, Linux®, FreeBSD®, FreeNAS®, pfSense®, Windows®, Apple® Macintosh OS® ("MacOS®"), Palm OS®, Google® Android®, Google® Chrome OS®, Chromium® OS®, OPENSTEP®, XNU®, Darwin®, Apple® iOS®, Apple® tvOS®, Apple® watchOS®, Apple® audioOS®, Amazon® Fire OS®, Amazon® Kindle OS®, variants of any of these, other suitable operating systems, or combinations thereof. The computer system <NUM> may also use a Basic Input/Output System (BIOS) or Unified Extensible Firmware Interface (UEFI) as a layer upon which the operating system(s) are run.

In some cases, the computer system <NUM> may be part of a multi-computer system that uses multiple computer systems <NUM>, each for one or more specific tasks or purposes. For example, the multi-computer system may include multiple computer systems <NUM> communicatively coupled together via at least one of a personal area network (PAN), a local area network (LAN), a wireless local area network (WLAN), a municipal area network (MAN), a wide area network (WAN), or some combination thereof. The multi-computer system may further include multiple computer systems <NUM> from different networks communicatively coupled together via the internet (also known as a "distributed" system).

Some aspects of the subject technology may be implemented in an application that may be operable using a variety of devices. Non-transitory computer-readable storage media refer to any medium or media that participate in providing instructions to a central processing unit (CPU) for execution and that may be used in the memory <NUM>, the mass storage <NUM>, the portable storage <NUM>, or some combination thereof. Such media can take many forms, including, but not limited to, non-volatile and volatile media such as optical or magnetic disks and dynamic memory, respectively. Some forms of non-transitory computer-readable media include, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, a magnetic strip/stripe, any other magnetic storage medium, flash memory, memristor memory, any other solid-state memory, a compact disc read only memory (CD-ROM) optical disc, a rewritable compact disc (CD) optical disc, digital video disk (DVD) optical disc, a blu-ray disc (BDD) optical disc, a holographic optical disk, another optical medium, a secure digital (SD) card, a micro secure digital (microSD) card, a Memory Stick® card, a smartcard chip, a EMV chip, a subscriber identity module (SIM) card, a mini/micro/nano/pico SIM card, another integrated circuit (IC) chip/card, random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash EPROM (FLASHEPROM), cache memory (L1/L2/L3/L4/L5/L6), resistive random-access memory (RRAM/ReRAM), phase change memory (PCM), spin transfer torque RAM (STT-RAM), another memory chip or cartridge, or a combination thereof.

Various forms of transmission media may be involved in carrying one or more sequences of one or more instructions to a processor <NUM> for execution. A bus <NUM> carries the data to system RAM or another memory <NUM>, from which a processor <NUM> retrieves and executes the instructions. The instructions received by system RAM or another memory <NUM> can optionally be stored on a fixed disk (mass storage device <NUM> / portable storage <NUM>) either before or after execution by processor <NUM>. Various forms of storage may likewise be implemented as well as the necessary network interfaces and network topologies to implement the same.

While various flow diagrams provided and described above may show a particular order of operations performed by some embodiments of the subject technology, it should be understood that such order is exemplary. Alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, or some combination thereof. It should be understood that unless disclosed otherwise, any process illustrated in any flow diagram herein or otherwise illustrated or described herein may be performed by a machine, mechanism, and/or computing system <NUM> discussed herein, and may be performed automatically (e.g., in response to one or more triggers/conditions described herein), autonomously, semi-autonomously (e.g., based on received instructions), or a combination thereof. Furthermore, any action described herein as occurring in response to one or more particular triggers/conditions should be understood to optionally occur automatically response to the one or more particular triggers/conditions.

Claim 1:
A method of context-aware caller redirection from a telephony environment to a messaging environment, the method comprising:
receiving telephony information from a telephony system (<NUM>), the telephony information including call context provided by a caller device (<NUM>) during a telephone call (<NUM>) between the caller device and the telephony system;
selecting a messaging operator (<NUM>) based on the call context;
transmitting the call context to a messaging device (<NUM>) associated with the selected messaging operator (<NUM>) after the selected messaging operator has been selected, for display at a messaging operator interface (<NUM>) at the messaging device (<NUM>); and
initiating a messaging connection through a messaging service between the caller device (<NUM>) and the messaging device (<NUM>), wherein the messaging service conveys one or more caller messages from the caller device to the messaging device over the messaging connection, for display at the messaging operator interface (<NUM>), and wherein the messaging service conveys one or more operator messages from the messaging device to the caller device over the messaging connection, for display at a user interface (<NUM>) of the caller device.