Patent Description:
<CIT> discloses a method and a device for enhancing a call set up.

<CIT> discloses a system and method for operating a first electronic device for sharing items with a second electronic device.

According to a first aspect of the present disclosure there is provided a method of providing one or more enhanced communication features during a communication, as defined in claim <NUM>.

According to a second aspect of the present disclosure there is provided a device configured to carry out the method steps of the first aspect, as defined in claim <NUM>.

According to a third aspect of the present disclosure there is provided a system comprising two devices of the second aspect, as defined in claim <NUM>.

Computing devices, such as smartphones, tablets, and/or personal computers, may be configured to facilitate audio and/or video communication between users. For example, many computing devices are configured to send and receive calls on one or more cellular networks. When users call each other, they may be presented with limited content and tools while in call. For example, content that is provided to the person receiving the call may be chosen by the person receiving the call. Customization tools may be made available based on what the phone manufacturer or device operating system developer selects.

Systems and methods described herein may allow users to enhance voice calls by providing content, tools, and features within the phone call user interface (UI) that may increase the efficiency of voice calls and allow users to have more fulfilling voice communications.

For example, systems and methods described herein may allow users to select call-enhancing elements such as pictures (e.g., static or animated), video, audio, layouts, and/or other content (e.g., user-generated or privately or publicly available) for display on the user's screen and/or the screen of other people the user may call or who may call the user. Selected content may appear when the users call other people. For example, user <NUM> can control what user <NUM> sees on their phone during a call. In some embodiments, content may be targetable so that when user <NUM> calls user <NUM>, the content can be different from when user <NUM> calls user <NUM>.

In some embodiments, content may be augmented by other call-enhancing elements such as tools that enable contextual communication, such as mini-apps pre-loaded with information payloads from the user to facilitate fast transmittal and communication and/or allow information gathered from other available sources to be available for presentation during the call. The other information may include social media information, search engine information, and/or information from other websites or applications, either public or private. The pre-loaded and/or gathered information may be used to enhance the in-call experience of the individual or individuals on the call.

Systems and methods described herein may allow users to share screens and/or enable synchronized video viewing, audio listening, and/or article/web/book reading, for example. Additional tools may be shown to the respective users based on what they have used during calls previously and/or based on what they say while on a call. For example, tools may include automated caller verification using voice print analysis and/or other biometric methods within the device. Tools may include location awareness to enable call enhancement (for example, if calling from in front of a movie theater, a tool may automatically pop movie show times into the phone call, or restaurant reservation options if near a restaurant, etc.). Tools may include payment facilitation in-call. Tools may use observed behavior on a device to surface relevant applications based on information and content (e.g., the last time two users were on a call, they opened a specific spreadsheet, so a tool may make that spreadsheet available the next time the users are on a call together). Tools may use natural language processing or other artificial intelligence (which may be local to the device or hosted) for automatically surfacing relevant applications, tools, information, and content during a call or voice conversation (e.g., the tool may listen to the conversation and pick up key words to associate to the relevant tools, apps, content, etc., and surface relevant options based on those voice inputs).

<FIG> shows a plurality of devices and networks according to an embodiment of the invention. User devices, for example including user <NUM> device <NUM> and user <NUM> device <NUM>, may be devices such as smartphones or other computing devices. User devices <NUM>, <NUM> may include hardware, software, and/or firmware configured to provide the enhanced calling features described herein. For example, user <NUM> device <NUM>, user <NUM> device <NUM>, or both may include an app or other hardware/software/firmware configured to detect a placed or received call, contact a server to obtain enhanced data, and present the enhanced data, as described in greater detail below.

User devices <NUM>, <NUM> are depicted as smartphones in <FIG> for ease of illustration, but user devices <NUM>, <NUM> may be any combination of computing devices. For example, one or more of user devices <NUM>, <NUM> may include wearable devices such as smartwatches, smart televisions, digital media players, desktop computers, laptop computers, servers, tablets, augmented reality (AR) devices, virtual reality (VR) devices, and/or other computing devices.

User devices <NUM>, <NUM> may be configured to communicate using calling network <NUM> (e.g., a cellular network or other call network such as a network configured to handle voice over IP (VOIP) traffic or other types of calls) and/or the Internet <NUM> (or other data network). As described in greater detail below, user devices <NUM>, <NUM> may communicate with one another using calling network <NUM>. For example, user <NUM> device <NUM> may initiate a call to user <NUM> device <NUM> or vice versa, and the call may be handled by calling network <NUM>.

Server device <NUM> may be a computing device, such as a server or other computer. Server device <NUM> may include enhancement service <NUM> configured to receive data from user devices <NUM>, <NUM> and, based on this data, determine what content or other call-enhancing elements to provide. Server device <NUM> may include content database <NUM> configured to store content and/or other call-enhancing elements. Stored content may include, for example, still and/or animated pictures, video, text, audio, social media content (e.g., feeds, etc.), and/or applications (e.g., payment apps, game apps, customer relationship management (CRM) apps, collaboration apps, screen sharing apps, etc.).

