The present disclosure is generally targeted at applications running on computing platforms and more specifically, toward handling one or more communication sessions through a user interface on the communication platform.
In today's mobile society, the need to be constantly connected has become a virtual necessity. As such, users often depend on their communication device for quick and easy access to individuals or entities. Often times, this may require the need for one or more calls to be actively and simultaneously connected to the communication device.
Typically, when a user has an incoming call, a pop-up screen or similar notification indicator is presented. The pop-up screen will generally provide the user with the option to accept or reject the call. Sometimes, if there is currently an active call in progress, the initial call can be placed on hold. Nevertheless, managing multiple calls can be cumbersome and current methods such as pop-ups are quite limiting and frustrating at times.
Thus, a number of issues are arising from this scenario. One such issue is the inability for a user to quickly and easily switch between multiple active calls. Another issue is the absence of a centralized location for viewing and managing multiple calls. This is especially true when needing to initiate and merge more than one call. Some of the complexities with multiple calls on the same device include contention between applications that must be in the foreground (e.g., on iOS there can only be one), the contention can be between applications for the same speaker/microphone, and the limited screen real estate. Still another issue is the inconvenience presented to a user who desires keep a call on the line, switch between the calls, or access call features, tasks that are generally not possible, not optimized for small screen devices or small application windows or take numerous steps making the process quite cumbersome and difficult to follow.
Embodiments of the present disclosure proposed herein provide one or more mechanisms to maintain and display multiple communication threads using an active call view. Although embodiments of the present disclosure will be described in connection with managing multiple “active calls”, it should be appreciated that embodiments of the present disclosure are not so limited. In fact, the concepts disclosed and claimed herein can be used to manage multiple communication threads of different types, some of which may or may not correspond to active voice calls. For instance, embodiments of the present disclosure can be used to manage one or multiple video calls, voice calls, text chats, emails threads, multi-media interactions, web-chats, or combinations thereof. Thus, the use of the term “call” should not be construed as limiting the present disclosure to the management of voice calls only.
In some embodiments, the active call view can provide a user with the ability to quickly access call features and view details regarding current calls. In some embodiments, the active call view user interface can include a call stack attribute which allows a user to have a dynamic notification as to the status of in-progress calls. In other embodiments, the peripheral active call view provides a sliding window to show and activate other call appearances such as the features view associated with a call on hold, a call on mute, etc.
In accordance with at least some embodiments of the present invention, a method is provided that generally comprises:
The phrases “at least one”, “one or more”, and “and/or” are open-ended expressions that are both conjunctive and disjunctive in operation. For example, each of the expressions “at least one of A, B and C”, “at least one of A, B, or C”, “one or more of A, B, and C”, “one or more of A, B, or C” and “A, B, and/or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together.
The term “a” or “an” entity refers to one or more of that entity. As such, the terms “a” (or “an”), “one or more” and “at least one” can be used interchangeably herein. It is also to be noted that the terms “comprising”, “including”, and “having” can be used interchangeably.
The term “automatic” and variations thereof, as used herein, refers to any process or operation done without material human input when the process or operation is performed. However, a process or operation can be automatic, even though performance of the process or operation uses material or immaterial human input, if the input is received before performance of the process or operation. Human input is deemed to be material if such input influences how the process or operation will be performed. Human input that consents to the performance of the process or operation is not deemed to be “material”.
The term “computer-readable medium” as used herein refers to any tangible storage that participates in providing instructions to a processor for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, NVRAM, or magnetic or optical disks. Volatile media includes dynamic memory, such as main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, magneto-optical medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, a solid state medium like a memory card, any other memory chip or cartridge, or any other medium from which a computer can read. When the computer-readable media is configured as a database, it is to be understood that the database may be any type of database, such as relational, hierarchical, object-oriented, and/or the like. Accordingly, the invention is considered to include a tangible storage medium and prior art-recognized equivalents and successor media, in which the software implementations of the present invention are stored.
The terms “determine”, “calculate”, and “compute,” and variations thereof, as used herein, are used interchangeably and include any type of methodology, process, mathematical operation or technique.
The term “module” as used herein refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and software that is capable of performing the functionality associated with that element. Also, while the invention is described in terms of exemplary embodiments, it should be appreciated that individual aspects of the invention can be separately claimed.
The present disclosure is described in conjunction with the appended figures, which are not necessarily drawn to scale:
The ensuing description provides embodiments only, and it is not intended to limit the scope, applicability, or configuration of the claims. Rather, the ensuing description will provide those skilled in the art with an enabling description for implementing the embodiments. It being understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the appended claims.
While embodiments of the present disclosure will be primarily described in connection with a user interface on a wireless communication device, it should be appreciated that embodiments of the present disclosure are not so limited.
Various aspects of the present disclosure will be described herein with reference to drawings that are schematic illustrations of idealized configurations. It should be appreciated that while particular user interface arrangements and configurations are described herein, embodiments of the present disclosure are not limited to the illustrative display configurations and/or user interface depictions and descriptions. Specifically, it should be appreciated that features, functions and various views may be replaced or added to achieve a similar function without departing from the scope of the present disclosure.
Presented herein are embodiments of a system and method that solve the drawbacks associated with receiving and transmitting information regarding multiple calls. The embodiments may relate to a communication device. The overall design and functionality of the system described herein is, as one example, to provide a more efficient means for a device to present and manage multiple calls using a user interface for display of the multiple calls on a call stack view.
Embodiments provide a novel mechanism that facilitates a simple and efficient process for managing one or more cellular calls on a wireless communication device. The embodiments generally reduce the complexity involved in connecting a wireless communication device with one or more wireless devices. As a result, an easy way to move between calls is presented providing a user with peripheral views for toggling between active calls. Other advantages exist as will be discussed herein.
A general depiction of a user 112 employing a communication device 104 to interact with other devices 108a, 108b is illustrated on
During the communication between the communication device 104 and the two or more devices 108, one or more of the calls can be affected or even dropped. Additionally, if by chance a call is not dropped, the ability to merge or add a call to the line, can be a challenge. In accordance with some embodiments, presenting a user interface for managing multiple calls on the communication device 104 can provide beneficial. Further, presenting a method to optimize numerous calls is an advantage that is described below in conjunction with
An example of a communication device architecture is shown in
The communication device 104 can have one or more antennas 204 used in signal transmission. The signal transmission can include communications such as multi-input multi-output (MIMO) communications, Bluetooth®, Device to Device (D2D) communications, NFC, etc. The antennas 204 can include, but are not limited to directional antennas, omnidirectional antennas, monopoles, patch antennas, loop antennas, microstrip antennas, dipoles, and any other antenna suitable for communication transmission.
The communication device architecture includes a transmitter 220 and receiver 236 which are use for data transmission and reception between one or more communication devices 104, using the one or more antennas 204. When the signal is received at the antenna, the signal will generally progress to the Analog Front End (AFE) 208. The AFE 208 is a module that sits between the antennas and the analog-to-digital (A/D) converter, for signal conditioning and digital processing. In some instances, the A/D is part of the AFE 208.
Included in the communication device architecture is also a controller/microprocessor 228 and memory/storage 224. These components are commonly known in the art and are configured to perform those functions as known and understood by those skilled in the art. For example, the controller/microprocessor 228 is used for processing the digital data from the AFE 208 and can include Application Specific Integrated Circuits (ASICs), digital signal processors, controllers, logic circuits, gate arrays, specific purpose computers, and the like. The memory/storage 224 is used store and retrieve instructions in connection with the controller/microprocessor 228 and can include temporary or long term storage as well as RAM, ROM, DRAM, SDRAM, and other storage devices and media.
The MAC circuitry 212 and Network Access Unit 232 are other modules located within the architecture of the wireless communication device 104. The Network Access Unit 232 can work as a medium used for connectivity between devices and can work in conjunction with at least the MAC circuitry 212. The MAC circuitry 212 can be arranged to contend for a wireless medium and can aid in configuring the packets and frames that will be transmitted over the communication medium.
The communication architecture can also contain a security module 214. The security module can contain information including but not limited to network parameters, WEP and WPA security access keys, network keys, and other codes needed to communicate and access the networks communicating with the wireless communication device 104.
For error handling, as mentioned above, the communication device 104 can contain a display 244, a Graphical User Interface (GUI) module 240 and a Call View Management module 216. The GUI module 240 is a module that can be used for managing, manipulating and/or controlling the user interface presented below and in conjunction with
The modules described and others known in the art can be used with the communication device 104 and can be configured to perform the operations described herein and in conjunction with
Additional attributes and options provided by the active call view 308 can include options 324,328 for communicating over the cellular network such as, connecting the call over a Bluetooth device, putting the call on speaker or hold, disconnecting from the call, and even merging the call with other calls.
A feature that is available through the call stack attribute 304, is the ability to navigate the user 112 to a secondary screen where a call stack view 408 presents a user 112 with a listing of the current calls, if multiple calls are simultaneously in progress. As an example,
The call stack view 408 also provides a user 112 with easy access to starting a new call using the new connection feature 412. A selection of this feature redirects a user 112 to a dialpad where the call is made and connection established or to a connection set-up area where contacts can be added to establish connection with them. If, no additional calls are desired at the moment, a user 112 may simply select 422 the connections listing area 416 of the desired call, the user would like to return to. In one example, the user 112 selects 422 the connection listing area 416 pertaining to John Long. Upon making the selection, the user 112 is returned 424 to John's active call view 308. Notice that in this instance, no additional connections were added, as such the call stack attribute 304 indicates “1 Call.” Alternatively, if the user would have selected the new connection feature 412 in the call stack view 408 and connected with a second individual/entity, the call stack attribute 304 would be updated to “2 Calls.” The same update to the call stack attribute 304 would also occur had a call been received while on the line with John. Further details regarding the new connection feature 412 are detailed below and in conjunction with
At the call stack view 308, the user 112 has the option to pause the call, add a call, receive a call, and generally get information on the one or more calls on the communication device 104. In addition, the call stack could include calls that are active on the local device or remote line, or appearance that represents calls on other devices. As an example, this call stack view can be used to join or bridge onto a call on another device that shares the same line appearance. A return to the active call view 308 once the user 112 is done with the call stack view 308, is possible through a tap 514 on the connections listing area 416. Swiping, tapping, pinching, dragging and other gestures are also possible gestures available for the transition 516 back to the active call view 308.
If a user 112 desires to add a connection to the current call, the call stack view 408 offers the new connection feature which provides such an option. To illustrate the use of this feature,
As described above and in conjunction with
In making multiple connections, various options are available for making those connections. For example,
As the call is connected 720, the active call view 308 appears. The active call view 308 again includes details on the call, the features attribute 312 and the call stack attribute 304. The call stack attribute 304 being a dynamic feature automatically updates the N calls, (i.e. from “1 Call” to “2 Calls”) to reflect the addition of the call. Alternatively, if a call had disconnected, the N call would update accordingly. Thereafter, by selecting on the call stack attribute 720, the user 112 gets an updated view of the call stack view 408 with a listing of the now current calls with corresponding connections listing areas 416a, 416b.
In one exemplary embodiment, the wireless communication device user 112 is on the line with John Long. To display the connection, the active call view 308, user interface is presented with the call stack attribute 304 indicating the “1 Call.” User 112 decides to add a call and selects 704 the contacts option, which prompts display of the contact list view and the user selects Donna Jefferies and gets the contact view 708. At the contact view, the user 112 connects 716 with Donna Jefferies. Donna Jefferies' active call view 308 appears as the connection occurs. A depression 722 on the now updated “2 Call” call notification attribute 304 prompts 724 display of the call stack view 408 with a listing of both John's and Donna's call details.
The user 112 can select the appropriate features he/she is interested in using and then navigates back 820 to the active call view. To transition back to the active call view 308, the user 112 can select 828 any part of the active call view 308 that remains exposed. Alternatively, the user 112 can select a Back option which can be available from the features view 808 (not shown). The input by the user 112 will cause the active call view 308 to fully consume the screen either by sliding, popup, stack, cascade or rolodex display.
For example, we have a first call with John Long. User 112 is interested in making a second connection with Donna Jefferies. To combine both calls to one conversation, the user 112 can reach for the features attribute 312 on his active call view 308 to conference Donna Jefferies into the conversation. The features attribute 312 prompts the transition into the features view 808 where the user 112 can select 816 the merge option to combine John and Donna's conversation. Upon finishing with the features, the user can simply return to the active call view which will display be displayed when any part of the exposed active call view 308 is selected.
The call received or made, prompts the display of an active call view on step 912. In the active call view 912, the opportunity exists to stay in the call as is, access the call stack at step 916 or access the call features at step 920. In step 916, a user is presented with the option to navigate via the call stack attribute to the call stack view to step 928. Access to the call stack view is also available via hand gestures including swiping, tapping, dragging, etc.
If a user is not interested in moving forward to a call stack view, the option exists to continue to the features view to access the call features. Access to the call features, as provided above an in conjunction with
Back at step 928, the decision was made to continue with the call stack view and display of that user interface is presented. In the call stack view, the user has access to a listing of the current connections located within the connections listing area and the option in step 932, to begin a new conversation. If a new connection is not required or desired, the wireless communication device can return to the active call view on step 952. However, if adding a new conversation is preferred, the process continues to step 936. The new connection can be accessed in one of a numerous ways including using the new connection option or through the use of the contacts option in step 936. The connection is made in step 940.
With multiple calls on the line, the option exists to return to the call stack view in step 944. By returning to the call stack view, alternatives are available as to the management of the multiple calls. Step 948 presents those options where access to the features view so as to merge the calls, drop a call, pause a call, etc., exists. Once those actions are complete, a return to the active call view occurs in step 952. If however, the wish is to skip the call stack view, return to the active call view is immediately available as the process skips to step 952 and ends at step 940.
In the foregoing description, for the purposes of illustration, methods were described in a particular order. It should be appreciated that in alternate embodiments, the methods may be performed in a different order than that described. It should also be appreciated that the methods described above may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used to cause a machine, such as a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the methods. These machine-executable instructions may be stored on one or more machine readable mediums, such as CD-ROMs or other type of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other types of machine-readable mediums suitable for storing electronic instructions. Alternatively, the methods may be performed by a combination of hardware and software.
Specific details were given in the description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
Also, it is noted that the embodiments were described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
While illustrative embodiments of the disclosure have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art.