Telephonic devices including portable telephone systems, such as cellular phones, have been steadily increasing the type and variety of content that they provide to a user. Many telephonic devices incorporate sufficient computing capabilities to fall within the category of the small, handheld computing devices. Telephonic devices may be known by other names rather than cellular phones and generally refer to devices that have been integrated with receiver/transmitter technology so that they can send and receive telephone calls or other messages via a network. These newly integrated telephonic devices include palmtops, pocket computers, personal digital assistants, personal organizers, H/PCs, and the like. In addition to the sending and receipt of phone calls, these telephonic devices provide many functions to users including word processing, task management, spreadsheet processing, address book functions, Internet browsing, and calendaring, as well as many other functions.
With the addition of these functions to the basic phone call functions, the telephonic devices are now sending and receiving a host of information across a variety of networks. A variety of information is now provided to a user in reference to the information and telephone calls received. Certain telephonic devices are able to match contact information to the phone number associated with an incoming phone call. However, often the information displayed may be incomplete or inaccurate.
According to aspects of various described embodiments, accurate information is displayed when multiple contacts are matched for an incoming phone number. In certain circumstances, a telephonic device may match more than one contact to an incoming phone number provided by caller ID. In accordance with one aspect of a described embodiment, the telephonic device displays a listing of the multiple contacts that match the incoming phone number when the display space is available. In accordance with another aspect, a text notification or message is displayed to the user that states “multiple contacts found” or a similar notification when the display space is limited. In accordance with another alternate aspect, a scrollbar is added to the listing of matching contacts displayed for the incoming phone number when the display space is limited.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Non-limiting and non-exhaustive embodiments of the present invention are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified.
Embodiments of the present invention are described more fully below with reference to the accompanying drawings, which form a part hereof, and which show specific exemplary embodiments for practicing the invention. However, embodiments may be implemented in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Embodiments of the present invention may be practiced as methods, systems or devices. Accordingly, embodiments of the present invention may take the form of an entirely hardware implementation, an entirely software implementation or an implementation combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.
The logical operations of the various embodiments of the present invention are implemented (1) as a sequence of computer implemented steps running on a computing system and/or (2) as interconnected machine modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations making up the embodiments of the present invention described herein are referred to alternatively as operations, steps or modules.
Illustrative Operating Environment
Telephonic device 100 incorporates output elements, such as display 102, which can display a graphical user interface (GUI). Other output elements include speaker 108 and LED light 110. Additionally, telephonic device 100 may incorporate a vibration module (not shown), which causes telephonic device 100 to vibrate to notify the user of an event. In yet another embodiment, telephonic device 100 may incorporate a headphone jack (not shown) for providing another means of providing output signals.
Telephonic device 100 also incorporates antenna 112 for communication between telephonic device 100 and communication networks or other telephonic devices. For example, antenna 112 may be employed for receiving a telephone call via a cellular network. While the telephone communication may be considered the main form of communication for telephonic device 102, other, alternate communication methods are also available.
Display 102 may be arranged according to a selected display size and resolution that determines the area available for the telephonic device to display data to the user. The area available for display may be also limited to certain display items that take up display space on the telephonic device. For example, certain status indicators (e.g., network type, signal strength, batter life indicator, etc.) may constantly be displayed within the available display area despite the state of the telephonic device. With items constantly being displayed, the area available for other application to display information is further limited.
Although described herein in combination with telephonic device 100, in alternative embodiments the invention is used in combination with any number of computer systems, such as in desktop environments, laptop or notebook computer systems, multiprocessor systems, micro-processor based or programmable consumer electronics, network PCs, mini computers, main frame computers and the like. Additionally, the telephonic device may refer to a device that is separate from the phone itself. For example, one such telephonic device may be a caller ID box that is connected to a landline phone.
In this embodiment, system 200 has a processor 260, a memory 262, display 102, and keypad 104. Memory 262 generally includes both volatile memory (e.g., RAM) and non-volatile memory (e.g., ROM, Flash Memory, or the like). System 200 includes an OS 264, which in this embodiment is resident in a flash memory portion of memory 262 and executes on processor 260. Keypad 104 may be a push button numeric dialing pad (such as on a typical telephone), a multi-key keyboard (such as a conventional keyboard), or may not be included in the telephonic computing device in deference to a touch screen or stylus. Display 102 may be a liquid crystal display, or any other type of display commonly used in telephonic computing devices. Display 102 may be touch-sensitive, and would then also act as an input device.
One or more application programs 266 are loaded into memory 262 and run on operating system 264. Examples of application programs include phone dialer programs, e-mail programs, PIM (personal information management) programs, word processing programs, spreadsheet programs, Internet browser programs, and so forth. System 200 also includes non-volatile storage 268 within memory 262. Non-volatile storage 268 may be used to store persistent information that should not be lost if system 200 is powered down. Applications 266 may use and store information in non-volatile storage 268, such as e-mail or other messages used by an e-mail application, contact information used by a PIM, documents used by a word processing application, and the like. A synchronization application (not shown) also resides on system 200 and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in non-volatile storage 268 synchronized with corresponding information stored at the host computer. In some embodiments, non-volatile storage 268 includes the aforementioned flash memory in which the OS (and possibly other software) is stored.
System 200 has a power supply 270, which may be implemented as one or more batteries. Power supply 270 might further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries.
System 200 also includes a radio 272 that performs the function of transmitting and receiving radio frequency communications. Radio 272 facilitates wireless connectivity between system 200 and the “outside world”, via a communications carrier or service provider. Transmissions to and from radio 272 are conducted under control of OS 264. In other words, communications received by radio 272 may be disseminated to application programs 266 via OS 264, and vice versa.
Radio 272 allows system 200 to communicate with other computing devices, such as over a network. Radio 272 is one example of communication media. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. The term computer readable media as used herein includes both storage media and communication media.
This embodiment of system 200 is shown with two types of notification output devices: LED 110 that can be used to provide visual notifications and an audio interface 274 that can be used with speaker 108 (
In accordance with embodiments of the present invention, applications 266 include a multiple contacts application 280 that is used to provide the functionality of handling multiple contacts matching for an incoming phone call. In one embodiment, multiple contacts application is represented by several software modules included throughout the components of telephonic device 200.
While the above figures and description describe particular embodiments of a telephonic device, it is appreciated that the definition of telephonic device as used throughout this description and the claims is not limited to this example. Instead, a telephonic device is broadly defined as any device capable of sending and receiving a telephone call while sending or receiving alternate data, such as an Internet enabled telephone, a telephonic enabled computing device, a voice-over-IP enabled computing device, or the like.
Illustrative Embodiments for Displaying Accurate Information for Multiple Contacts Matched to a Phone Number
Most telephonic devices display the caller ID information (e.g. the phone number) of the incoming caller. In addition, if the phone has an address book or contacts database, many will usually display the person's name and possibly the person's company name. Sometimes, however, the phone number matches more than one contact. A common example includes when two contacts share a home or phone number such as within a family. Another example is when contacts are stored for multiple people at one company and the company exposes a single external phone number. Still another example of having multiple contacts associated with a single phone number occurs when there are duplicate entries for the same person, due to reasons such as synchronization errors when copying contacts from another computing device, user error by creating a double entry accidentally (e.g. the user creates Joe Smith after having Smith, Joseph in the contacts database already), or a user has purposefully created a special duplicate shortcut name for voice recognition dialing. In those cases, current telephonic devices often do not display accurate information. Some telephonic devices display the first contact that's matched. However, the first contact may be wrong for the incoming call. This error may cause the receiver of the call to make a mistake upon answering the call. Other telephonic devices simply display just the phone number, which may confuse the receiver of the call because the receiver normally sees the caller's name.
The present invention solves the shortcomings of previous telephonic devices by providing a telephonic device that displays all contacts that matched to the same phone number when the display area is available and adding a scrollbar when space on the display runs out. On screens with more limited space, another solution provided by the present invention is to display the text “Multiple contacts found” and display the phone number. Each of these display options clearly and accurately conveys to the user of the telephonic device that multiple contacts match the phone number of the incoming call.
Telephonic device 300 receives incoming call 302 via communication module 304. In one embodiment, communications module 304 corresponds to antenna 112 shown in
In the embodiment shown, phone application 306 is arranged to provide the notification to the user that an incoming call is being currently received by telephonic device. Phone application 306 provides instructions to display interface 316 for displaying the notification on display 102. In one example, phone application 306 causes telephonic device to audibly ring and/or vibrate while displaying the phone of the incoming call. Phone application 306 also communicates with contacts application 308 to determine if additional information may be provided in the notification of the incoming call.
Contacts application 308 manages the contacts that the user stores on telephonic device 300. Contacts application 308 includes contacts matching API 310 that takes the phone number associated with the incoming call and determines if the phone number corresponds to any of the contacts stored in contacts database 312. In one embodiment, contacts matching API 310 accesses a lookup table that includes a list of the phone numbers associated with the contacts and associates the phone number with a pointer to the contact information. In another embodiment, contacts matching API 310 performs a search of the contacts in the contact database to determine if any of the phone numbers included in the stored contacts corresponds to the phone number of the incoming call. Search algorithms available for determining the contacts associated the incoming phone number are known and are therefore not described in detail herein. When the search is completed, contacts application may have located more than one contact that matches the phone number associated with the incoming phone call.
When multiple contacts are returned from the operation of contacts matching API 310, contacts application 308 forwards the listing of multiple contacts back to phone application 306. Optionally, in another embodiment, contacts application 308 forwards the listing of multiple contacts or possibly only the number of multiple contacts discovered directly to display area application 314.
Display area application 314 take the list of multiple contacts or the number of multiple contacts and queries display interface 316 whether the display area available for showing the contacts is adequate for displaying the full list of contacts. The display area is adequate when it is large enough to display the full list of contacts that correspond to the phone number of the incoming call. The determination is affected by the instructions provided by phone application 306 to display interface 316 for other items to display (e.g., caller ID information, network status information, etc.). Display area application 314 may need only the number of contacts discovered for the determination if display interface 316 has allocated a set amount of space for contact to be displayed. In this example, the resulting contacts that are displayed are truncated to fit the allocated space. The display area is therefore adequate when the multiple contacts are within a threshold number given the display area available. The determination of whether the display area available is adequate to display the full list of multiple contacts is communicated back to phone application 306.
Phone application 306 takes the determination of the adequacy of the display area available and provides instructions to display interface 316 for how to display the existence of multiple contacts to the user on display 102. If multiple contacts were not found, phone application 306 provides instructions to display the single contact found or may display nothing if no contacts are found. An exemplary process for determining what instructions to give to display interface 316 for displaying the contacts information is described below with reference to
At decision block 404, a determination is made whether multiple contacts were detected when the phone number was cross-referenced with the stored contacts. As stated above with regard to contacts matching API 310 of
At decision block 406, a determination is made whether the display area available for displaying the contact information is adequate to display the full list of multiple contacts detected. If the display area available is adequate to display the full list, processing moves to block 408.
At block 408, the full list of multiple contacts is displayed on the telephonic device. Turning quickly back to
If however, the display area is inadequate to display the full list of multiple contacts found, processing continues to decision block 410. At block 410, a determination is made of whether to display the list of multiple contacts detected using a scrollbar or to instead display a multiple contacts message. In one embodiment, a pre-selected setting may be accessed by phone application 306 of
At block 412, a scrollable listing is displayed in the limited display area for the multiple contacts that correspond to the phone number of the incoming call. Turning quickly back to the embodiment of
If instead, the pre-selected setting is set to display the multiple contacts message, processing continues at block 414. At block 414, a multiple contacts message is displayed on the telephonic device to indicate that multiple contacts were found that correspond to the phone number of the incoming call. Turning quickly to the embodiment of
Process 400 may be interrupted at any time due to other telephonic device processes that may occur. For example, the call may be ended, or the user may have selected to send the call to voicemail. Additionally, a selection may be made to automatically display the multiple contacts message despite the display area available. By displaying an indication that multiple contacts matched the phone number of the incoming call, the present invention prevents inaccurate information from being displayed to the user corresponding to the call.
In another embodiment, process 400 is adjusted to display multiple contacts as the contacts are discovered. As the contacts are discovered that match the phone number of the incoming call, the contact information is forwarded to phone application. The phone application forwards instructions to the display interface to display the contact information as it is received. When the number of contacts increases such that the contacts can no longer be displayed in the available display area, the scrollbar is then added to the display. Alternatively, the multiple contacts message is displayed when the display area is no longer adequate.
Although the invention has been described in language that is specific to structural features and/or methodological steps, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or steps described. Rather, the specific features and steps are disclosed as forms of implementing the claimed invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.