Server device <NUM> is depicted as a single server including a single enhancement service <NUM> and content database <NUM> in <FIG> for ease of illustration, but those of ordinary skill in the art will appreciate that server device <NUM> may be embodied in different forms for different implementations. For example, server device <NUM> may include a plurality of servers (e.g., an authentication server configured to handle security and authentication protocols for account and content access, a database server configured to store profile information, layouts, content, other call-enhancing elements, and information associated with each account in one or more content databases <NUM>, and/or a web server configured to provide web access to the database server). Enhancement service <NUM> may comprise a variety of services such as an application programming interface (API) configured for handling inbound requests for authentication and information and/or a database service configured to store, search, and retrieve data from content database <NUM>.

User devices <NUM>, <NUM> may communicate with one another and/or with server device <NUM> using the Internet <NUM>. For example, user devices <NUM>, <NUM> may receive content and/or other call-enhancing elements for use in cellular calls from server device <NUM> as described in greater detail below.

<FIG> is a block diagram of an example computing device, for example a computing device configured to function as user device <NUM> or <NUM>. For example, computing device <NUM>/<NUM> may send and/or receive calls and access enhanced data during the calls as described herein. The computing device <NUM>/<NUM> may include a memory interface <NUM>, one or more data processors, image processors, and/or central processing units <NUM>, and a peripherals interface <NUM>. The memory interface <NUM>, the one or more processors <NUM>, and/or the peripherals interface <NUM> may be separate components or may be integrated in one or more integrated circuits. The various components in the computing device <NUM>/<NUM> may be coupled by one or more communication buses or signal lines.

Sensors, devices, and subsystems may be coupled to the peripherals interface <NUM> to facilitate multiple functionalities. For example, a motion sensor <NUM>, a light sensor <NUM>, and a proximity sensor <NUM> may be coupled to the peripherals interface <NUM> to facilitate orientation, lighting, and proximity functions. Other sensors <NUM> may also be connected to the peripherals interface <NUM>, such as a global navigation satellite system (GNSS) (e.g., GPS receiver), a temperature sensor, a biometric sensor, magnetometer, or other sensing device, to facilitate related functionalities.

A camera subsystem <NUM> and an optical sensor <NUM>, e.g., a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, may be utilized to facilitate camera functions, such as recording photographs and video clips. The camera subsystem <NUM> and the optical sensor <NUM> may be used to collect images of a user to be used during authentication of a user, e.g., by performing facial recognition analysis.

Communication functions may be facilitated through one or more wired and/or wireless communication subsystems <NUM>, which can include radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters. For example, the BTLE and/or WiFi communications described above may be handled by wireless communication subsystems <NUM>. The specific design and implementation of the communication subsystems <NUM> may depend on the communication network(s) over which the computing device <NUM>/<NUM> is intended to operate. For example, the computing device <NUM>/<NUM> may include communication subsystems <NUM> designed to operate over a GSM network, a GPRS network, an EDGE network, a WiFi or WiMax network, and a Bluetooth™ network. For example, the wireless communication subsystems <NUM> may include hosting protocols such that the device <NUM>/<NUM> can be configured as a base station for other wireless devices and/or to provide a WiFi service.

An audio subsystem <NUM> may be coupled to a speaker <NUM> and a microphone <NUM> to facilitate voice-enabled functions, such as speaker recognition, voice replication, digital recording, and telephony functions. The audio subsystem <NUM> may be configured to facilitate processing voice commands, voiceprinting, and voice authentication, for example.

The I/O subsystem <NUM> may include a touch-surface controller <NUM> and/or other input controller(s) <NUM>. The touch-surface controller <NUM> may be coupled to a touch surface <NUM>. The touch surface <NUM> and touch-surface controller <NUM> may, for example, detect contact and movement or break thereof using any of a plurality of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch surface <NUM>.

The other input controller(s) <NUM> may be coupled to other input/control devices <NUM>, such as one or more buttons, rocker switches, thumb-wheel, infrared port, USB port, and/or a pointer device such as a stylus. The one or more buttons (not shown) may include an up/down button for volume control of the speaker <NUM> and/or the microphone <NUM>.

In some implementations, a pressing of the button for a first duration may disengage a lock of the touch surface <NUM>; and a pressing of the button for a second duration that is longer than the first duration may turn power to the computing device <NUM>/<NUM> on or off. Pressing the button for a third duration may activate a voice control, or voice command, module that enables the user to speak commands into the microphone <NUM> to cause the device to execute the spoken command. The user may customize a functionality of one or more of the buttons. The touch surface <NUM> can, for example, also be used to implement virtual or soft buttons and/or a keyboard.

