Patent Publication Number: US-9408077-B1

Title: Communication action bar in a multimodal communication device

Description:
PRIORITY 
     This application claims the benefit of U.S. Provisional Application No. 60/814,172, which was filed on Jun. 16, 2006. 
    
    
     TECHNICAL FIELD 
     Embodiments of the present invention relate to communication devices, and more specifically to communication devices that are capable of communicating using multiple communication modes. 
     BACKGROUND 
     A multimodal communication device is a communication device that is capable of communicating using multiple different communication modes. Many of the communication modes found on a modern multimodal communication device were originally developed for desktop computers. Examples of such communication modes include instant messaging (IM), email, and peer-to-peer (P2P) voice. The user interface environment for which these communication modes were developed includes a large screen (e.g., 15 inch monitor), a full keyboard, and a pointing device (e.g., a mouse). 
     Communication modes that were originally developed for desktop computers have been added to mobile devices such as cellular phones. However, mobile devices are generally designed to be small, lightweight and easily portable. Accordingly, mobile devices typically have displays of limited size and have limited input devices. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which: 
         FIG. 1A  illustrates a high level block diagram of a multimodal communication device, in accordance with one embodiment of the present invention; 
         FIG. 1B  illustrates a multimodal communication device, in accordance with one embodiment of the present invention; 
         FIG. 2  illustrates a list of views that may be presented via a user interface of a multimodal communication device, in accordance with one embodiment of the present invention; 
         FIG. 3  illustrates a home view, in accordance with one embodiment of the present invention; 
         FIG. 4A  illustrates a unified inbox view of a graphical user interface presented by a multimodal communication device, in accordance with one embodiment of the present invention; 
         FIG. 4B  illustrates a unified inbox view of a graphical user interface presented by a multimodal communication device, in accordance with another embodiment of the present invention; 
         FIG. 4C  illustrates a unified inbox view of a graphical user interface presented by a multimodal communication device, in accordance with yet another embodiment of the present invention; 
         FIG. 5A  illustrates a unified contacts view of a graphical user interface presented by a multimodal communication device, in accordance with one embodiment of the present invention; 
         FIG. 5B  illustrates a unified contacts view of a graphical user interface presented by a multimodal communication device, in accordance with another embodiment of the present invention; 
         FIG. 5C  illustrates a unified contacts view of a graphical user interface presented by a multimodal communication device, in accordance with yet another embodiment of the present invention; 
         FIG. 6  illustrates a settings view of a graphical user interface presented by a multimodal communication device, in accordance with one embodiment of the present invention; 
         FIG. 7A  illustrates a media view of a graphical user interface presented by a multimodal communication device, in accordance with one embodiment of the present invention; 
         FIG. 7B  illustrates a media view of a graphical user interface presented by a multimodal communication device, in accordance with another embodiment of the present invention; 
         FIG. 7C  illustrates a fullscreen media view, in accordance with one embodiment of the present invention; 
         FIG. 8A  illustrates a contact view of a graphical user interface presented by a multimodal communication device, in accordance with one embodiment of the present invention; 
         FIG. 8B  illustrates a contact view of a graphical user interface presented by a multimodal communication device, in accordance with another embodiment of the present invention; 
         FIG. 8C  illustrates an additional contact view, in accordance with a further embodiment of the present invention; 
         FIG. 8D  illustrates an additional contact view, in accordance with a further embodiment of the present invention; 
         FIG. 8E  illustrates an additional contact view, in accordance with a further embodiment of the present invention; 
         FIG. 8F  illustrates an incoming communication view of a graphical user interface presented by a multimodal communication device, in accordance with another embodiment of the present invention; 
         FIG. 9  illustrates a flow diagram of one embodiment for a method of displaying calls and messages in a user interface of a multimodal communication device; 
         FIG. 10  illustrates a flow diagram of one embodiment for a method of displaying contacts in a user interface of a multimodal communication device; 
         FIG. 11  illustrates a flow diagram of one embodiment for a method of consolidating a list of contacts; 
         FIG. 12  illustrates a flow diagram of one embodiment for a method of communicating with a destination; and 
         FIG. 13  illustrates a flow diagram of another embodiment for a method of communicating with a destination. 
     
    
    
     DETAILED DESCRIPTION 
     Described herein is a method and apparatus for a multimodal communication device capable of automatically determining an optimal communication mode. In one embodiment, a multimodal communication device, receives a user input selecting one of a contact and a stored communication. Each of the contact and the stored communication may be associated with a destination. An optimal global communication mode may automatically be determined to use for communicating with the destination. The optimal global communication mode may be determined from multiple available communication modes. Communication may be initiated with the destination using the optimal global communication mode if a predefined condition is satisfied (e.g., user input is received via a key such as a send key, or when a time interval passes). 
     In the following description, numerous details are set forth. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention. 
     Some portions of the detailed description which follows are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. 
     It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing”, “determining”, “calculating”, “filtering”, “displaying” or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system&#39;s registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. 
     The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions. 
     The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein. 
     A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes a machine readable storage medium (e.g., read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, etc.), a machine readable transmission medium (electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.)), etc. 
       FIG. 1A  illustrates a high level block diagram of a multimodal communication device  100 , in accordance with one embodiment of the present invention. As shown, the multimodal communication device  100  may be any device capable of receiving and transmitting data. In one embodiment, the multimodal communication device  100  is a mobile device such as a mobile phone, a personal digital assistant (PDA), a notebook computer, etc. Alternatively, the multimodal communication device  100  may be a wired phone device such as a voice over internet protocol (VOIP) phone. 
     The multimodal communication device  100  contains a processing unit  135  that is communicatively coupled to other components of the multimodal communication device  100  via a bus  165 . The multimodal communication device  100  also includes memory  125  coupled to the bus  165 . The memory  125  represents any form of random access memory (RAM), read-only memory (ROM), flash memory, or a combination thereof. Memory  125  stores, among other things, the operating system  130  of the multimodal communication device  100 . 
     The multimodal communication device  100  contains a data storage unit  120 . The data storage unit  120  may be or include any conventional medium for storing data in a non-volatile manner. The processing unit  135  and the data storage unit  120  may communicate via the bus  165 . Memory  125  and data storage unit  120  store software instructions and/or data, which may include instructions and/or data used to implement the techniques introduced herein. 
     The multimodal communication device  100  also includes an I/O interface  170 , which may reside on the same microprocessing chip as the processing unit  135 . However, I/O interface  140  may also reside on an external unit. I/O interface  140  connects the processing unit  135  to one or more components for receiving user input or presenting information to a user. The I/O interface  140  may be connected with a keypad input  160 . In one embodiment, the keypad input  160  includes an alphanumeric phone keypad, a joystick, an accept key, programmable softkeys, and SEND/END keys. Alternatively, the keypad may include one or more additional keys instead of or in addition to those keys mentioned. For example, the keypad may include a QWERTY keypad instead of an alphanumeric phone keypad, or a scroll wheel or rollerball instead of the joystick. Other additional keys may include, for example, volume keys, a home key, a back key, etc. The I/O interface  140  may also be connected with a microphone input  150 , a speaker output  155  and a display  145 . The I/O interface  140  may include an analog-to-digital converter for converting an analog microphone signal to a digital signal for use by the processing unit  135 . The I/O interface  140  may also include a digital-to-analog converter to convert digital information from the processing unit  135  to the speaker  155 , such as voice data. 
     The processing unit  135  transmits and receives digital signals which are to be communicated outside the multimodal communication device  100  via the communication unit  105 . In one embodiment, the communication unit  105  is connected to an antenna  110 , which communicates signals through airwaves to a GSM network. In a further embodiment, the multimodal communication device  100  also includes a wireless local area network (WLAN) transceiver  115  to communicate wirelessly with a WLAN (such as a Wi-Fi network) via the antenna  110 . The WLAN transceiver  115  may be coupled with the processing unit  135  via the system bus  165 . In another embodiment, the communication unit  105  is connected with a public network (e.g., Internet) or private network (e.g., Ethernet or a local area Network (LAN)) via a wired connection (e.g., Ethernet cable, coaxial cable, fiber optic, phone cable, etc.). 
       FIG. 1B  illustrates a multimodal communication device  170 , in accordance with one embodiment of the present invention. In one embodiment, the multimodal communication device  170  corresponds to the multimodal communication device  100  of  FIG. 1A . In one embodiment, the multimodal communication device  170  includes an input device  175 , a filter logic component  180 , a selection logic component  185 , a communication logic component  190 , a consolidation logic component  192  and a user interface  195 . Alternatively, the multimodal communication device may include more or fewer logic components. 
     Input device  175  is configured to receive user input. In one embodiment, the input device  175  includes a keypad, such as keypad  160  of  FIG. 1A . Alternatively, the input device  175  may include a touch-sensor pad and/or touch-sensor buttons, a microphone, etc. 
     User interface  195  is configured to present information to a user of the multimodal communication device  170 . The user interface  195  in one embodiment is a graphical user interface, and includes a display such as display  145  of  FIG. 1A . In other embodiments, the user interface  195  may also present audio information and tactile feedback (e.g., vibration) to the user. 
     Filter logic component  180  filters data (e.g., contacts, messages, calls, etc.) to control what data is presented via the user interface  195 . In one embodiment, the filter logic component  180  filters data according to predefined subsets of the data being filtered. Such predefined subsets may be scrolled through (toggled between) upon receiving user input via the input device  175 . For example, a unified inbox may present all incoming and outgoing calls and messages when the filter logic component  180  is not applying a filter. Application of a first predefined subset of the unified inbox by the filter logic component  180  may filter out all calls and messages except for email messages, application of a second predefined subset of the unified inbox may filter out all but incoming phone calls, and so on. 
     In another embodiment, the filter logic component  180  filters data according to keyword searches. Filter logic component  180  may apply keyword search filters to data already filtered by a predefined subset, or to previously unfiltered data. In one embodiment, if a keyword filter is applied to filtered data, the keyword filter further filters the filtered data. In another embodiment, when a keyword filter is applied to filtered data, the previous filter is removed before applying the keyword filter. Keyword filters are applied upon receipt of a keyword via the input device  175 . Keywords may include any combination of alphanumeric symbols and/or other symbols that may be entered via the input device  175 . 
     Selection logic component  185  automatically determines optimal communication modes for communicating with destinations (e.g., a contact, remote sender of a message, remote recipient of a message, etc.). Examples of communication modes include cellular phone call, VOIP, PTT, voice mail, voice email, voice note (Vnote), email, SMS, instant messaging, video call, video email, multimedia messaging service (MMS), etc. Selection logic component  185  may automatically determine an optimal global communication mode (an optimal communication mode chosen from all available communication modes) when a destination is selected and/or when an incoming communication is received. Selection logic component  185  may also automatically determine one or more optimal local communication modes (an optimal communication mode chosen from a subset of all available communication modes) when the destination is selected or the incoming communication is received. 
     Selection logic component  185  may divide the communication modes into distinct communication mode categories, and determine an optimal local communication mode for each communication mode category. In one embodiment, selection logic component  185  divides the communication modes into a synchronous voice communication mode category (including cellular calls, VOIP, PTT, video call, etc.), an asynchronous voice communication mode category (including voice email, voicemail, V-note, video email, etc.), a synchronous text communication mode category (e.g., instant message), and an asynchronous text communication mode category (e.g., email, SMS, etc.). In other embodiments, the communication modes may be divided into other communication mode categories. 
     Selection logic component  185  may also determine an optimal communication mode category with which to initiate or respond to a communication. In one embodiment, selection logic component  185  ranks the communication mode categories from a most optimal communication mode category to a least optimal communication mode category, and causes the communication mode categories to be presented to the user via user interface  195  in ranked order. Alternatively, the communication mode categories may be displayed in a predetermined order regardless of which communication mode category is optimal. 
     Selection logic component  185  may automatically determine an optimal global communication mode and optimal local communication modes based on multiple parameters. Examples of such parameters include user preferences, cellular calling rates, service availability, contact type of the destination, etc. Selection logic component  185  may apply different weights to each parameter that is considered. For example, if a user preference indicates that a particular communication mode should be used for communicating with a destination, then the user preference may take precedence over other parameters. The parameters to use in determining an optimal communication mode or modes and the weights of the parameters may vary depending on user preferences and/or user profile. User profiles may include, for example, a busy profile, an in meeting profile, a sleeping profile, an available profile, etc. For each profile, different rules may be used to determine optimal global and/or local communication modes. Such rules may be specific to distinct contacts, to specified text included in messages, etc. For example, a “work” profile can be programmed to show presence status as as online to a co-worker, as “busy” to family and as “offline” to friends. 
     In one embodiment, selection logic component  185  determines optimal communication modes based on one or more of attributes related to the multimodal communication device (e.g., local time, battery life, etc.), attributes related to services provided to the multimodal communication device (e.g., cellular calling rates and VOIP calling rates such as roaming fees, nighttime rates, weekend rates, daytime rates, international rates, domestic rates, local rates, etc.), a communication mode previously used to contact the destination, user preferences, contact type (e.g., business or personal), attributes related to the destination (e.g., instant message presence, destination local time, destination business hours, destination sleep hours, destination location, etc.), and availability of service (VOIP, cellular, instant messaging, PTT, V-note, voicemail, email, SMS, etc.). Alternatively, other parameters may be considered in addition to or instead of the parameters listed. 
     A first exemplary algorithm for automatically determining an optimal communication mode is shown below, in accordance with one embodiment of the present invention. In the first exemplary algorithm, if a user preference indicates a communication mode to use, that communication mode is displayed and the algorithm ends. If there is no user preference, then the algorithm determines an order in which to present multiple communication mode categories (e.g., synchronous text, etc.) based on different parameters. 
     Exemplary pseudo-code for the above algorithm is as follows: 
     
       
         
           
               
             
               
                   
               
             
            
               
                 START 
               
               
                  IF user has set an overriding preference for communication mode 
               
               
                  for specific contact 
               
               
                   THEN present the specific mode of communication 
               
               
                  ENDIF 
               
               
                  IF presence status of destination contact is online AND NOT in a busy  
               
               
                  state 
               
               
                   OR contact is a business contact and destination time is during business 
               
               
                   hours 
               
               
                   OR contact is a personal contact and destination time is not during  
               
               
                   business hours 
               
               
                   OR last call to contact was a synchronous call 
               
               
                    THEN present communication mode categories in the order of  
               
               
                    Synchronous 
               
               
                 Voice, Synchronous Text, Asynchronous Voice, Asynchronous Text 
               
               
                    ELSE present communication mode categories in the order of  
               
               
                    Asynchronous 
               
               
                 Voice, Asynchronous Text, Synchronous Text, Synchronous Voice 
               
               
                  ENDIF 
               
               
                 STOP 
               
               
                   
               
            
           
         
       
     
     A second exemplary algorithm for automatically determining an optimal communication mode is shown below, in accordance with another embodiment of the present invention. The second exemplary algorithm determines an optimal local communication mode for the synchronous voice communication mode category. For the second exemplary algorithm, it is assumed for illustration only that a user preference indicates instant messaging (IM) voice is the preferred synchronous voice communication mode, followed by PTT, SIP (a VOIP service), and finally cellular service, in descending order of preference. It is also assumed that the destination is an IM buddy, has a phone number, and can use PTT. 
     Exemplary pseudo-code for the above algorithm is as follows: 
     
       
         
           
               
             
               
                   
               
             
            
               
                 START 
               
               
                  IF presence status of destination is online AND NOT in a busy state 
               
               
                   THEN call using IM voice 
               
               
                   ELSE 
               
               
                    IF PTT service is available and destination is reachable via PTT 
               
               
                     THEN use PTT 
               
               
                     ELSE 
               
               
                      IF cellular service is available and cellular service is cheaper  
               
               
                      than SIP service at present time 
               
               
                       THEN use cellular service 
               
               
                       ELSE 
               
               
                        IF SIP service is available 
               
               
                         THEN use SIP service 
               
               
                         ELSE 
               
               
                          IF cellular service is available 
               
               
                           THEN use cellular service 
               
               
                           ELSE inform user that no synchronous method  
               
               
                           is available 
               
               
                          ENDIF 
               
               
                       ENDIF 
               
               
                      ENDIF 
               
               
                    ENDIF 
               
               
                  ENDIF 
               
               
                 STOP 
               
               
                   
               
            
           
         
       
     
     A third exemplary algorithm for automatically determining an optimal communication mode is shown below, in accordance with yet another embodiment of the present invention. The third exemplary algorithm determines an optimal local communication mode for the asynchronous voice communication mode category. 
     Exemplary pseudo-code for the above algorithm is as follows: 
     
       
         
           
               
               
               
               
             
               
                   
                   
               
             
            
               
                   
                   
                 START 
                   
               
               
                   
                   
                  IFV-note service available 
                   
               
               
                   
                   
                   THEN send V-note 
                   
               
               
                   
                   
                   ELSE 
                   
               
               
                   
                   
                    IF mail service available 
                   
               
               
                   
                   
                     THEN send voice message as email attachment 
                   
               
               
                   
                   
                     ELSE 
                   
               
               
                   
                   
                      IF IM voicemail service is available 
                   
               
               
                   
                   
                       THEN use send IM voicemail 
                   
               
               
                   
                   
                      ENDIF 
                   
               
               
                   
                   
                    ENDIF 
                   
               
               
                   
                   
                  ENDIF 
                   
               
               
                   
                   
                 STOP 
               
               
                   
                   
               
            
           
         
       
     
     A fourth exemplary algorithm for automatically determining an optimal communication mode is shown below, in accordance with still another embodiment of the present invention. The fourth exemplary algorithm determines an optimal local communication mode for the asynchronous text communication mode category. 
     Exemplary pseudo-code for the above algorithm is as follows: 
     
       
         
           
               
               
               
               
             
               
                   
                   
               
             
            
               
                   
                   
                 START 
                   
               
               
                   
                   
                  IF attachments are to be sent 
                   
               
               
                   
                   
                   THEN use email 
                   
               
               
                   
                   
                   ELSE 
                   
               
               
                   
                   
                    IF SMS is cheaper than email 
                   
               
               
                   
                   
                     THEN use SMS 
                   
               
               
                   
                   
                     ELSE use email 
                   
               
               
                   
                   
                    ENDIF 
                   
               
               
                   
                   
                  ENDIF 
                   
               
               
                   
                   
                 STOP 
               
               
                   
                   
               
            
           
         
       
     
     Returning to  FIG. 1B , presence logic component  188  determines presence status of destination users. Presence status indicates online status (e.g., offline, online and busy, online and available, etc.) for the destination user. In one embodiment, presence status of the destination user is determined using one or more instant messaging service (e.g., America Online® instant messenger (AIM), ICQ®, Yahoo® instant messenger, Microsoft® instant messenger, etc.). Therefore, if the destination user is logged into any one of the multiple instant messaging services, for example, presence logic component  188  may determine that the destination user is online. In another embodiment, presence status of the destination user is determined by querying a presence server provided by a cellular phone service. In yet another embodiment, in a peer-to-peer (P2P) IM network, presence status may be provided by one or more peers. Alternatively, presence status may be determined using a combination of instant messaging services, P2P IM networks and a presence server of a cellular phone service. 
     In one embodiment, presence logic component  188  determines presence status of contacts (e.g., contacts of a unified contacts list) irrespective of communications (incoming and outgoing messages and calls) in which these contacts participate. In another embodiment, presence logic component  188  determines presence status of remote senders and recipients of specific incoming and outgoing messages and calls. Once presence status is determined, the presence status may be presented to a user via user interface  195 . 
     Communication logic component  190  initiates communication with the destination user. In one embodiment, communication logic component  190  communicates using one of the optimal communication modes (e.g., the optimal global communication mode or an optimal local communication mode) as determined by the selection logic component  190 . In another embodiment, communication logic component  190  communicates using a communication mode that has been user selected via input device  175 . Data presented via the user interface  195  may change based on the communication mode that communication logic component  190  uses to initiate communication. 
     Consolidation logic component  192  consolidates contact entries entered into multimodal communication device  170 . Consolidation logic component  192  may consolidate contact entries upon a user request, or automatically when a new contact entry is received. If a new contact entry has been added, consolidation logic component  192  may compare the new contact entry to preexisting contact entries. If a user command is received to perform consolidation, then each contact entry may be compared to each other contact entry. If a match is found, then the new/matching contact entry may be combined into the preexisting contact entry. A match may occur, for example, when two contact entries share the same name, phone number, email address, IM buddy alias, etc. 
     In one embodiment, each of the logic components (e.g., filter logic component  180 , presence logic component  188 , etc.) includes a state machine (e.g., an internal logic that knows how to perform a sequence of operations). In another embodiment, some or all of the logic components may include a logic circuit (e.g., a logic that goes through a sequence of events in time, or a logic whose output changes immediately upon a changed input), or a combination of a state machine and a logic circuit. In yet another embodiment, some or all of the logic components may be implemented as software executed by a processor, or as a combination of hardware (e.g., state machine or logic circuit) and software. 
       FIG. 2  illustrates a list of views  200  that may be presented via a user interface (e.g., user interface  195  of  FIG. 1B ) of a multimodal communication device, in accordance with one embodiment of the present invention. The list of views  200  may be presented as a navigation bar in the user interface. In one embodiment, the list of views  200  includes a home view  205 , a unified inbox view  210 , a unified contacts view  215 , a settings view  215  and a media view  225 . Alternatively, the list of views  200  may include more, fewer, and/or different views. 
     In one embodiment, the list of views  200  is presented as a tabbed list such that each view is represented by a separate tab. Each tab may include text and/or graphics to identify the view it represents. When a tab is selected, the view associated with the tab may be presented. In another embodiment, the list of views  200  may be presented in other formats, such as a carousel type display bar. Such a list of views  200  provides an intuitive user interface that can be navigated using fewer clicks/commands than a traditional hierarchical based system where a user navigates a sequence of hierarchical menu screens before viewing available commands and/or initiating appropriate actions. 
     In one embodiment, the list of views  200  represents a primary arrangement and presentation of information in a multimodal communication device. In another embodiment, the list of views  200  can be used as a home screen, idle-screen, or phone top plugin or application of a traditionally organized mobile phone. In such an embodiment, the list of views  200  and each view presented in the list (e.g., unified inbox view, unified contacts view, etc.) may provide an alternate shortcut method to access communication features of the mobile phone without navigating hierarchical menus. 
     In one embodiment, each view is linked to a specific key of a keypad, such that when the key is pressed, that view is displayed. For example, if CTRL and 1 are pressed, the home view  205  may be presented. In another embodiment, views may be cycled between using, for example, left and right directional keys. Therefore, for example, if the unified contacts view  215  is being presented, the settings view  220  may be presented if the right directional key is pressed, and the unified inbox view  210  may be presented if the left directional key is pressed. In other embodiments, views may be selected using additional means. For example, if a stylus is provided, the home view  205  may be presented if the stylus taps on the tab representing the home view  205 . Each of the home view  205 , unified inbox view  210 , unified contacts view  215 , settings view  220  and media view  225  are described in more detail below with reference to  FIGS. 3-7C . 
       FIG. 3  illustrates a home view  300 , in accordance with one embodiment of the present invention. The home view  300  may be a part of a graphical user interface presented on a multimodal communication device, such as multimodal communication device  170  of  FIG. 1B . 
     Home view  300  may include a title bar  305  that can contain icons, images and/or text indicating the current time, battery power, volume level, connectivity, etc. for the multimodal communication device. Home view  300  can also include a navigation bar  310  that may present an icon, image and/or text for each view in the list of views  200  shown in  FIG. 2 . A visual indication that the home view is currently being presented may be provided by the navigation bar  310 . For example, in the illustrated embodiment, an icon of a house representing the home view  300  is highlighted to indicate that the home view  300  is being presented. 
     Home view  300  may include a messages and calls bar  315  that indicates, for example, a number of missed calls, a number of unheard voice messages, a number of unread instant messages, a number of unread email and/or SMS messages, etc. Home view  300  may also include a background image  335 . Home view  300  may also include a recent message window  340  that contains a summary of the most recent missed call, voice message, unread received text message, etc. 
     In addition, the home view  300  can include a softkey bar  345  including one or more softkey function labels (e.g. main menu, new, more, etc.). A softkey is typically a button located proximate to the display space. Generally, the function of the button is defined by the softkey function label shown near the button on the display space. In the illustrated embodiment, the softkey bar  345  includes the softkey function label of “main menu” for a left softkey. If a user presses the left softkey from the home view  300 , a view of the main menu is presented. In one embodiment, a summary of available services, current presence status, current profile, and additional information can be displayed from the home view  300  by the press of a single key (e.g., a joystick up or down key). 
       FIG. 4A  illustrates a unified inbox view  400  of a graphical user interface presented by a multimodal communication device, in accordance with one embodiment of the present invention. In one embodiment, the multimodal communication device corresponds to multimodal communication device  170  of  FIG. 1B . 
     Referring to  FIG. 4A , unified inbox view  400  can include title bar  305 , navigation bar  310 , and softkey bar  345 . An icon of a triangle in the navigation bar  310  representing the unified inbox view  400  is highlighted to indicate that the unified inbox view  400  is being presented. 
     Unified inbox view  400  includes multiple incoming and outgoing messages  415  and calls  420 . Incoming and outgoing calls  420  may include cellular phone calls, VOIP phone calls, instant message voice calls, etc. The incoming and outgoing messages  415  may include SMS messages, email messages, voicemail messages, V-note messages, instant messages, etc. In one embodiment, all incoming and outgoing messages  415  and calls  420  are included in the unified inbox. 
     Incoming and outgoing messages  145  and calls  420  include a name of a remote sender or recipient, if the name is available. Where no name is available, an email address, phone number, buddy alias, etc., may be displayed. 
     Each incoming and outgoing message  415  and call  420  may include current presence status  405  of a remote sender or recipient of the message  415  or call  420 . The presence status  405  presented in the unified inbox view  400  may be updated continuously, periodically, or upon user input. In one embodiment, a green icon indicates an online/available presence, a red icon indicates an offline presence, and an orange icon indicates an online/busy presence. Alternatively, presence status  405  may be indicated in other ways (e.g., by color coding a name of the sender or recipient). Presence status  405  may also indicate additional presence information such as with customized messages and/or icons/images (e.g., away from keyboard, be right back, in meeting, etc.). 
     Incoming and outgoing messages  415  and calls  420  may include one or more icons and/or text indicating a communication type. For example, text may indicate that a stored communication is an incoming call, an outgoing call, a voice note (V-note), a missed call, an unanswered call, etc. In the illustrated embodiment, each communication (e.g., message or call) includes a communication type icon  410 . Examples of communication type icons  410  include a left facing arrow to represent outgoing calls, a right facing arrow to represent incoming calls, a speaker to represent an asynchronous voice communication (e.g., voicemail), an envelope to represent an asynchronous text communication (e.g., email), and so on. Communications presented in the unified inbox view  400  may also include a time that the communication was sent or received, and a length of the communication (e.g., how long a call lasted, how many lines of text in a message, etc.). In one embodiment, displayed messages  415  include part of a message body. A message&#39;s presented size in the unified inbox view  400  may be at least partially dependent on the contents of the message (e.g., increased height for longer messages). 
     The softkey bar  345  presented in the unified inbox view  400  includes icons and/or text representing multiple predefined filtered views. Each predefined filtered view may present a predefined subset of the incoming and outgoing messages and calls included in the unified inbox. In one embodiment, a first icon  425  (e.g., three bracketed horizontal lines) represents an unfiltrered view, a second icon (e.g., a cellular phone with an arrow) represents calls, a third icon (e.g., a speaker) represents voice messages, a fourth icon (e.g., a speech balloon) represents instant messages, and a fifth icon (e.g., an envelope) represents email messages. Alternatively more or fewer icons and/or text may be used to represent the same or different filtered views. 
     A predefined subset of the incoming and outgoing communications currently presented in the unified inbox view  400  may be indicated by highlighting text and/or icons within the softkey bar  345 . In the illustrated embodiment, the first icon  425  representing an unfiltered view is highlighted. Different filtered views may be presented if a filter command is received (e.g., when a user pushes a filter key). In one embodiment, a filter function is assigned to a softkey, such that when the appropriate softkey is pressed, a next predefined subset of the incoming and outgoing messages and calls is shown in the unified inbox view  400 . In this manner, the different predefined filtered views may be scrolled between by repetitively toggling the filter key. 
       FIG. 4B  illustrates a unified inbox view  430  of a graphical user interface presented by a multimodal communication device, in accordance with another embodiment of the present invention. In one embodiment, unified inbox view  430  displays a first predefined subset of the incoming and outgoing messages and calls included in the unified inbox. The predefined subset currently presented in the unified inbox view  430  is indicated by highlighting an icon (e.g., the second icon  435 ) within the softkey bar  345 . In the illustrated embodiment, the second icon  435  represents a filtered view that displays only incoming and outgoing calls  420 . 
       FIG. 4C  illustrates a unified inbox view  450  of a graphical user interface presented by a multimodal communication device, in accordance with yet another embodiment of the present invention. In one embodiment, unified inbox view  450  displays a subset of the incoming and outgoing messages and calls included in unified inbox view  430  of  FIG. 4B  after a keyword filter has been applied. Alternatively, unified inbox view  450  displays a subset of the incoming and outgoing messages and calls included in unified inbox view  400  of  FIG. 4A  after the keyword filter has been applied. The keyword filter may be applied upon receiving a user command to execute a keyword filter. The keyword filter command may be received when the user enters a keyword using an alphanumeric keypad (e.g., when the user presses a number or letter key). If the keyword filter command is received while unified inbox view  430  of  FIG. 4B  is presented, the predefined filter may be removed before applying the keyword filter. Alternatively, the keyword filter may be applied in addition to the predefined filter. 
     Referring to  FIG. 4C , a search bar  455  may be presented in the unified inbox view  450  when the keyword filter is initiated. In one embodiment, the search bar  455  is presented upon a user pressing a key in an alphanumeric keypad. In the illustrated example, a keyword “kon” has been entered. Therefore, a single communication is presented for a call made to Kon Davidson. 
     The softkey bar  345  presented in unified inbox view  450  may include icons  460  indicating one or more actions (e.g., editing actions such as erase, copy, etc.) when the keyword filter is applied. 
       FIG. 5A  illustrates a unified contacts view  500  of a graphical user interface presented by a multimodal communication device, in accordance with one embodiment of the present invention. In one embodiment, the multimodal communication device corresponds to multimodal communication device  170  of  FIG. 1B . 
     Referring to  FIG. 5A , unified contacts view  500  can include title bar  305 , navigation bar  310 , and softkey bar  345 . An icon of a person in the navigation bar  310  representing the unified contacts view  500  is highlighted to indicate that the unified contacts view  500  is being presented. 
     Unified contacts view  500  includes multiple contacts  505 . Contacts  505  may be email contacts, cellular phone contacts, VOIP phone contacts, IM contacts, etc. A single contact entry may include contact information for multiple contact information types. For example, a contact entry may include a cellular phone number, a plain old telephone service (POTS) home phone number, a work phone number, a VOIP phone number, an IM buddy alias, an email address, etc. 
     In one embodiment, each contact  505  presented in the unified contacts view  500  includes an optimal global communication mode (e.g., cellular service, email, IM, etc.). The optimal global communication mode may be determined as discussed with reference to  FIG. 1B . Alternatively, each contact may be presented with a default communication mode (e.g., a phone number if one is available, otherwise an email if one is available). 
     Each contact  505  may include current presence status  405  of the contact  505 . The presence status  405  presented in the unified contacts view  400  may be updated continuously, periodically, or upon user input. In one embodiment, a green icon indicates an online/available presence, a red icon indicates an offline presence, and an orange icon indicates an online/busy presence. Alternatively, presence status may be indicated in other ways (e.g., by color coding a name of the contact). Presence status  405  may also indicate additional presence information such as with customized messages and/or icons/images (e.g., away from keyboard, be right back, in meeting, etc.). Each contact  505  may also include information indicating how long the contact  505  has been online, offline, available, away, etc. 
     The softkey bar  345  presented in the unified contacts view  400  includes icons and/or text representing multiple predefined filtered views. Each predefined filtered view may present a predefined subset of the contacts  505  included in the unified contacts list. In one embodiment, a first icon  510  (e.g., three bracketed horizontal lines) represents an unfiltered view, a second icon (e.g., a cellular phone with an arrow) represents online contacts, and a third icon (e.g., a speech balloon or star) represents favorite contacts. Alternatively more of fewer icons and/or text may be used to represent the same or different filtered views. For example, a predefined subset of the contacts representing the most recent contacts contacted may be represented by an icon, and/or a predefined subset of contacts representing the most frequently contacted contacts may be represented by an icon. 
     A predefined subset of contacts  505  currently presented in the unified contacts view  500  may be indicated by highlighting text and/or icons within the softkey bar  345 . In the illustrated embodiment, the first icon  510  representing an unfiltered view is highlighted. Different filtered views may be presented if a filter command is received (e.g., when a user pushes a filter key). In one embodiment, a filter function is assigned to a softkey, such that when the appropriate softkey is pressed, a next predefined subset of the contacts is shown in the unified contacts view  500 . In this manner, the different predefined filtered views may be easily scrolled between by repetitively toggling the filter key. In other words, the screen may conveniently display different filtered views one after another by simple user interaction with the filter key and without obscuring the presented views in any manner (e.g., without displaying popup windows, vertical or horizontal panes, etc.). 
       FIG. 5B  illustrates a unified contacts view  530  of a graphical user interface presented by a multimodal communication device, in accordance with another embodiment of the present invention. In one embodiment, unified contacts view  530  displays a first predefined subset of the contacts included in the unified contacts list. The predefined subset currently presented in the unified contacts view  530  is indicated by highlighting an icon (e.g., the second icon  535 ) within the softkey bar  345 . In the illustrated embodiment, the second icon  535  represents a filtered view that displays only online contacts  505 . The presence status  405  indicates that each of the contacts  505  are currently online. 
       FIG. 5C  illustrates a unified contacts view  550  of a graphical user interface presented by a multimodal communication device, in accordance with yet another embodiment of the present invention. In one embodiment, unified contacts view  550  displays a subset of the contacts included in unified contacts view  530  of  FIG. 5B  after a keyword filter has been applied. Alternatively, unified contacts view  550  displays a subset of the contacts included in unified contacts view  500  of  FIG. 5A  after the keyword filter has been applied. The keyword filter may be applied upon receiving a user command to execute a keyword filter. The keyword filter command may be received when the user enters a keyword using an alphanumeric keypad (e.g., when the presses a number or letter key). If the keyword filter command is received while unified contacts view  530  of  FIG. 5B  is presented, the predefined filter may be removed before applying the keyword filter. Alternatively, the keyword filter may be applied in addition to the predefined filter. 
     Referring to  FIG. 5C , a search bar  455  may be presented in the unified contacts view  550  when the keyword filter is initiated. In one embodiment, the search bar  455  is presented upon a user pressing a key in an alphanumeric keypad. In the illustrated embodiment, a keyword “gmail” has been entered. Therefore, two contacts are presented, each including the word gmail. 
     The softkey bar  345  presented in unified inbox view  550  may include icons  560  indicating one or more actions (e.g., editing actions such as erase, backspace, copy, etc.) when the keyword filter is applied. 
       FIG. 6  illustrates a settings view  600  of a graphical user interface presented by a multimodal communication device, in accordance with one embodiment of the present invention. In one embodiment, the multimodal communication device corresponds to multimodal communication device  170  of  FIG. 1B . 
     Referring to  FIG. 6 , settings view  600  can include title bar  305 , navigation bar  310 , and softkey bar  345 . An icon of a gear in the navigation bar  310  representing the settings view  600  is highlighted to indicate that the settings view  600  is being presented. Settings view may display wireless fidelity (WiFi) settings, VOIP settings, services settings, etc. For purposes of illustration, the settings view  600  is shown to display WiFi settings. 
     The title bar  305  displayed in settings view  600  may include the name of a network currently connected to, or the first few (e.g., 5, 8, 10, 15, etc.) characters of the name. Settings view  600  may include a network status indicator  605  that displays information such as whether the multimodal communication device is idle, scanning, selecting, connecting, getting an IP address, connected, disconnected, etc. Settings view  600  may include detected networks  610 . Each detected network  610  may include text and/or an icon representing a network access policy  625  of the network  610 . Examples of network access policies include paid access (represented by a dollar sign), free access (represented by a gear), denied access (represented by a “no” symbol), etc. Each detected network  610  may also include a signal strength indicator  620 . 
     Settings view  600  may include a voice quality indicator that indicates the voice quality of VOIP used over the selected network  610 . A voice quality check may automatically be performed when a network  610  is selected. Voice quality indicator may determine voice quality by assessing latency (delay) and dropped packets (drop). Lower delay and lower drop indicates a better voice quality. 
       FIG. 7A  illustrates a media view  700  of a graphical user interface presented by a multimodal communication device, in accordance with one embodiment of the present invention. In one embodiment, the multimodal communication device corresponds to multimodal communication device  170  of  FIG. 1B . 
     Referring to  FIG. 7A , media view  700  can include title bar  305 , navigation bar  310 , and softkey bar  345 . An icon of a television in the navigation bar  310  representing the media view  700  is highlighted to indicate that the media view  700  is being presented. 
     Media view  700  presents an information display  705  that includes text, graphics, videos, etc. of currently viewed media. Media view  700  also includes a media selection list  710  that shows different media categories. Media categories may be selected to view specific media items, such as television programs, RSS feeds, websites, etc. Once a media item has been chosen, the media selection list  710  may be minimized to show an expanded information display, as shown in media view  730  of  FIG. 7B . A fullscreen media view  755  may also be presented, as shown in  FIG. 7C . The fullscreen media view  750  may include an action bar  760  and softkey bar  345 , but may not include title bar or navigation bar. Action bar  760  may include a command for playing/pausing video content, sending a media item to a destination user, deleting a media item, etc. 
       FIG. 8A  illustrates a contact view  800  of a graphical user interface presented by a multimodal communication device, in accordance with one embodiment of the present invention. In one embodiment, the multimodal communication device corresponds to multimodal communication device  170  of  FIG. 1B . Contact view  800  is a view of a specified contact. The contact may be specified (e.g., selected) from a unified contacts view (e.g.,  500 ,  530 ,  550 ), from a unified inbox view (e.g.,  400 ,  430 ,  450 ), or from another view. 
     Referring to  FIG. 8A , contact view  800  can include title bar  305  and softkey bar  345 . Contact view  800  may also include a navigation bar. Contact view includes a contact name  805 , presence status  405  for the contact, and one or more contact information entries  815 . Examples of contact information entries  815  include a home phone, a cellular phone, a work phone, an email address, an IM address, etc. Each contact information entry  815  may include a contact information icon  810  that indicates a type of the contact information entry  815  (e.g., home phone, email address, etc.). For example, the illustrated embodiment includes an icon of a home indicating a home phone number, an icon of a cellular phone indicating a cellular phone number, an icon of a dial phone indicating a work phone number and an icon of an “at” sign indicating an email address. Other symbols may also be used for the same or different types of contact information entries  815 . 
     Contact view  800  may also include a communication action bar  820 . Communication action bar  820  presents one or more communication mode categories, each communication mode category including one or more communication modes. In one embodiment, communication action bar  820  includes a synchronous voice communication mode category  825 , represented by an icon of a phone and an arrow, an asynchronous voice communication mode category  830 , represented by an icon of a speaker, a synchronous text communication mode category  835 , represented by an icon of a speech balloon, and an asynchronous text communication mode category  840 , represented by a an icon of an envelope and a T. The synchronous voice communication mode category  825  may include communication modes such as, for example, cellular phone service, VOIP, PTT, etc. The asynchronous voice communication mode category  830  may include communication modes such as, for example, voicemail, voice email, V-note, etc. The synchronous text communication mode category  835  may include communication modes such as, for example, instant messaging. The asynchronous text communication mode category  840  may include communication modes such as, for example, email, SMS, etc. Alternatively, the communication action bar  820  may include other communication mode categories, represented by text and/or icons. 
     Communication mode categories may be shown in an enabled or disabled state. A communication mode category may be shown in a disabled state if there are no available communication modes within the communication mode category. A communication mode category may be shown in an enabled state if there is at least one available communication mode within the communication mode category. 
     In one embodiment, communication mode categories may be selected upon a user pressing right and/or left directional keys. Thereby, selected communication mode categories may be scrolled between. Alternatively, other selection means may be used. For example, each communication mode category may be linked to a specific key or group of keys (e.g., CRTL+1, ALT+2, etc.), a pointer controlled by a touchpad or mouse may be used, etc. In one embodiment, disabled communication mode categories may not be selected. 
     Contact view  800  may display a highlighted (selected) communication mode category in the action bar  820  when the contact view  800  is presented (e.g., when a contact is selected from the unified inbox view or the unified contacts view). In one embodiment, the highlighted communication mode category corresponds to a communication mode category that includes an optimal global communication mode for communicating with the contact. The optimal global communication mode may be automatically selected for the highlighted communication mode category. Therefore, if a user presses a talk key when the contact view  800  is presented, communication may be initiated with the contact using the optimal global communication mode. In the illustrated embodiment, the synchronous voice communication mode category  825  is highlighted. 
     In a further embodiment, an optimal local communication mode is automatically determined and/or selected for each communication mode category. Thereby, when a communication mode category is selected, the user may initiate communication with the contact using the optimal local communication mode of the selected communication mode category by satisfying a predefined condition. The predefined condition may include pressing the send/talk key, pressing another key, providing voice activation, providing no input for a time interval, etc. In the following description, when the term “pressing the send key” or similar terms are used, it is understood that such terms are used to improve readability, and include other means of satisfying a predefined condition as well. The optimal global communication mode and optimal local communication modes may be determined as detailed above with reference to  FIG. 1B . 
     Referring to  FIG. 8A , in one embodiment the communication mode categories included in communication action bar  820  are displayed in a ranked order. The rank may be determined automatically by determining an optimization value for each communication mode category. Thereby, for example, the communication mode categories may be ranked from a most optimal communication mode category to a least optimal communication mode category. Alternatively, the communication mode categories may be displayed in a predetermined order regardless of which communication mode category is optimal. 
       FIG. 8B  illustrates a contact view  845  of a graphical user interface presented by a multimodal communication device, in accordance with another embodiment of the present invention. In contact view  845 , a window  850  is presented that displays communication modes included in a selected communication mode category. In the illustrated example, window  850  displays communication modes included in the synchronous voice communication mode category  825 . In one embodiment, window  850  is a popup window that overlays contact information entries. Alternatively, window  850  may be a pane presented to the right, left, above or below the contact information entries. Window  850  may appear momentarily (e.g., for a few seconds), or may remain open until it is closed. In one embodiment, window  850  will close automatically if no user input is detected for a predetermined time period (e.g., 2 seconds, 4 seconds, etc.). 
     In one embodiment, window  850  displays all communication modes included in the selected communication mode category. Alternatively, window may display communication modes included in the communication mode category that are currently available. For example, if a presence status of the contact indicates that the contact is offline, then instant messaging communication modes may not be displayed. 
     Communication modes displayed in window  850  may be selected  852 , such as by using up/down directional keys, using a joystick, pressing a key associated with a communication mode, etc. Once a communication mode has been selected, communication may be initiated with the contact using the communication mode if the send key is pressed. In one embodiment, an optimal local communication mode is automatically selected. The automatic selection may be replaced by a user selection. 
       FIGS. 8C-8E  illustrate additional contact views  855 ,  865  and  875 , respectively, in accordance with further embodiments of the present invention. Contact view  855  of  FIG. 8C  displays an asynchronous voice window  860  that presents available communication modes included in asynchronous voice communication mode category  830 . Contact view  865  of  FIG. 8D  displays a synchronous text window  870  that presents available communication modes included in synchronous text communication mode category  835 . Contact view  875  of  FIG. 8E  displays an asynchronous text window  880  that presents available communication modes included in asynchronous text communication mode category  840 . 
       FIG. 8F  illustrates an incoming communication view  880  of a graphical user interface presented by a multimodal communication device, in accordance with another embodiment of the present invention. In one embodiment, the multimodal communication device corresponds to multimodal communication device  170  of  FIG. 1B . 
     Referring to  FIG. 8F , incoming communication view  880  can include one or more of title bar  305 , navigation bar, and softkey bar  345 . Incoming communication view  880  can include a contact name  805  of a sender of the incoming communication, presence status  405  of the sender, and a contact information entry  815  of the incoming communication (e.g., a phone number of the phone that is placing a call to the multimodal communication device). The contact information entry  815  may include a contact information icon  810  that indicates a type of the contact information entry  815  (e.g., home phone, email address, etc.). For example, the illustrated embodiment includes an icon of a dial phone, which may indicate a work phone number. The incoming communication view  880  may also include a communication type  885  represented by an icon and/or text that indicates whether the incoming communication is a phone call, an SMS message, a IM, etc. 
     Incoming communication view  880  can include communication action bar  820 . When presented in incoming communication view  880 , communication action bar  820  displays multiple response options to respond to the incoming communication. In one embodiment, the response options are divided into communication mode categories, each of which may include one or more communication modes for initiating a response. In a further embodiment, the communication mode categories include a synchronous voice communication mode category  825 , an asynchronous voice communication mode category  830 , a synchronous text communication mode category  835 , and an asynchronous text communication mode category  840 . 
     Optimal global and local communication modes to receive and/or reply to the incoming communication may be determined as discussed above with reference to  FIG. 1B . For example, if the incoming communication is a phone/voice call, then a cheapest phone service may automatically be determined. If the cheapest phone service is, for example, the cellular phone number that was dialed by the sender of the phone call, then the phone call may be answered if a send/answer key is pressed. Alternatively, if the cheapest phone service is a VOIP phone service, then pressing a send/answer key may refuse the incoming phone call and immediately call back the sender using the VOIP phone service. In another example, if the multimodal communication device has been set to a “do not disturb” profile, then a default action to a voice call may be to respond by IM. 
     In one embodiment, incoming communication view  880  is displayed when the multimodal communication device receives an incoming voice/phone call. Alternatively, incoming communication view  880  may be displayed when the multimodal communication device receives a new email message, SMS message, IM message, voice message, etc. In one embodiment, the incoming communication view  880  is displayed for a predefined time period (e.g., 1 second, 2 seconds, 5 second, etc.). If a predetermined key (e.g., a send key or select key) is pressed while the incoming communication view  880  is being displayed, a read/hear message view may be displayed if the incoming communication is a message, or a current call view may be displayed if the incoming communication is a call. 
     In one embodiment, the optimal global communication mode is automatically initiated as part of an optimal action if no user input is received within a predetermined time period. The optimal action may be, for example, to transmit an auto-response to an email, SMS, IM account, etc. of the sender using the optimal global communication mode. Other example auto-responses include automatically directing a phone call to a custom voicemail intro, and auto-forwarding the incoming communication to the optimal global communication mode (e.g., redirect an IM message to email, an email message to IM, an IM voice call to a PSTN voice call, etc.) 
     In another embodiment, if no input is received within the predetermined time period (e.g., if no keys are pressed, or specified keys are not pressed), a view that was displayed prior to displaying the incoming communication view may again be displayed. For example, if a unified contacts view was being displayed when an incoming SMS message was received, then the unified contacts view may again be displayed if the send key is not pressed within the predefined time period. Alternatively, a default view (e.g., home view) may automatically be displayed when the incoming communication view  880  is no longer displayed. 
       FIG. 9  illustrates a flow diagram of one embodiment for a method  900  of displaying calls and messages in a user interface of a multimodal communication device. The method may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. In one embodiment, method  900  is performed by multimodal communication device  170  of  FIG. 1B . 
     Referring to  FIG. 9 , method  900  begins with processing logic displaying a unified inbox (block  905 ). The unified inbox may be displayed in a first view, and may include multiple incoming and outgoing messages and calls. In one embodiment the unified inbox includes all stored incoming and outgoing messages and calls. At block  910 , presence status is displayed in the unified inbox for one or more incoming and/or outgoing message and/or call. The presence status may be displayed in the first view along with the appropriate message or call. 
     At block  915 , processing logic determines whether a tab other than a tab representing the unified inbox has been selected. Examples of such tabs include a unified contacts tab, a settings tab, a home tab, and a media tab. If such a tab has been selected, then the method proceeds to block  920 , and data associated with the selected tab is displayed (e.g., if the settings tab is selected, then a settings view may be displayed). If no such tab has been selected, then the method proceeds to block  925 . 
     At block  925 , processing logic determines whether a subset filter command has been received. The subset filter command may be received when a filter key is pressed. In one embodiment, the filter key is a softkey that has been assigned a predefined filter function. If a subset filter command has been received, the method proceeds to block  930 . If no subset filter command has been received, the method continues to block  935 . 
     At block  930 , the unified inbox is filtered using a next predefined subset of the incoming and outgoing messages and calls. For example, if the next predefined subset is a calls subset, then only incoming and outgoing calls may be displayed. The method then returns to block  925 . 
     At block  935 , processing logic determines whether a keyword filter command has been received. The keyword filter command may be received when a keyword has been detected (e.g., when a key of an alphanumeric keyboard is pressed). If the keyword filter command is received, the method proceeds to block  940 . If no keyword filter command is received, the method continues to block  945 . At block  940 , the unified inbox is filtered using the received keyword. The method then returns to block  935 . 
     At block  945 , processing logic determines whether a cease filter command has been received. A cease filter command may be received, for example, when an end key is pressed. If no cease filter command is received, the method ends. If a cease filter command is received, the method proceeds to block  950 , and one or more filters are removed from the unified inbox. In one embodiment, the cease filter command causes the unified inbox to become unfiltered. In another embodiment, if a keyword filter is being applied, the cease filter command removes the keyword filter. 
       FIG. 10  illustrates a flow diagram of one embodiment for a method  1000  of displaying contacts in a user interface of a multimodal communication device. The method may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. In one embodiment, method  1000  is performed by multimodal communication device  170  of  FIG. 1B . 
     Referring to  FIG. 10 , method  1000  begins with processing logic displaying a unified contacts list (block  1005 ). The unified contacts list may be displayed in a second view, and may include multiple contacts. In one embodiment the unified contacts list includes all stored contacts, regardless of contact type (e.g., phone contact, email contact, work contact, etc.). At block  1010 , presence status is displayed in the unified contacts list for one or more contact. The presence status may be displayed in the second view along with the appropriate contact. 
     At block  1015 , processing logic determines whether a tab other than a tab representing the unified contacts list has been selected. If such a tab has been selected, then the method proceeds to block  1020 , and data associated with the selected tab is displayed (e.g., if the settings tab is selected, then a settings view may be displayed). If no such tab has been selected, then the method proceeds to block  1025 . 
     At block  1025 , processing logic determines whether a subset filter command has been received. If a subset filter command has been received, the method proceeds to block  1030 . If no subset filter command has been received, the method continues to block  1035 . 
     At block  1030 , the unified inbox is filtered using a next predefined subset of the unified contacts list. For example, if the next predefined subset is online contacts, then only contacts with an online/available or online/busy presence status may be displayed. The method then returns to block  1025 . 
     At block  1035 , processing logic determines whether a keyword filter command has been received. If the keyword filter command is received, the method proceeds to block  1040 . If no keyword filter command is received, the method continues to block  1045 . At block  1040 , the unified inbox is filtered using the received keyword. The method then returns to block  1035 . 
     At block  1045 , processing logic determines whether a cease filter command has been received. If no cease filter command is received, the method ends. If a cease filter command is received, the method proceeds to block  1050 , and one or more filters are removed from the unified contacts list. In one embodiment, the cease filter command causes the unified contacts list to become unfiltered. In another embodiment, if a keyword filter is being applied, the cease filter command removes the keyword filter. 
       FIG. 11  illustrates a flow diagram of one embodiment for a method  1100  of consolidating a list of contacts. The method may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. In one embodiment, method  1100  is performed by multimodal communication device  170  of  FIG. 1B . 
     Referring to  FIG. 11 , method  1100  begins with processing logic receiving a new contact (block  1105 ). At block  1110 , the new contact is added to the unified contacts list. At block  1115 , the new contact is automatically compared to preexisting contacts. At block  1120 , processing logic determines whether the new contact matches any of the preexisting contacts. If no match is found, the method ends. If a match is found, the method proceeds to block  1125 . At block  1125 , the new contact is combined with the preexisting contact. The method then ends. 
       FIG. 12  illustrates a flow diagram of one embodiment for a method  1200  of communicating with a destination user. The method may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. In one embodiment, method  1200  is performed by multimodal communication device  170  of  FIG. 1B . 
     Referring to  FIG. 12 , method  1200  begins with processing logic receiving user input selecting a contact or a stored communication (e.g., an incoming or outgoing call or message) (block  1205 ). At block  1210 , processing logic automatically determines an optimal global communication mode to use for communicating with a destination user associated with the contact or stored communication. Examples of communication modes include cellular service, VOIP, email, IM, etc. 
     At block  1215 , processing logic determines whether a communicate command has been received. A communicate command may be received, for example, when a send/call key is pressed. If no communicate command is received, the method ends. If a communicate command is received, the method proceeds to block  1220 . At block  1220 , processing logic communicates with the destination user using the optimal global communication mode. The method then ends. 
       FIG. 13  illustrates a flow diagram of another embodiment for a method  1300  of communicating with a destination user. The method may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), or a combination thereof. In one embodiment, method  1300  is performed by multimodal communication device  170  of  FIG. 1B . 
     Referring to  FIG. 13 , method  1300  begins with processing logic receiving user input selecting a contact or a stored communication (e.g., an incoming or outgoing call or message) (block  1305 ). At block  1310 , communication modes are divided into multiple communication mode categories. Examples of communication mode categories include synchronous voice communications, synchronous text communications, etc. 
     At block  1315 , enabled and disabled communication mode categories are displayed in a communication action bar. An enabled communication mode category may be displayed if there is at least one available communication mode within the communication mode category. If there are no available communication modes within the communication mode category, then a disabled state may be displayed. 
     At block  1320 , processing logic automatically determines optimal local communication modes for each communication mode category. At block  1325 , input is received selecting a communication mode category. At block  1330 , a window is displayed showing communication modes of the selected communication mode category. In one embodiment, available communication modes are shown. The window may be a popup window, a vertical or horizontal pane, etc. 
     At block  1335 , processing logic determines whether a communication mode other than the optimal local communication mode has been selected. If such a non-optimal communication mode has been selected, the method proceeds to block  1345 . If no such non-optimal communication mode has been selected, the method proceeds to block  1340 . 
     At block  1340 , processing logic determines whether a communicate command has been received. A communicate command may be received, for example, when a send/call key is pressed. If no communicate command is received, the method ends. If a communicate command is received, the method proceeds to block  1350 . At block  1350 , processing logic communicates with the destination user associated with the selected contact or stored communication using the optimal local communication mode for the selected communication mode category. The method then ends. 
     At block  1345 , processing logic determines whether a communicate command has been received. If no communicate command is received, the method ends. If a communicate command is received, the method proceeds to block  1355 . At block  1355 , processing logic communicates with the destination user associated with the selected contact or stored communication using the selected communication mode. The method then ends. 
     It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.