1. Field
The disclosed aspects relate to wireless communication devices, and more particularly, to systems, methods and apparatus that provide for an inputted dial string or received caller identification to be properly matched to existing contact information stored in a wireless communication device.
2. Background
Wireless communication devices, such as wireless telephones are generally configured to provide for the storage of contact information. Contact information includes, but is not limited to, names of contacts; telephone number(s) of the contacts; home, business and/or email addresses associated with the contact; and the like. Stored contact information may be used to place a call or the information may be displayed in conjunction with the dialing of a contact telephone number or the receipt of a call from a contact. For example, a wireless communication device user may access the contact application and select a contact for calling purposes. By selecting a chosen contact listing, a telephone number associated with the contact is dialed and an attempt to place the call is made. Additionally, a user may dial a telephone number and if the number is associated with a contact, the wireless communication device will display contact information, such as a name, telephone number or the like. In terms of a received call, the contact information serves as the caller identification mechanism; if the received dial string matches a number in the contact listings, information associated with the contact/caller, such as name, telephone number and the like, is displayed.
Wireless communication device users may associate whatever telephone number they desire with a contact. For example, a user may associate a 10 digit number that includes the area code and local telephone number, a seven digit number that is limited, to the local telephone number or more lengthy numbers that include country codes, city codes, regional codes, network codes and the like.
A problem exists in assuring that contact information is matched and subsequently displayed when a dialed destination telephone number is connected and assuring that contact information is not matched and subsequently displayed when a dialed destination number is not connected. Destination telephone numbers are not always unique; oftentimes more than one number can successfully connect to a targeted telephone number. For example, within the United States it may or may not be necessary to dial the area code when originating a call, if the number that is being called shares the same area code as the number originating the call. In the instance in which it is not necessary to dial the area code, the call will successfully connect with or without the area code being part of the dial string. However, depending on the method used to match contact information to inputted dial strings, the contact information may or may not be displayed.
For example, in some wireless communication devices contact information is only provided if an exact match exists between the inputted or received dial string and the number stored in the contact listing. This method results in many instances in which the call is placed to a contact or a call received from a contact and the contact information is not displayed or otherwise communicated by the device. In one situation, assuming the dialing device and the contact reside in the same area code, if the dialing device stores the contact telephone number as a ten digit number (i.e., the three digit area code+seven digit telephone number) but the number dialed is the seven digit telephone number, the call will be connected, however no contact information is displayed because an exact match did not occur. In the same regard, assuming the dialing device and the contact reside in the same area code, if the dialing device stores the contact telephone number as a seven digit number but the number dialed is the ten digit area code and telephone number, the call will be connected, however no contact information is displayed because an exact match, did not occur. From the received call perspective, in the United States the device receiving a call always receives a ten digit dial string because the network will attach the area code to the dial string regardless of whether the device that placed the call inputted a seven digit or ten digit number. Thus, in the exact match scenario, if the device receiving the call stores a seven-digit number for the contact, the call will be received, however, no contact information will be displayed because an exact match did not occur.
In other wireless devices contact information is provided if a match exists between the last specified number of digits of the inputted or received dial string and the number stored in the contact listing. For example, in the United States the match may be based on the last seven digits of the stored contact listing because in the United States the telephone number is typically seven digits. In other locales, matching may be based on less or more than seven digits, depending on the number of digits in the telephone for a given locale. However, this method may result in instances in which a dialed call cannot be connected or is connected to an unintended device yet contact information is displayed. For example, in a United States application, assuming that the dialing device and the contact reside in different area codes, if the dialing device stores the contact telephone number as a ten digit number but the number dialed is a seven digit number, the call will not be connected, however the contact information will be displayed because the last seven digits of the stored contact number match the number that is dialed. In this instance, the user confronted, with contact information assumes that the call is being connected to their intended recipient when in fact the call is either not connected or is connected to an unintended device residing in the area code of the dialing device. Additionally, contact matching based on the last specified number of digits of the dialed or received dial string may pose other unique problems. For example, in another United States application, the user may store two contacts that have the same seven-digit number but differ in area code. In this instance the last seven digit matching scheme is prone to display the contact information of whichever contact first provides the seven-digit match; regardless of the actual number dialed or received. In another United States example, a user may dial a non-contact number that matches the same last seven digits of a stored contact. In this instance, the stored contact information is displayed even though it has no relevancy to the number that is being dialed.
Therefore, a need exists for a robust contact-matching scheme that provides for matching and subsequent display of contact information to occur in most instances in which a connection occurs and for no matching and subsequent display of contact information to occur in most instances in which a connection does not occur. In this regard the desired methods, systems and apparatus shall overcome problems related to an exact match scheme, which fails to provide contact information in many instances in which a call connection occurs, and a last seven digit match scheme, which may provide contact information in instances in which a call connection cannot be made or is made to an unintended device.
The disclosed apparatus and methods provide for improved dial string to contact matching for initiated and received wireless communication calls.
In particular, devices, methods, apparatus, computer-readable media and processors are presented for a robust contact matching scheme that provides for matching and subsequent display of contact information to occur in most instances in which a connection occurs and for no matching and subsequent display of contact information to occur in most instances in which a connection does not occur. In this regard the described aspects, systems and apparatus overcome problems related to an exact match scheme, which fails to provide contact information in many instances in which a call connection occurs, and a last seven digit match scheme, which may provide contact information in instances in which a call connection cannot be made or is made to an unintended device.
The described aspects provide for attempting to match the dial string to a stored contact and, if no match occurs, changing the length of a dial string on a call being placed (i.e., a wireless originating call) or changing the length of a dial string on a call being received (i.e., a wireless terminating call). Changing the length of a dial string may involve adding or deleting, from the dial string, a code, such as an area code, country code, region code, city code, network code or the like. Once the dial string length has been changed, an attempt is made to match the changed dial string to a stored contact. In some aspects, the adding and deleting of codes to the dial string is an iterative process, whereby codes may be added or deleted until a contact match is found. In one aspect, codes are iteratively added, and if no match is found, then the process involves iteratively deleting codes from the dial string in an attempt to find a matching contact.
In one aspect, a method is provided for contact matching at a wireless communication device. The method includes receiving a dial string having a first length and associated with a wireless communication call, determining if the received dial string matches one of a plurality of stored contact numbers, changing the first length of the received dial string to a second length if the determination results in no match between the received dial string and the plurality of stored contact numbers and determining if the changed dial string matches one of the plurality of stored contact numbers. In some aspects receiving the dial string is further defined as receiving a dial string for initiating a wireless communication call. In other aspects receiving the dial string is further defined as receiving a dial string for connecting a wireless communication call. In some aspects, determining if the received or changed dial string matches one of the plurality of stored contact numbers may further involve an exact match to one of the stored contact numbers or a match of the last x-number of digits in the dial string to one of the stored contact numbers.
In those aspects in which receiving the dial string is further defined as receiving a dial string for initiating a wireless communication call, changing the first length of the dial string may involve adding to the dial string or deleting from the dial string a code that is associated with the wireless device. The associated code may be the wireless device's area code, country code, region code, city code, network code or the like. Adding a code to the dial string may involve prefixing a code to the front of the dial string, inserting a code within the dial string or appending a code to the end of the dial siring. Deleting a code from the dial string may involve deleting a code from the prefix of the string, deleting a code from within the dial string or deleting a code from the appendix of the string. The code that is added to, or deleted from, the dialing string may be the first code in a dialing hierarchy that includes one or more codes. In which case, the method may include adding or deleting, iteratively, to the changed dial string, a next code in the dialing hierarchy if no match results between the changed dial string and the plurality of stored contact numbers.
In those aspects in which receiving the dial string is further defined as receiving a dial string for connecting a wireless communication call, changing the first length of the dial string may involve deleting from the dial string a code, such as an area code, country code, region code, city code, network code or the like. Deleting a code from the dial string may involve deleting a code from the prefix of the string, deleting a code from within the dial string or deleting a code from the appendix of the string. The code that is deleted from the dialing string may be the first code in a dialing hierarchy that includes one or more codes. In which case, the method may include deleting, iteratively, from the changed dial string, a next code in the dialing hierarchy if no match results between the changed dial string and the plurality of stored contact numbers.
A further aspect is defined by at least one processor. The processor is configured to perform the actions of receiving a dial string of a first length that is associated with a wireless communication call, determining if the received dial string matches one of a plurality of stored contact numbers, changing the first length of the received dial string to a second length if the determination results in no match between the received dial string and the plurality of stored contact numbers and determining if the changed dial string matches one of the plurality of stored contact numbers.
A related aspect is provided for in computer program product that includes a computer-readable medium. The computer-readable medium includes a first set of codes for causing a computer to receive a dial string having a first length and associated with a wireless communication call, a second set of codes for causing the computer to determine if the received dial string matches one of a plurality of stored contact numbers, a third set of codes for causing the computer to change the first length of the received dial string to a second length if the determination results in no match between the received dial string and the plurality of stored contact numbers and a fourth set of codes for causing the computer to determine if the changed dial string matches one of the plurality of stored contact numbers.
Yet another related, aspect is defined by a wireless communication device. The device includes means for receiving a dial string having a first length and associated with a wireless communication call, means for determining if the received dial string matches one of a plurality of stored contact numbers, means for changing the first length of the received dial string to a second length if the determination results in no match between the received dial string and the plurality of stored contact numbers and means for determining if the changed dial string matches one of the plurality of stored contact numbers.
A wireless communication device defines another aspect. The wireless communication device includes a computer platform that includes a processor, a memory and a communications module. The memory also comprises a plurality of contact numbers. The communications module is in communication with the processor and is operable for receiving a dial string of a first length, wherein the dial suing is associated with a wireless communication call. The device also includes a contact matching module stored in the memory, executable by the processor and operable for determining if the dial string matches one of the plurality of contact numbers, changing the first length of the dial string to a second length if the determination results in no match between the dial string and the plurality of contact numbers and determining if the changed dial string matches one of the plurality of contact numbers. The device communications module may further include a dialer module operable for receiving a dial string of a first length to initiate a wireless communication call receiving and/or a call-receiving module operable for receiving a dial string of a first length to connect a wireless communication call. In aspects in which the device includes a call receiving module the contact matching module is further operable for determining if the dial string matches one of the plurality of contact numbers, changing the first length of the dial string to a second length if the determination results in no match between the dial string and the plurality of contact numbers and determining if the changed dial string matches one of the plurality of contact numbers.
Thus, present aspects define a robust contact-matching scheme that provides for matching and subsequent display of contact information to occur in most instances in which a connection occurs and for no matching and subsequent display of contact information to occur in most instances in which a connection does not occur. In this regard the described aspects, systems and apparatus overcome problems related to an exact match scheme, which tails to provide contact information in many instances in which a call connection occurs, and a last seven or any other number digit match scheme, which may provide contact information in instances in which a call connection cannot be made or is made to an unintended device.
The disclosed aspects will hereinafter be described in conjunction with, the appended drawings, provided to illustrate and not to limit the disclosed aspects, wherein like designations denote the elements, and in which:
The present devices, apparatus, methods, computer-readable media and processors now will he described more fully hereinafter with reference to the accompanying drawings, in which aspects of the invention ate shown. The devices, apparatus, methods, computer-readable media and processors, however, may be embodied in many different forms and should not be construed as limited to the aspects set forth herein; rather, these aspects are provided so that this disclosure will he thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout.
The various aspects for dial string to contact matching are described herein in connection with a wireless communication device. A wireless communication device can also be called a subscriber station, a subscriber unit, mobile station, mobile, remote station, access point, remote terminal, access terminal, user terminal, user agent, a user device, or user equipment. A wireless communication device may be a cellular telephone, a cordless telephone, a Session Initiation Protocol (SIP) phone, a wireless local loop (WLL) station, a personal digital assistant (PDA), a handheld device having wireless connection capability, or other processing device connected to a wireless modem.
The described aspects provide for methods, apparatus and systems for dial string to contact matching in a wireless communication device. The methods, systems and devices provide contact matching of dial strings that are received for initiating a call at a call originating wireless device and dial strings that are received for connecting a call at a call terminating wireless device. As will be described in detail below, the aspects provide for the dial string length to be iteratively changed, such as by adding or deleting codes, if a match does not exist between the dial string and stored contact numbers. Thus, the described aspects provide for contact matching in most instances in which a call is successfully connected or placed, and also provide for no matching in most instances in which a call is hot connected or placed.
Referring to
The first wireless communication device 10 includes a computing platform 20 having a processor 22, a memory 24 and a communications module 26. Communications module 26 is operable to receive a dial string associated with either initiating/originating a communication call or connecting/terminating a communication call. Communication Module 26 may Include a dialer module 28 operable for receiving a call originating dial, string 30 for initiating/originating a wireless communication. Additionally, communication module 26 may include a call-receiving module 32 operable for receiving a call connecting dial string 34 from wireless network 16 for connecting/terminating the communication call.
Memory 24 includes a contact-matching module 36 operable for attempting to match call originating dial string 30 and/or call connecting dial string 34 to one of a plurality of stored contact listings 38. Contact listings 38 may include a contact name, a number associated with the contact and any other information associated with the contact. A match between dial string 30 or 34 and one of the plurality of contact listings 38 may result in the visual display or audio communication, of information related to the contact, such as the contact name, contact number and the like in conjunction with the placement of the call or the receipt of the call from network 16. Additionally, while the contact listings 38 are depicted as stored locally on wireless communication device 10, in alternate aspects the contacts may be stored remotely at a network device, which is accessed by wireless communication device 10 to search or retrieve contact information as needed.
The contact-matching module 36 may include call originating logic 40 operable for attempting to match the call-originating dial string 30 to one of the plurality of contact listings 38. In one aspect, the attempt to match the call originating dial string 30 to one of the plurality of contact listings 38 may include determining if the call originating dial string matches one of the plurality of contact listings 38 and, if no match is determined, changing the length, of the dial string by adding or deleting a dialing code 42 associated with wireless communication device 10. An attempt is then made to match the changed dial string to one of the plurality of contact listings 38. The process of changing the dial string length, by adding or deleting dialing codes 42, may continue iteratively until a contact match is determined or until all dialing codes 42 associated with wireless communication device 10 have been added or deleted from the dial string and no resulting contact match is determined. In many aspects adding or deleting a code occurs at the beginning of the dial string, however, it is also conceivable and within the inventive concepts herein disclosed to add or delete the code from within the dial string (i.e., insert) or at the end of the dial string (i.e., append). The dialing codes 42 may include, but are not limited to, an area code, a country code, a region code, a city code, a network code or the like.
The contact-matching module 36 may include call connecting logic 44 operable for attempting to match the call-connecting dial string 34 to one of the plurality of contact listings 36. In one aspect, the attempt to match the call connecting dial string 34 to one of the plurality of contact listings 36 may include determining if the call originating dial string matches one of the plurality of contact listings 36 and, if no match is determined, changing the length of the dial string by deleting any code found in the dial string. An attempt is then made to match the changed dial string to one of the plurality of contact listings 36. The process of changing the dial string length, by deleting a code, may continue iteratively until a contact match is determined or until all the codes occurring in call-connecting dial string 34 have been deleted from the dial string and no resulting contact match is determined. The codes occurring within call connecting dial string 34 may include, but are not limited to, an area code, a country code, a region code, a city code, a network code or the like.
Referring to
The wireless communication device 10 includes computer platform 20 that can transmit data across a wireless network, and that can receive and execute routines and applications. Computer platform 20 includes memory 24, which may comprise volatile and nonvolatile memory such as read-only and/or random-access memory (RAM and ROM), EPROM, EEPROM, flash cards, or any memory common to computer platforms. Further, memory 24 may include one or more flash memory, cells, or may be any secondary or tertiary storage device, such as magnetic media, optical media, tape, or soft, or hard disk.
Further, computer platform 20 also includes a processor 22, which may be an application-specific integrated circuit (“ASIC”), or other chipset, logic circuit, or other data processing device. Processor 22 such as ASIC may execute an application programming interface (“API”) layer 50 that interfaces with any resident programs, such as contact matching module 36, stored in the memory 24 of wireless communication device 10. API 50 is typically a runtime environment executing on the respective wireless device. One such runtime environment is Binary Runtime Environment for Wireless® (BREW®) software platform developed by Qualcomm, Inc., of San Diego, Calif. Other runtime environments may be utilized that, for example, operate to control the execution of applications on wireless computing devices.
Processor 22 may include various processing subsystems 52 embodied in hardware, firmware, software, and combinations thereof, that enable the functionality of communication device 10 and the operability of the communication device on wireless network 16. For example, processing subsystems 52 allow for initiating and maintaining communications, and exchanging data, with other networked devices. In aspects in which the wireless communication device is defined as a cellular telephone the communications processor 22 may additionally include one or a combination of processing subsystems 52, such as: sound, non-volatile memory, file system, transmit, receive, searcher, layer 1, layer 2, layer 3, main control, remote procedure, handset, power management, digital signal processor, messaging, call manager, Bluetooth® system, Bluetooth® LPOS, position engine, user interface, sleep, data services, security, authentication, USIM/SIM, voice services, graphics, USB, multimedia such as MPEG, GPRS, etc (all of which are not individually depicted in
Computer platform 30 may further include communications module 26 embodied in hardware, firmware, software, and combinations thereof that enables communications among the various components of the wireless communication device 10, as well as between the communication device 10, wireless network 16 and other communication devices, such as wireless communication device 12. In described aspects, the communication module 26 enables the communication of all correspondence between the first communication device 10, the second communication device 12 and wireless network 16. The communication module 54 may include the requisite hardware, firmware, software and/or combinations thereof for establishing a wireless or wired network communication connection.
Communications module 26 is operable to receive a dial string for initiating/originating, a wireless communication call and a dial string for connecting/terminating a communication call. The communication module 26 may include dialer module 28 operable for receiving a call originating dial string 30 for initiating/originating a wireless call and a call-receiving module 32 operable for receiving a call connecting dial string 34 from wireless network 16 for connecting/terminating a communication call. In alternate aspects, dialer module 28 and call-receiving module 32 may be embodied in one comprehensive module capable of receiving a call originating dial string 30 for placing a wireless call and for receiving a call connecting dial string 34 from wireless network 16.
Memory 24 includes a contact-matching module 36 operable for attempting to match call originating dial string 30 and/or call connecting dial string 34 to one of a plurality of stored contact listings 38. Contact listings 38 may include a contact name, a number associated, with the contact and any other information associated with the contact. Contact listings 38 may be generated manually by the user of wireless communication device 10 or they may be electronically communicated or otherwise loaded on wireless communication devices 10. In most instances, a match between dial string 30 or 34 and one of the plurality of contact listings 38 may result in the visual display or audio communication of information related to the contact, such as the contact name, contact number and the like in conjunction with the placement of the call or the receipt of the call from network 16. In this regard, from the placed call perspective, the displayed or otherwise, communicated contact information allows the user to verify that they have dialed the correct number and that an attempt is being made to connect the call. From the received call perspective, the displayed or otherwise, communicated contact information provides for the identification of the caller at the call-receiving wireless communication device. Additionally, while the contact listings 38 are depicted as stored locally on wireless communication device 10, in alternate aspects the contacts may be stored remotely at a network device, which is accessible to wireless communication device 10 to search or retrieve contact information as needed.
The contact-matching module 36 may include call originating logic 40 operable for attempting to match the call-originating dial string 30 to one of the plurality of contact listings 38. In one aspect, the attempt to match the call originating dial string 30 to one of the plurality of contact listings 38 may include determining if the call originating dial string matches one of the plurality of contact listings 38 and, if no match is determined, changing the length of the dial string by adding or deleting a dialing code 44 associated with wireless communication device 10. An attempt may then be made to match the changed dial string to one of the plurality of contact listings 38. The process of changing the dial string length, by adding or deleting dialing codes 44, may continue iteratively until a contact match is determined or until all dialing codes 44 associated with wireless communication device 10 have been added or deleted from the dial string and no resulting contact match is determined. In many aspects adding or deleting a code occurs at the beginning of the dial string, however, it is also conceivable and within the inventive concepts herein disclosed to add or delete the code from within the dial string (i.e., insert) or at the end of the dial string (i.e., append). The dialing codes 44 may include, but are not limited to, an area code, a country code, a region code, a city code, a network code or the like.
The contact-matching module 36 may include call connecting logic 44 operable for attempting to match the call-connecting dial string 34 to one of the plurality of contact listings 38. In one aspect, the attempt to match the call connecting dial string 34 to one of the plurality of contact listings 38 may include determining if the call originating dial string matches one of the plurality of contact listings 38 and, if no match is determined, changing the length of the dial string by deleting any code found in the dial string. An attempt is then made to match the changed dial string to one of the plurality of contact listings 38. The process of changing the dial string length, by deleting a code, may continue iteratively until a contact match is determined, or until all the codes occurring in call-connecting dial string 34 have been deleted from the dial string and no resulting contact match is determined. The codes occurring within call connecting dial string 34 may include, but are not limited to, an area code, a country code, a region code, a city code, a network code or the like. In other aspects, the attempt to match the call connecting dial string 34 to one of the plurality of contact listings 38 may Include changing the length of the dial string by iteratively adding codes. In alternative aspects, call originating logic 40 and call connecting logic 44 may be comprehensively included in a single logic element capable of providing contact matching in both the call originating and call receiving situations.
Referring to
In system 100, network server 106 can be in communication over a wired network 102 (e.g. a local area network, LAN) with a separate data repository 108 for storing contact listing, dialing codes or the like. Further, a data management server 110 may be in communication with network server 14 to provide post-processing capabilities, data flow control, etc. Network server 14, data repository 108 and data management server 110 may be present on the cellular telephone system 100 with any other network components that are needed to provide cellular telecommunication services. Network server 106, and/or data management server 108 communicate with carrier network 104 through a data links 112 and 114, which may be data links such as the internet, a secure LAN, WAN, or other network. Carrier network 104 controls messages (generally being data packets) sent to a mobile switching center (“MSC”) 116. Further, carrier network 104 communicates with MSG 116 by a network 114, such as the Internet, and/or POTS (“plain old telephone service”). Typically, in network 114, a network or Internet portion transfers data, and the POTS portion transfers voice information. MSC 116 may be connected to multiple base stations (“BTS”) 118 by another network 120, such as a data network and/or Internet portion for data transfer and a POTS portion for voice information. BIS 118 ultimately broadcasts messages wirelessly to the wireless devices, such as wireless devices 10 and 12, by short messaging service (“SMS”), or other over-the-air methods.
Referring to
At Event 210, an attempt is made to match the received dial string to one of the plurality of stored contact listings/numbers. In some aspects, the match constitutes an exact match between the received dial string and one of the plurality of stored contact numbers. In other aspects, a match may constitute the matching of the last x number of digits in the dial string, for example, the last seven digits in the dial string, to one of the plurality of stored contacts. If a match is determined then, at Event 220, the contact information is displayed or otherwise communicated to the user of the wireless communication device. The displayed information may include, but is not limited to, the contact's stored number or a portion of the stored number, the name of the contact, and any other information associated with the contact that is stored in the contact listing.
If the initial determination provides for no match then, at Event 230, a determination is made as to whether the length of the dial string is less than the maximum dial string length (i.e., the length of the dial string if applicable codes are attached to the string). If the dial string length is less than the maximum dial string length then, at Event 240, the next code in the hierarchy of codes associated with the wireless communication device that is placing the call is added to the dial string. Each wireless communication device may have one or more codes associated with the device, such as the area code, the country code, the region code, the city code, the network code and the like. The code will topically be added to the dial string by prefixing the code to the beginning of the dial string, although in alternate aspects, the code may be inserted within the dial string or appended to the end of the dial string. For example, in one aspect, the received dial string is a seven-digit telephone number and the first code in the hierarchy is the area code, which is then prefixed to the beginning of the dial string. The process then returns to Event 210, where an attempt is made to match the changed dial string to one of the plurality of stored contact listing/number. If a match is determined then, at Event 220, the contact information is displayed or otherwise communicated to the user of the wireless communication device. If the determination provides for no match then, at Event 230, a determination is made as to whether the length, of the changed dial string is less than the maximum dial string length. As long as no match has been determined and the changed dial string is less than the maximum dial string length the process will iteratively continue to add the next code in the code hierarchy to the dial string and determine if a match exists.
Once a determination is made that the dial string length has reached the maximum dial string length then, at Event 250, all codes that were added to the dial string are removed and, at Event 260, a determination is made as to whether the highest code in the hierarchy of codes included in the received dial string is associated with the wireless communication device that is placing the call. In some aspects, the highest code in the hierarchy of codes will be the first code at the beginning of the dial string, while in other aspects the highest code in the hierarchy of codes may be found elsewhere in the dial String. For example, if the dial string includes a country code and an area code, the country code may be deemed the highest code in the hierarchy of codes and a determination is made to whether the country code in the dial string Is equivalent to the country code of the wireless communication device that is placing the call. If the highest code in the hierarchy of codes is not associated with the wireless communication device (i.e., the code in the dial string differs from the wireless communication device code) then, at Event 270, no contact is displayed and the contact matching process terminates.
If the highest code in the hierarchy of codes is associated with the wireless communication device (i.e., the code in the dial string is equivalent to the wireless communication device code) then, at Event 280, the highest code in the hierarchy of codes is removed from the dial string and, at Event 290, a determination is made as to whether the changed dial string matches one of the plurality of stored contact numbers. If a match is determined then, at Event 220, the contact information is displayed or otherwise communicated to the user of the wireless communication device. If the determination provides for no match then, at Event 300, a determination is made as to whether further hierarchal codes are present in the received dial string. If no additional hierarchal codes exist in the received dial string then, at Event 270, no contact is displayed and the contact matching process terminates.
If additional hierarchal codes are present on the dial string then, the process returns to Event 260, for a determination as to whether the next highest code in the hierarchy of codes included in the received dial string is associated with the wireless communication device that is placing the call. If the next highest code in the hierarchy of codes is not associated with the wireless communication device (i.e., the code in the dial string differs from the wireless communication device code) then, at Event 270, no contact is displayed and the contact matching process terminates. If the next highest code in the hierarchy of codes is associated with the wireless communication device (i.e., the code in the dial string is equivalent to the wireless communication device code) then, at Event 280, the highest code in the hierarchy of codes is removed from the dial string and, at Event 290, a determination is made as to whether, the changed dial string matches one of the plurality of stored contact numbers. If a match is determined then, at Event 220, the contact information is displayed, or otherwise communicated to the user of the wireless communication device. If the determination provides for no match then, at Event 300, a determination is made as to whether further hierarchal codes are present In the received dial string. This iterative process continues until no further hierarchal codes are present in the dial string.
Referring to
At Event 410, an attempt is made to match the received dial string to one of the plurality of stored contact listing/number. In some aspects, the match constitutes an exact match between the received dial string and one of the plurality of stored contact numbers. In other aspects, a match may constitute the matching of the last “x” number of digits in the dial string, for example, the last seven digits in the dial string, to one of the plurality of stored contacts. If a match is determined then, at Event 420, the contact information is displayed or otherwise communicated to the user of the wireless communication device. The displayed information may include, but is not limited to, the contact's stored number or a portion of the stored number, the name of the contact, and any other information associated with the contact that is stored in the contact listing. If the initial determination provides for no match then, at Event 430, a determination is made as to whether the length of the dial string is equal to the minimum dial string length (i.e., the length of the dial string if no codes are attached to the string).
If the dial string length is equal to the minimum dial strength length then, at Event 440, no contact information is displayed or otherwise communicated and the contact matching process is terminated. If the dial string length is greater than the minimum dial string length then, at Event 450, the highest code in the hierarchy of codes included in the received dial string is removed and, at Event 460, a determination is made as to whether the changed dial string matches one of the plurality of stored contact numbers. If a match is determined then, at Event 420, the contact information is displayed or otherwise communicated to the user of the wireless communication device.
If the determination provides for no match then, the process returns to Event 430, a determination is made as to whether the length of the changed dial string is equal to the minimum dial string length. If the changed dial string length is equal to the minimum dial strength length then, at Event 440, no contact information is displayed or otherwise communicated and the contact matching process is terminated. If the changed dial string length is greater than the minimum dial string length then, at Event 450, the next highest code in the hierarchy of codes included in the received dial siring is removed and, at Event 460, a determination is made as to whether the changed dial string matches one of the plurality of the stored contact numbers. This iterative contact matching process continues until the changed dial string matches a contact and a contact is displayed or the changed dial string is determined to equal the minimum dial string length, in which case no contact information is displayed.
Referring to
At Event 510, the wireless communication device determines if the received dial string matches one of the plurality of stored contact listings/numbers. In some aspects, me determined match is an exact match between the dial string and the contact numbers and, in other aspects, the determined match may be a match of the last x number of digits in the dial string and a contact number. If a match exists, information related to the contact may be displayed or otherwise communicated via the wireless communication device.
If the determination results in no match occurring between the received dial string and the contact numbers the, at Event 520, the received dial string is changed from the first length to a second length. Changing the length of the dial string may entail adding to a code, or deleting a code from, the dial string. In those aspects in which the received dial string is the initial dial string associated with the device that is being called, changing the dial string may involve adding or deleting a code to or from the dial string that is associated with the device that is placing the call. In those aspects in which the received dial string is the dial string received from the network by a wireless device that is connecting a call, changing the dial string may involve deleting a code from the received dial string.
At Event 530, the wireless device determines if the changed dial string matches one of the stored contact numbers. If a match exists, information related to the contact may be displayed or otherwise communicated via the wireless communication device. If a match does not exist, the process may continue iteratively until all possible codes have been added to the dial string and/or all possible codes have been removed from the dial string and the associated match process either results in a no match or no match is determined.
The various illustrative logics, logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
Further, the steps and/or actions of a method or algorithm described in connection with the aspects disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium may be coupled to the processor, such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. Further, in some aspects, the processor and the storage medium may reside in an ASIC. Additionally, the ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal. Additionally, in some aspects, the steps and/or actions of a method or algorithm may reside as one or any combination or set of instructions on a machine-readable medium and/or computer readable medium. Further, in some aspects, the steps and/or actions of a method or algorithm may reside as a computer program product including a computer readable medium having one or any combination or set of codes for causing a computer to perform the steps and/or actions.
Thus, present aspects define a robust contact-matching scheme that provides for matching and subsequent display of contact information to occur in most instances in which a connection occurs and for no matching and subsequent display of contact information to occur in most instances in which a connection does not occur. In this regard the described aspects, systems and apparatus overcome problems related to an exact match scheme, which fails to provide contact information in many instances in which a call, connection occurs, and a last seven or any other number digit match scheme, which may provide contact information in instances in which a call connection cannot be made or is made to an unintended device.
While the foregoing disclosure shows illustrative aspects and/or embodiments, it should be noted that various changes and modifications could be made herein without departing from the scope of the described aspects and/or embodiments as defined by the appended claims. Furthermore, although elements of the described embodiments may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated. Additionally, all or a portion of any aspect and/or embodiment may be utilized with all or a portion of any other aspect and/or embodiment, unless stated otherwise.