In some implementations, the computing device <NUM>/<NUM> may present recorded audio and/or video files, such as MP3, AAC, and MPEG files. In some implementations, the computing device <NUM>/<NUM> may include the functionality of an MP3 player, such as an iPod™. The computing device <NUM>/<NUM> may, therefore, include a <NUM>-pin connector and/or <NUM>-pin connector that is compatible with the iPod. Other input/output and control devices may also be used.

The memory interface <NUM> may be coupled to memory <NUM>. The memory <NUM> may include high-speed random access memory and/or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, and/or flash memory (e.g., NAND, NOR). The memory <NUM> may store an operating system <NUM>, such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks.

The operating system <NUM> may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, the operating system <NUM> may be a kernel (e.g., UNIX kernel). In some implementations, the operating system <NUM> may include instructions for performing voice authentication.

The memory <NUM> may also store communication instructions <NUM> to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers. The memory <NUM> may include graphical user interface instructions <NUM> to facilitate graphic user interface processing; sensor processing instructions <NUM> to facilitate sensor-related processing and functions; phone instructions <NUM> to facilitate phone-related processes and functions; electronic messaging instructions <NUM> to facilitate electronic-messaging related processes and functions; web browsing instructions <NUM> to facilitate web browsing-related processes and functions; media processing instructions <NUM> to facilitate media processing-related processes and functions; GNSS/Navigation instructions <NUM> to facilitate GNSS and navigation-related processes and instructions; and/or camera instructions <NUM> to facilitate camera-related processes and functions.

The memory <NUM> may store enhanced calling instructions <NUM> to facilitate other processes and functions, such as the enhanced calling features described herein (e.g., communication with server device <NUM> and presentation of enhanced content).

The memory <NUM> may also store other software instructions <NUM>, such as web video instructions to facilitate web video-related processes and functions; and/or web shopping instructions to facilitate web shopping-related processes and functions. In some implementations, the media processing instructions <NUM> may be divided into audio processing instructions and video processing instructions to facilitate audio processing-related processes and functions and video processing-related processes and functions, respectively.

Each of the above identified instructions and applications may correspond to a set of instructions for performing one or more functions described herein. These instructions need not be implemented as separate software programs, procedures, or modules. The memory <NUM> may include additional instructions or fewer instructions. Furthermore, various functions of the computing device <NUM>/<NUM> may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits.

<FIG> is a block diagram of an example system architecture <NUM> that may implement the features and processes associated with server device <NUM> described herein.

The architecture <NUM> may be implemented on any electronic device that runs software applications derived from compiled instructions, including without limitation personal computers, servers, smart phones, media players, electronic tablets, game consoles, email devices, etc. In some implementations, the architecture <NUM> may include one or more processors <NUM>, one or more input devices <NUM>, one or more display devices <NUM>, one or more network interfaces <NUM>, and one or more computer-readable mediums <NUM>. Each of these components may be coupled by bus <NUM>.

Display device <NUM> may be any known display technology, including but not limited to display devices using Liquid Crystal Display (LCD) or Light Emitting Diode (LED) technology. Processor(s) <NUM> may use any known processor technology, including but not limited to graphics processors and multi-core processors. Input device <NUM> may be any known input device technology, including but not limited to a keyboard (including a virtual keyboard), mouse, track ball, and touch-sensitive pad or display. Bus <NUM> may be any known internal or external bus technology, including but not limited to ISA, EISA, PCI, PCI Express, NuBus, USB, Serial ATA or FireWire. Computer-readable medium <NUM> may be any medium that participates in providing instructions to processor(s) <NUM> for execution, including without limitation, non-volatile storage media (e.g., optical disks, magnetic disks, flash drives, etc.), or volatile media (e.g., SDRAM, ROM, etc.).

Computer-readable medium <NUM> may include various instructions <NUM> for implementing an operating system (e.g., Mac OS®, Windows®, Linux). The operating system may be multiuser, multiprocessing, multitasking, multithreading, real-time, and the like. The operating system may perform basic tasks, including but not limited to: recognizing input from input device <NUM>; sending output to display device <NUM>; keeping track of files and directories on computer-readable medium <NUM>; controlling peripheral devices (e.g., disk drives, printers, etc.) which can be controlled directly or through an I/O controller; and managing traffic on bus <NUM>. Network communications instructions <NUM> may establish and maintain network connections (e.g., software for implementing communication protocols, such as TCP/IP, HTTP, Ethernet, etc.).

Enhancement service instructions <NUM> can include instructions that provide enhancement service <NUM> described herein. For example, enhancement service instructions <NUM> may serve content from content database <NUM> in response to device <NUM>/<NUM> requests as described herein.

Application(s) <NUM> may be an application that uses or implements the processes described herein and/or other processes. The processes may also be implemented in operating system <NUM>.

The described features may be implemented advantageously in one or more computer programs that may be executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program may be written in any form of programming language (e.g., Objective-C, Java), including compiled or interpreted languages, and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.

Suitable processors for the execution of a program of instructions may include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors or cores, of any kind of computer. Generally, a processor may receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer may include a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer may also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data may include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).

To provide for interaction with a user, the features may be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.

The features may be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system may be connected by any form or medium of digital data communication such as a communication network.

The computer system may include clients and servers. A client and server may generally be remote from each other and may typically interact through a network. The relationship of client and server may arise by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

One or more features or steps of the disclosed embodiments may be implemented using an API. An API may define one or more parameters that are passed between a calling application and other software code (e.g., an operating system, library routine, function) that provides a service, that provides data, or that performs an operation or a computation.

The API may be implemented as one or more calls in program code that send or receive one or more parameters through a parameter list or other structure based on a call convention defined in an API specification document. A parameter may be a constant, a key, a data structure, an object, an object class, a variable, a data type, a pointer, an array, a list, or another call. API calls and parameters may be implemented in any programming language. The programming language may define the vocabulary and calling convention that a programmer will employ to access functions supporting the API.

In some implementations, an API call may report to an application the capabilities of a device running the application, such as input capability, output capability, processing capability, power capability, communications capability, etc..

<FIG> shows a call enhancement process <NUM> according to an embodiment of the invention. Process <NUM> is performed by devices shown in <FIG>, for example user <NUM> device <NUM>, user <NUM> device <NUM>, and/or server device <NUM>. Process <NUM> establishes one or more connections between user <NUM> device <NUM> and server device <NUM>, between user <NUM> device <NUM> and server device <NUM>, and/or between user <NUM> device <NUM> and user <NUM> device <NUM>. Through the one or more connections, users of user devices <NUM>, <NUM> share content with one another during a cellular call and/or add other call-enhancing elements to the call. Process <NUM> may be triggered when one of the user devices, which may be equipped with an app or other call enhancement systems, initiates a call to the other.

At step <NUM>, user <NUM> may initiate a call to user <NUM> on the cell carrier network (cell/TDM) or other calling network <NUM>. Enhanced calling systems of user <NUM> device <NUM> may determine that the call has been placed.

At step <NUM>, user <NUM> device <NUM> may extract the identifier (e.g., phone number or other identifier, e.g., IP address, username, Bluetooth address, audio identifier, etc.) from data or metadata associated with the initiated call. For example, the phone number may be found in a voice calling subroutine of the mobile operating system of user <NUM> device <NUM> in some embodiments. In these embodiments, user <NUM> device <NUM> may extract the phone number from the voice calling subroutine data.

At step <NUM>, user <NUM> device <NUM> may send the extracted identifier to server device <NUM>. User <NUM> device <NUM> may also send user <NUM> authentication information. For example, authentication information may include a user identifier, account password, combination thereof, or other uniquely identifying data that server device <NUM> may use to locate content and/or other call-enhancing elements associated with user <NUM> in content database <NUM>. User <NUM> device <NUM> may send the identifier and/or authentication information to the server through an API.

At step <NUM>, user <NUM> device <NUM> may receive the call initiated by user <NUM> at step <NUM>. Enhanced calling systems of user <NUM> device <NUM> may determine that the call has been received.

At step <NUM>, user <NUM> device <NUM> may extract the identifier from data or metadata associated with the received call. For example, the phone number may be found in a voice calling subroutine of the mobile operating system of user <NUM> device <NUM> in some embodiments. In these embodiments, user <NUM> device <NUM> may extract the phone number from the voice calling subroutine data.

At step <NUM>, server device <NUM> may authenticate user <NUM>. For example, server device <NUM> may identify a user account associated with the user <NUM> authentication information sent by user <NUM> device <NUM>. The user account may provide access to content available either by a general multi-person profile containing stored or linked video, audio and/or web content; or by a specific targeted, single-person profile containing stored or linked video, audio and/or web content.

At step <NUM>, user <NUM> device <NUM> and/or server device <NUM> may perform a content lookup process for user <NUM>. For example, user <NUM> device <NUM> may search a local cache in user <NUM> device <NUM> memory for content and/or other call-enhancing elements stored on device or previously retrieved from server device <NUM> and cached. Additionally and/or alternatively, server device <NUM> may look up data associated with user <NUM> in content database <NUM>. The content database <NUM> lookup may be performed in response to a request from user <NUM> device <NUM> for a specific call-enhancing element and/or automatically so that call-enhancing elements can be identified and presented to the user of user <NUM> device <NUM> for selection. Additionally and/or alternatively, user <NUM> device <NUM> may obtain call-enhancing elements directly from user <NUM> device <NUM>, as described below (e.g., see step <NUM>). If the same content is found in multiple locations, user <NUM> device <NUM> may compare time stamps in content metadata to see which version of the content is the most recently updated version. User <NUM> device <NUM> may use the most recently updated version of the content.

In some embodiments and/or situations, steps <NUM> and/or <NUM> may be performed before and/or concurrently with steps <NUM>-<NUM>. For example, user <NUM> device <NUM> may be authenticated and/or may gather content while user <NUM> device <NUM> is receiving the call, extracting the identifier, and communicating with server device <NUM>.

At step <NUM>, user <NUM> device <NUM> and/or server device <NUM> may perform a content lookup process for user <NUM>. For example, user <NUM> device <NUM> may search a local cache in user <NUM> device <NUM> memory for call-enhancing elements stored on device or previously retrieved from server device <NUM> and cached. Additionally and/or alternatively, server device <NUM> may look up data associated with user <NUM> in content database <NUM>. The content database <NUM> lookup may be performed in response to a request from user <NUM> device <NUM> for a specific call-enhancing element and/or automatically so that call-enhancing elements can be identified and presented to the user of user <NUM> device <NUM> for selection. Additionally and/or alternatively, user <NUM> device <NUM> may obtain call-enhancing elements directly from user <NUM> device <NUM>, as described below (e.g., see step <NUM>). If the same content is found in multiple locations, user <NUM> device <NUM> may compare time stamps in content metadata to see which version of the content is the most recently updated version. User <NUM> device <NUM> may use the most recently updated version of the content.

In some embodiments and/or situations, steps <NUM> and/or <NUM> may be performed before and/or concurrently with steps <NUM> and/or <NUM>. For example, user <NUM> device <NUM> and user <NUM> device <NUM> may be authenticated and/or may gather call-enhancing elements concurrently and/or in any order.

At step <NUM>, user <NUM> device <NUM> and user <NUM> device <NUM> establish a direct data connection between one another. For example, if user <NUM> device <NUM> determines that the most recent or relevant content is available directly from user <NUM> device <NUM>, user <NUM> device <NUM> and user <NUM> device <NUM> may establish a direct IP connection. User <NUM> device <NUM> and user <NUM> device <NUM> may establish the direct IP connection using native authentication (e.g., provided by enhanced calling instructions <NUM>) over calling network <NUM> or over another wireless (e.g., WiFi, Bluetooth, UWB, or other RF or optical signal) or wired IP network available to user <NUM> device <NUM> and user <NUM> device <NUM>. In this example, an API local to user <NUM> device <NUM> (e.g., provided by enhanced calling instructions <NUM>) may request content and/or other information from user <NUM> device <NUM> through the direct connection.

In some embodiments, user <NUM> device <NUM> and user <NUM> device <NUM> may establish a network connection using non-audible and audible sound frequencies, allowing a network to be established outside of IP communication direct between user <NUM> device <NUM> and user <NUM> device <NUM> over the voice channel of calling network <NUM>.

In some embodiments and/or for some types of information transfer (e.g., transfer of sensitive or secured information), user <NUM> device <NUM> and user <NUM> device <NUM> may establish a temporary virtual private network (VPN) to assure the security protection of the information transferred. This in-call VPN may serve as the backbone of secure direct communication between the two or more devices (e.g., user <NUM> device <NUM> and user <NUM> device <NUM>) involved in the call.

User <NUM> device <NUM> and user <NUM> device <NUM> may use the direct data connection for content lookup and sharing. For example, as noted above, user devices <NUM>, <NUM> may request content from one another over the direct data connection. This may occur in situations where one of user devices <NUM>, <NUM> has content the user wishes to share that is not available on the other user device <NUM>, <NUM> or content database <NUM>, or as part of a tiered hunt system wherein each possible source of content (local memory, database <NUM>, other device) is searched and the version with the most recent timestamp is selected.

For example, user devices <NUM>, <NUM> may utilize a network location hunt group to find the most relevant information and content to be shared. For example, a hunt by user <NUM> device <NUM> may start looking for content in a local cache, move to content database <NUM> next, move to any external website and/or database indicated by enhancement service <NUM> next, and user <NUM> device <NUM> last. If there are additional users on the call, their devices may also be included in the hunt group. The hunt may also aggregate information from each of the different content storage locations. For example, in the case of having more than two devices on a call (e.g., <NUM> way calling or conference calling), information may be pulled from multiple locations and provided to user <NUM> device <NUM> for access by the user.

User <NUM> device <NUM> and user <NUM> device <NUM> may use the direct data connection for ad-hoc sending of media or information from locally stored sources (e.g., memory of respective devices <NUM>, <NUM>) and/or from information input during the call (e.g., through user interaction with one or more device <NUM>, <NUM> applications, for example a photo taken by a user during the call).

User <NUM> device <NUM> and user <NUM> device <NUM> may use the direct data connection to exchange control and signaling information to provide additional services above and beyond, or instead of, providing the stored content. For example, control and signaling information may include tagging of voice calls as "Urgent" using audio and visual identifications. Control and signaling information may include sending ad-hoc information between mobile handsets such as location, VCard information, contextual social media requests, etc..

<FIG> shows an enhanced phone call scenario according to an embodiment of the invention. In this scenario, a call has been established according to process <NUM> of <FIG>, for example, with communication channel <NUM> between user <NUM> device <NUM> and server device <NUM>, communication channel <NUM> between user <NUM> device <NUM> and server device <NUM>, and communication channel <NUM> between user <NUM> device <NUM> and server device <NUM>.

As shown in <FIG>, user <NUM> device <NUM> may receive and display user <NUM> content <NUM>, which may include uploaded or otherwise provided by user <NUM> and associated with user <NUM>'s profile and mobile identifier. For example, user <NUM> may wish to share a content element with user <NUM> and may enter a command to that effect through user <NUM> device <NUM>. User <NUM> device <NUM> may receive information identifying the content element from user <NUM> device <NUM> (e.g., through communication channel <NUM>). User <NUM> device <NUM> may obtain the content element in its own memory, by requesting a search of content database <NUM> by enhancement service <NUM> of server device <NUM>, and/or from user <NUM> device <NUM> through communication channel <NUM>. In the event multiple copies of the content element are found, user <NUM> device <NUM> may select and display the most recently created or edited version.

Similarly, user <NUM> device <NUM> may receive and display user <NUM> content <NUM>, which may include uploaded or otherwise provided by user <NUM> and associated with user <NUM>'s profile and mobile phone number. For example, user <NUM> may wish to share a content element with user <NUM> and may enter a command to that effect through user <NUM> device <NUM>. User <NUM> device <NUM> may receive information identifying the content element from user <NUM> device <NUM> (e.g., through communication channel <NUM>). User <NUM> device <NUM> may obtain the content element in its own memory, by requesting a search of content database <NUM> by enhancement service <NUM> of server device <NUM>, and/or from user <NUM> device <NUM> through communication channel <NUM>. In the event multiple copies of the content element are found, user <NUM> device <NUM> may select and display the most recently created or edited version.

User <NUM> device <NUM> and user <NUM> device <NUM> may include context-sensitive Uls (e.g., Ul <NUM> of user <NUM> device <NUM> and UI <NUM> of user <NUM> device <NUM>). Uls <NUM>, <NUM> may present user-selectable options based on one or more factors related to the call. For example, options presented in UI <NUM> may be based on predictive analytics and observed behaviors of user <NUM> while talking specifically with user <NUM>. If user <NUM> frequently uses one or more call enhancement features, and/or selects one or more specific content elements, during calls with user <NUM>, UI <NUM> may present options for selecting those features and/or elements. In another example, options presented in UI <NUM> may be based on the preferences of user <NUM> regarding user <NUM>. If user <NUM> has identified certain call enhancement features and/or content elements as being important for use in calls with user <NUM> (e.g., in a settings menu or call menu of a call enhancement app or the like), UI <NUM> may present options for selecting those features and/or elements. User <NUM> device <NUM> may automatically determine that these enhancement features and/or content elements are important as well (e.g., based on the designation of user <NUM> as having a specific relationship to user <NUM> such as a spouse or member of a friend or work circle or the like).

<FIG> shows an enhanced text message scenario according to an embodiment of the invention. This scenario may be similar to the call scenario of <FIG>, wherein a text messaging chain may have been established according to process <NUM> of <FIG>, for example, with communication channel <NUM> between user <NUM> device <NUM> and server device <NUM>, communication channel <NUM> between user <NUM> device <NUM> and server device <NUM>, and communication channel <NUM> between user <NUM> device <NUM> and server device <NUM>. As in the calling scenario, devices <NUM> and <NUM> may extract sender and recipient phone numbers from the text message data as messages are sent and/or received.

As in <FIG>, user <NUM> device <NUM> may present context-sensitive UI <NUM>, and user <NUM> device <NUM> may present context-sensitive UI <NUM>, and these Uls <NUM>, <NUM> may function similarly to those of <FIG>. However, they may be used to insert content into text messages (e.g., message <NUM> of user <NUM> device <NUM> and/or message <NUM> of user <NUM> device <NUM>). User devices <NUM>, <NUM> may also include default enhancements, for example providing each user to connect with one another through social media platforms within the text messages <NUM>, <NUM>.

<FIG> shows an enhanced consumer to business call scenario according to an embodiment of the invention. In this scenario, one party to the call is user <NUM> on user <NUM> device <NUM>, and the call is made through calling network <NUM>, but the other party is a business system, for example comprising interactive voice response (IVR) device <NUM> and/or contact center device <NUM>. IVR device <NUM> and/or contact center device <NUM> may each comprise one or more servers or other computers or elements thereof and, in some embodiments, may both be elements of a single server or other computer.

In this scenario, a call may have been established according to process <NUM> of <FIG>, for example, with user <NUM> device <NUM> and IVR <NUM> communicating over cellular/TDM network <NUM>, user <NUM> device <NUM> and server device <NUM> communicating over the Internet <NUM>, and contact center device <NUM> and server device <NUM> communicating over the Internet <NUM> (e.g., using an API <NUM>).

IVR <NUM> may provide enhanced call features to user <NUM> device <NUM> related to the products and/or services offered by the business. For example, IVR <NUM> may share content such as order information, order confirmations, visual data about products or services, etc. This content may be shared according to process <NUM>, as discussed above. Likewise, user <NUM> device <NUM> may share content with IVR <NUM> according to process <NUM>, such as dual tone multi frequency (DTMF) signals, location information of user <NUM> device <NUM>, personal user identifying data, payment information, identity/authentication information for account access, etc..

<FIG> show call enhancement interfaces according to embodiments of the invention. In <FIG>, interface <NUM> is a conference call information interface that may include options for adjusting volume, muting, recording, and/or changing conference facilitator. UI <NUM> may include options such as send identity/authentication, send contact information, send current location, send payment, receive visual order information, receive confirmation information, receive pictures, and/or interactive contact center sessions. When a user selects an option, user <NUM> device <NUM> and the other device on the call (e.g., user <NUM> device or IVR, not shown) may exchange call enhancement data (e.g., content) as discussed above in process <NUM> of <FIG>.

In <FIG>, interface <NUM> is an airline call center interface, and interfaces 806A/B are flight option interfaces (e.g., for picking seats and paying for seats). UI <NUM> may include options such as send identity/authentication, send contact information, send current location, send payment, receive visual order information, receive confirmation information, receive pictures, and/or interactive contact center sessions. User <NUM> device <NUM> and call center may exchange call enhancement data over connection <NUM>, which may be established according to process <NUM> described above, for example. In this case, the call center can share content for interactively selecting flights and seats and paying for the selections, and the user device can share selections. While this example is presented in the context of an airline purchase, those of ordinary skill in the art will recognize that other transactions may be accomplished similarly.

<FIG> shows interfaces for social network interaction during a call which can be provided by process <NUM> of <FIG>, as described above. For example, UI <NUM> may include options for selecting various social networks. Icons <NUM> for networks on which the user of user <NUM> device <NUM> and the user of user <NUM> device <NUM> are connected may be highlighted with a visual cue (e.g., a color, a checkmark, etc.). Selecting icon <NUM> may cause device <NUM>, <NUM> to retrieve the social network information (e.g., the profile) of the other user on the call from the appropriate location on the Internet <NUM>. In some embodiments, selecting icon <NUM> may cause the device (e.g., user <NUM> device <NUM>) to show a confirmation prompt <NUM> which may be selected to confirm or deny accessing the social media content.

Icons <NUM> for networks on which both users are present but not connected may be highlighted with a different visual cue (e.g., a different color, etc.). Selecting icon <NUM> may cause device <NUM>, <NUM> to connect with the other user on the selected social network on the Internet <NUM>. In some embodiments, selecting icon <NUM> may cause both devices <NUM>, <NUM> to show confirmation prompts <NUM>, <NUM> which may be selected to confirm or deny the social media connection.

<FIG> show call enhancement features according to embodiments of the invention. These features may be employed by devices <NUM>, <NUM> that have connected according to process <NUM> of <FIG>, for example. In <FIG>, the user of user <NUM> device <NUM> may select an option to send their location to user <NUM> in device UI <NUM>. User <NUM> device <NUM> may share the device location (e.g., obtained by GPS, WiFi or cellular triangulation, or in some other way) over connection <NUM> between devices <NUM>, <NUM>. User <NUM> device <NUM> may receive the data from user <NUM> and may present prompt <NUM> allowing user <NUM> to access the data. If user <NUM> accepts the data, user <NUM> device <NUM> may display location <NUM> sent by user <NUM> device <NUM>.

In <FIG>, the user of user <NUM> device <NUM> may use a drawing app or app feature <NUM> to initiate a shared drawing session. User <NUM> device <NUM> may send an invitation to user <NUM> device <NUM> over the connection between devices <NUM>, <NUM>. User <NUM> device <NUM> may receive the data from user <NUM> and may present prompt <NUM> allowing user <NUM> to access the data. If user <NUM> accepts the data, user <NUM> device <NUM> may display shared drawing session <NUM> initiated by user <NUM> device <NUM>. User devices <NUM>, <NUM> may collaborate and share drawing data during the session over the connection between devices <NUM>, <NUM>. The drawing edits may be controlled by the initiating party, or the initiating party may be able to hand control over to the receiving party through a UI in the drawing app or feature.

In <FIG>, the user of user <NUM> device <NUM> may use a music/audio sharing app or app feature <NUM> to initiate a shared music/audio session. User <NUM> device <NUM> may send an invitation to user <NUM> device <NUM> over the connection between devices <NUM>, <NUM>. User <NUM> device <NUM> may receive the data from user <NUM> and may present prompt <NUM> allowing user <NUM> to access the data. If user <NUM> accepts the data, user <NUM> device <NUM> may display shared music/audio session <NUM> initiated by user <NUM> device <NUM>. User devices <NUM>, <NUM> may present the same music/audio during the session over the connection between devices <NUM>, <NUM>. The music/audio selection may be controlled by the initiating party, or the initiating party may be able to hand control over to the receiving party through a UI in the music/audio sharing app or feature.

In <FIG>, the user of user <NUM> device <NUM> may use a video/image sharing app or app feature <NUM> to initiate a shared video/image session. User <NUM> device <NUM> may send an invitation to user <NUM> device <NUM> over the connection between devices <NUM>, <NUM>. User <NUM> device <NUM> may receive the data from user <NUM> and may present prompt <NUM> allowing user <NUM> to access the data. If user <NUM> accepts the data, user <NUM> device <NUM> may display shared video/image session <NUM> initiated by user <NUM> device <NUM>. User devices <NUM>, <NUM> may present the same video/image during the session over the connection between devices <NUM>, <NUM>. The video/image selection may be controlled by the initiating party, or the initiating party may be able to hand control over to the receiving party through a UI in the video/image sharing app or feature.

In <FIG>, the user of user <NUM> device <NUM> may use a text sharing app or app feature <NUM> to initiate a shared text session (e.g., to share an article or other document). User <NUM> device <NUM> may send an invitation to user <NUM> device <NUM> over the connection between devices <NUM>, <NUM>. User <NUM> device <NUM> may receive the data from user <NUM> and may present prompt <NUM> allowing user <NUM> to access the data. If user <NUM> accepts the data, user <NUM> device <NUM> may display shared text session <NUM> initiated by user <NUM> device <NUM>. User devices <NUM>, <NUM> may present the same text during the session over the connection between devices <NUM>, <NUM>. The text selection may be controlled by the initiating party, or the initiating party may be able to hand control over to the receiving party through a UI in the text sharing app or feature.

In <FIG>, the user of user <NUM> device <NUM> may use a gaming app or app feature <NUM> to initiate a shared gaming session. User <NUM> device <NUM> may send an invitation to user <NUM> device <NUM> over the connection between devices <NUM>, <NUM>. User <NUM> device <NUM> may receive the data from user <NUM> and may present prompt <NUM> allowing user <NUM> to access the data. If user <NUM> accepts the data, user <NUM> device <NUM> may display shared gaming session <NUM> initiated by user <NUM> device <NUM>. User devices <NUM>, <NUM> may each receive input from their respective users to allow the users to play a game with one another.

<FIG> show external application integration features according to embodiments of the invention. For example, as discussed above, companies can receive calls from customers, and the respective devices may establish connections according to process <NUM> of <FIG>. When the connections are established, user device <NUM>, <NUM> may be able to access systems/applications provided by company devices during the call. For example, in <FIG>, user <NUM> device <NUM> accesses a CRM application UI <NUM>. In <FIG>, user <NUM> device <NUM> accesses a collaboration or service tool.

The above discussion details how content and/or other call-enhancing elements may be shared among devices. Note that while "content" is given as an example call-enhancing element throughout the description, other call-enhancing elements may be handled similarly to content. The following is a representative, but non-exhaustive, sample of call-enhancing elements that may be shared according to the systems and methods described herein.

While various embodiments have been described above, it should be understood that they have been presented by way of example and not limitation. It will be apparent to persons skilled in the relevant art(s) that various changes in form and detail can be made within the scope of the claims. In fact, after reading the above description, it will be apparent to one skilled in the relevant art(s) how to implement alternative embodiments.

In addition, it should be understood that any figures which highlight the functionality and advantages are presented for example purposes only. The disclosed methodology and system are each sufficiently flexible and configurable such that they may be utilized in ways other than that shown.

Claim 1:
A method of providing one or more enhanced communication features during a communication, the method comprising:
detecting a destination identifier for a communication sent by a first device (<NUM>), the destination identifier being an identifier associated with a second device (<NUM>);
detecting a source identifier for the communication sent by the first device, the source identifier being an identifier associated with the first device;
establishing a connection between the first device and the second device;
sharing, by the connection, at least one of at least a first call-enhancing element with the first device and at least a second call-enhancing element with the second device, each call-enhancing element being associated with at least one of the source identifier and the destination identifier, wherein:
the first call-enhancing element comprises first content data including at least one of first audio content, first visual content, and first interactive content, and
the second call-enhancing element comprises second content data different from the first content data, the second content data including at least one of first second content, first second content, and second interactive content; and
exchanging, by a separate connection from the connection by which the first call-enhancing element and the second call-enhancing element are shared, communication data between the first device and the second device.