1. Field of the Invention
The invention relates to a system, device, computer readable medium, and process for populating a contact list using a client device with service provider contact information based on location information.
2. Related Art
Currently there are a variety of alternatives to the traditional public switched telephone network (PSTN). For example, current telephone systems may use a packet switched network, which is typical in a computer data environment, rather than a circuit switched network, for a telephone connection. Rather than sending voice information through the traditional circuit-committed protocols of the PSTN, packet switched networks may rely on Voice over Internet Protocol (VoIP) implementations, which facilitate the delivery of voice information using the Internet Protocol (IP), whereby voice information is packaged in a digital form in discrete packets.
Alternatively, cellular networks enable wireless access to a telephone network by allowing a cellular phone to connect to a nearby cellular base station through an air interface. In addition to voice communications, cellular networks also allow data communications. For example, cellular phones can send and receive messages through a Short Message Service (SMS) and can retrieve and display web pages through wireless cellular links.
A Digital Enhanced Cordless Telecommunications (DECT) system is designed for short-range use as a way of implementing residential and business cordless phone communications. DECT terminals can work with DECT systems which are connected to the GSM infrastructure and all roaming scenarios based on SIM roaming are applicable.
These are just some examples of the alternatives now available to traditional telephones. More than ever, people are traveling for both work and leisure, are spending increasing amount of time on a computer, again both for work and leisure, and families and friends are often far away, making telephone calls an important means to stay in touch. These needs have encouraged the advent of new telecommunication technologies that are portable, convenient, and cost efficient and have led to the development of many alternatives to the traditional land line.
This increase in options, along with more competition among traditional telephone companies, have lowered the cost of telephone calls over the past several years. Consumers of all ages along with businesses throughout the world rely on the telephone as an everyday part of life. Keeping the costs low is important to consumers, as is apparent from the numerous promotions and fierce competition among cellular providers, long distance providers, and VoIP providers.
Most providers of telephone service of any kind charge a monthly flat fee for the service, plus additional fees for such things as long distance calls, excess minutes, calling outside of a network, calling outside of certain time frames, and calling internationally. Consumers must worry about talking too long, or calling at the wrong time or to the wrong place. In addition, the monthly fee can be quite high.
Thus there is a need for a telephone service that can provide low cost or free calls to consumers while generating revenue from a source other than the customers.
This invention is related to a system, device, computer readable medium, and process for populating a contact list using a client device. In accordance with one embodiment of the present invention, a client device, which may be a USB device, may be coupled to a first processor based device. In accordance with an exemplary process of the present invention, a unique client identifier is received from the client device and a first search of a client database is conducted to determine if the unique client identifier is present in the client database. The exemplary process also includes retrieving from the client database location identifying information associated with the unique client identifier, if a determination is made that the unique client identifier is present in the client database. The exemplary process also includes searching a service provider database to identify service provider phone numbers that correspond to the location identifying information associated with the unique client identifier and retrieving at least one of the service provider phone numbers that correspond to the location identifying information from the service provider database. The exemplary process includes sending the service provider phone numbers to the client device, such that the client device populates the contact list using the service provider phone numbers.
a illustrates an example of a table from an exemplary client database that may be employed in conjunction with an embodiment of the present invention.
a illustrates an example of a table from an exemplary service provider database that may be employed in conjunction with an embodiment of the present invention.
a and 7b illustrate, in accordance with the present invention, exemplary processes for populating a contact list using a client device from the perspective of a server.
The system 1000 also supports the use of a client device 1140 that implements telephone functionality (i.e. softphone functionality) in accordance with the present invention. The client device 1140 can be used to implement telephony service via at least a packet switched network. Preferably, the telephony service is a VoIP service.
Upon insertion of the client device 1140 into a USB port 1040 of the computer 1020, the microprocessor of the computer 1020 will begin to execute the software instructions of the softphone. Thereafter, a softphone user interface 3000, as shown in
The phone segment 3040 looks like a telephone keypad and contains numbers that a customer can use to dial a telephone number. The phone segment 3040 may also include buttons for other telephone features such a mute and hold. The phone segment 3040 may also have buttons to send and to end a call.
The contact list segment 3060 includes a list of names and phone numbers. As will be described in further detail below, the names and phone numbers may be names and phone numbers that were input by the customer or they may be names and phone numbers that were automatically sent to the client device 1140 or associated computer 1020 in the manner described below. When the softphone user interface 3000 is first generated, the entries for the contact list may be retrieved from memory 2200 or may be retrieved from a server via a network.
The transaction server 4020 utilizes the serial number to query a database of a database server 4080. In one embodiment, the serial number is queried against a client database 5000 that contains a field for determining client authorization. In an alternative embodiment, the serial number is queried against a designated authorization database (not shown). The data of the client database 5000 can reside on a hard drive 4120 coupled to the database server 4080. Alternatively, the client database 5000 may be stored on multiple hard drives, which may include hard drives presented in a RAID configuration. Preferably, the client database 5000 is a relational database. In an alternative embodiment, the serial number is queried against a designated authorization database (not shown).
If one or more records contain the serial number and an indication that the serial number is authorized, then location identifying information associated with the client device 1140 (or user of the device) is retrieved from the database record. The location identifying information can be any information that indicates the geographic location of the customer. For example, the customer's location identifying information can be the customer's zip code, the customer's municipality, the customer's state, the customer's street address, or the customer's area code. The customer's location identifying information may also be a market zone, which is a specific area within a particular radius, but not measured solely by a fixed boundary such as a town or zip code. The scope of the market zone may be determined with reference to GPS location information or longitude and latitude location information that is included in the location identifying information stored within the client database 5000. Geospatial information, such as latitude and longitude, is available via a number of publicly accessible sources. One example of a source that may be found on the Internet is Google™ Maps. By way of example, the market zone may be defined to encompass a region that is substantially a circle whose radius is measured from the longitude and latitude location information included within the location identifying information of the database record that is being queried. The scope of the market zone may also be determined with reference to shopping or delivery or other affinity areas related to street address or other information stored within the client database 5000.
a illustrates one example of a table from the client database 5000 that is a relational database. The client database 5000 contains columns for the unique client identifier, in this case, the serial number of the client device employed by a user 5020, a customer's phone number 5040, the customer's last name 5060, the customer's first name 5080, a column for authorization 5100, and a column for the customer location identifying information, in this case, the customer's zip code 5120.
The client database 5000 also contains rows, each of which contain the information stated in the columns relating to a specific customer's information. For example, the first row 5160 contains information regarding a hypothetical customer named Charles Burns.
As shown in
Similarly, as shown in
The results of the search for the customer's location identifying information are then queried against a service provider database 6000. The data of the service provider database 6000 can reside on the hard drive 4120 coupled to the database server 4080, or it may reside on a different hard drive associated with the same database server or a different database server. Alternatively, the data of the service provider database 6000 may be stored on multiple hard drives, which may include hard drives presented in a RAID configuration. Preferably, the service provider database 6000 is a relational database.
a illustrates one example of a table of the service provider database 6000 that may be employed in connection with an embodiment of the present invention. The service provider database 6000 is a relational database and contains columns for the service provider category 6020, location identifier, in this case, service provider zip code 6040, name 6060, phone number 6080, and an indication of whether the service provider is current in payment 6100.
The service provider database 6000 also contains rows, each of which contain the information stated in the columns relating to a specific service provider's information for one location (e.g., retail location). For example, the first row 6140, contains information regarding a service provider hypothetically named “Mushnick's Flower Shop.”
As shown in
Similarly, as shown in
Specifically, a customer's zip code is compared by the transaction server's processor 4020 to the contents of the cells holding service provider zip codes 6040 and service providers that have zip codes corresponding to the customer's zip code is identified on a location by location basis. In alternative embodiments of the invention, other customer location indicators and/or other service provider information may be used for the comparison, such as the customer's and service provider's street addresses, municipalities, states, longitude and latitude information, and global positioning system coordinates.
In accordance with the present invention, the computer 1020 coupled to the client device 1140 can populate the contact list after receiving service provider information, including a service provider phone number, from the transaction server 4020. Alternatively, the transaction server 4020 can populate a contact list with service provider entries and forward the list to the computer 1020 coupled to the client device 1140. In any event, information received from the service provider will be sent via the network 4060 to the computer 1020 coupled to the client device 1140 in the form of a file. By way of example, the file may be a file with an .ini extension.
If the computer 1020 coupled to the client device 1140 is populating the contact list, it will examine the service provider information received from the transaction server 4020 to see if it already has that information reflected in an entry corresponding to the service provider. If it does not have that service provider information, then it will update the contact list with one or more entries corresponding to that service provider information. Otherwise, if it does have that service provider information already reflected in the contact list, then it will not update the list to reflect that information.
It may be the case that the contents of an existing service provider record in the service provider database 6000 needs to be changed. In that case, a change record status flag may be used to indicate the presence of a change to an existing record so that the record will not be identified as a duplicate of a previous version of the record whose contents had been sent to the client device 1140 or first processor device.
Similarly, flags may be used to reflect whether a service provider has paid fees for populating contact lists with entries that reflect locations where the service providers may be contacted. If the service provider has paid the fees, then a flag will indicate that the service provider has done so and when the contact list is updated, those entries for that service provider will be displayed accordingly. If the flag is not set, then the service provider has not paid and their corresponding entries in the contact list will not be displayed.
In one embodiment, a user of the contact list can indicate that an entry in the contact list should not be removed, for example, by editing the entry or otherwise marking it. A flag will then be set in the contact list to reflect that the entry will not be deleted.
Conversely, a user can designate an entry in the contact list for deletion. Accordingly, a flag will be set and the entry will be maintained in the contact list but not displayed. This ensures that the entry will not be downloaded again in the contact list because it is not actually deleted. When entries are checked for duplicates, the entries marked for deletion will still exist (but not be displayed) so the entry will not be repopulated in the contact list.
If the transaction server 4020 is populating the contact list, then it will store the latest version of the contact list in its client or customer database 5000 and check to see whether any service provider information retrieved from the service provider database 6000 is redundant of information already reflected in the contact list. If it is, then that entry of the contact list will not be updated. If it is not, then one or more new entries will be created for the contact list that correspond to that service provider information.
When the contact list is selected in the softphone user interface 3060, the user will see, in addition to any entries that he had added or imported himself, entries for service providers. In a preferred embodiment of the invention, the entries will be for businesses in the customer's local area. Also, it may be the case that only a predetermined number of entries for service providers may be included in a user's contact list. In that case, the service provider entries will be prioritized either before they are sent to the client device, or thereafter, in accordance with one or more predefined rules. By way of example, if a service provider pays the most amount of money for inclusion of one or more of their entries, then their entries shall be included first in the list. If two providers have paid the same for their entry, then the one who has been paying for service provider entries the longest will get their service provider entry included higher on the list. If the predetermined number of entries is met, then the highest paying service providers will be included. In an alternative embodiment, the highest paying service provider(s) in each category will be included.
In one embodiment of the invention, the service provider entries also include the service provider's business category. In a preferred embodiment, the service provider entries are listed alphabetically, by business category. In one embodiment, the service provider entries will be listed in the same contact list as the customer's personal entries. In this embodiment, the service provider entries they may be clustered together at the top of the listings or at the bottom of the listings. In another embodiment, the entries may be interspersed with the customer's personal entries, either in alphabetical order using the service provider's company name or a business category, such as a category or categories of goods and/or services provided by the service provider (e.g., “Florist,” “Taxi Service,” “Lodging,” etc.).
In another embodiment, the service provider entries are listed in a contact list separate from the customer's personal contact list. In this embodiment, the contact list segment 3060 of the softphone user interface 1160 may display one of the contact lists (such as the service provider contact list) and contain a link to switch to another contact list, such as a user's personal contact list.
In accordance with the present invention, once the service provider entries are listed in a user's contact list, the user can click on a service provider's entry and information about the service provider will appear on the screen. In one embodiment, the service provider's phone number appears. In another embodiment, the service provider's address appears. In other embodiments, additional information may appear, such as a description of services, hours of operation, pricing, menus, or other information related to the service provider. In the foregoing embodiments, the customer can push a button or click on a link to have the call automatically placed via a telephony service, such as a VoIP service.
In accordance with the invention, each time a user logs into the VoIP system, his contact list will be updated with new entries from new service providers. In another embodiment, the user will have the option of manually deleting specific service provider's entries. In another embodiment, previously deleted entries will not be re-added to the customer's contact list. In another embodiment, previously deleted entries will be re-added to the customer's contact list when the contact list is repopulated.
When the customer moves to a different geographical location (either permanently or temporarily) the customer may store his new geographical information (e.g., a new zip code) in the memory of the client device 1140 or associated computer 1020. Thereafter, contact information from service providers in the customer's new location will be automatically added to the customer's contact list. In one embodiment of the invention, the new entries will replace the old entries. In another embodiment, the new entries will be cumulative to the old entries. In another embodiment, the new entries will be cumulative, but appear in a separate geographical listing. In another embodiment, the customer will have the option of whether to replace old entries with new entries or to make them cumulative. In still another embodiment, the customer will have the option of making the new entries temporary or permanent.
a and 7b illustrate processes for populating a contact list using a client device from the perspective of a server. The client device can be any device that alone, or in combination with another device, is capable of storing and running softphone software. Examples of possible client devices include a USB device, a DECT phone, a cellular phone, and a computer. In a preferred embodiment, the client device is a USB device. The client device is coupled to a first processor based device, which can be a computer, for example.
The first processor-based device may be coupled to the second processor-based device via at least one communications network or at least one data network, such as a packet-switched network. In a preferred embodiment, communication between the first processor-based device and the second processor-based device is by HTTP and is implemented via TCP/IP protocol.
The process includes receiving a unique client identifier from the client device 7020. The unique client identifier can be any information that identifies a particular customer or client device, for example, a client device serial number, a customer phone number, an Internet Protocol Address, or a network interface code. A password may also be associated with the unique client identifier. In a preferred embodiment, the unique client identifier is a client device serial number, which may or may not be coupled with a password.
The next step of the process includes conducting a first search of a client database to determine if the unique client identifier is present in the client database 7040. The client database may contain one table that includes all of the customer's information, or it can contain multiple tables with each table having different pieces of the customer's information. In a preferred embodiment, the client database is a relational database. The data associated with the client database may be stored in a memory, which may be accessible by a second processor-based device. In one embodiment, the customer information can be input into the client database upon receipt from the client device or associated computer.
In a further embodiment, the process includes searching the database to determine whether the customer or device associated with the unique client identifier is authorized to use the system. If the unique client identifier is not found in the database, then a message may be sent to the client device instructing it, for example, to cease operation.
The process continues by retrieving from the client database, location identifying information associated with the unique client identifier 7060. Location identifying information may be any information that associates a particular customer or client device with a particular geographic area, for example, a zip code, state, municipality, street address, latitude and longitude coordinates, global positioning system coordinates, or information defining an area based on certain market characteristics. In a preferred embodiment, location identifying information is latitude and longitude coordinates associated with the customer's location. In a further embodiment, the process includes retrieving demographic information associated with the customer, such as age, employment status, gender, income, and/or marital status, from the client database.
The process continues by searching a service provider database to identify service provider phone numbers that correspond to the location identifying information associated with the unique client identifier 7080. The service provider database contains, at a minimum, service provider phone numbers. In a preferred embodiment, the service provider database also contains service provider names and business categories. In addition, the service provider database may contain other service provider information, such as service provider addresses, service provider advertisements, information specific to service provider businesses, links to service provider websites, and links to service provider phone numbers.
In a preferred embodiment, the service provider database is a relational database. The data of the service provider database may be stored in a memory, which may be accessible by a second processor-based device. In a preferred embodiment, the client database and the service provider database are one database containing separate tables for customer information and service provider information. Other configurations, however, are certainly possible, for example, the client database and the service provider database may be separate databases; the information for the client database and the information for the service provider database may be in the same table on the same database; or the information for both the client database and the service provider database may be split among several databases, which could be located on one or more processor-based devices.
In a further embodiment, the determination of whether the service provider phone numbers correspond to the location identifying information may be based on whether the service provider phone numbers are associated with the same specific information as reflected in the location identifying information. The specific information can include information such as zip code, state, municipality, street address, latitude and longitude coordinates, global positional system coordinates, and information defining an area based on certain market characteristics.
In a still further embodiment, the determination may be based on whether the service provider phone numbers are associated with a first zip code included within a first group of zip codes that also includes a second zip code reflected in the location identifying information. A determination may also be based on whether the service provider phone numbers are associated with a geographic area (defined by a predetermined set of market characteristics) that is also associated with the location identifying information. The predetermined set of market characteristics may include certain demographic information, such as average earnings per capita, the average home price in the geographic area under consideration, or shopping or delivery or other affinity areas.
The next step includes retrieving at least one of the service provider phone numbers that correspond to the location identifying information from the service provider database 7100. In further embodiments, additional service provider information, such as that discussed above, may also be retrieved. In still another further embodiment, at least one service provider phone number that corresponds to both location identifying information and demographic information may be retrieved.
Next, as shown in
In further embodiments, the process may also include determining if any of the service provider phone numbers that have been retrieved from the service provider database or sent to the client device or first processor based device are duplicative of those previously sent. Only those service provide phone numbers that are not duplicative will be retrieved or sent to the client device or first processor based device.
In the embodiment shown in
The process includes transmitting a unique client identifier to a server 8020. The unique client identifier can be any information that identifies a particular customer or client device, for example, a client device serial number, a customer phone number, an Internet Protocol Address, or a network interface code. A password may also be associated with the unique client identifier. In a preferred embodiment, the unique client identifier is a client device serial number which may or may not be coupled with a password.
The client device may be coupled to the server via at least one communications or data network, such as a packet-switched network. In a preferred embodiment, communication between the client device and the server is by HTTP and is implemented via TCP/IP protocol.
The server is adapted to provide customer location identifying information corresponding to the unique client identifier. The customer location identifying information can be any information that associates the customer or client device with a particular geographic area, for example, a zip code, state, municipality, street address, latitude and longitude coordinates, global positioning system coordinates, or information defining an area based on certain market characteristics. In a preferred embodiment, location identifying information is latitude and longitude coordinates associated with the customer's location. In a further embodiment, demographic information, such age, employment status, gender, income, and/or marital status, may also be associated with the unique client identifier.
In another embodiment, service provider phone numbers may correspond to the location identifying information if the service provider phone numbers are associated with the same zip code as reflected in the location identifying information. In yet another embodiment, service provider phone numbers correspond to the location identifying information if the service provider phone numbers are associated with the same specific information as reflected in the location identifying information. The specific information can include information such as zip code, state, municipality, street address, latitude and longitude coordinates, global positional system coordinates, and information defining an area based on certain market characteristics. In still another embodiment, service provider phone numbers may correspond to the location identifying information if the service provider phone numbers are associated with a first zip code that is included within a first group of zip codes that also includes a second zip code reflected in the location identifying information. In yet another embodiment, the service provider phone numbers may correspond to the location identifying information if the service provider phone numbers are associated with a geographic area that is also associated with the location identifying information. The geographic area may be defined by a predetermined set of market characteristics that may include certain demographic information, such as average earnings per capita, the average home price in the geographic area under consideration, or shopping or delivery or other affinity areas.
The next step includes receiving service provider information corresponding to entries of a contact list 8040. The entries include service provider phone numbers corresponding to the customer location identifier. In a preferred embodiment, the entries include the names and business categories of the service providers. In another embodiment, the entries include additional information about the service providers such as service provider addresses, service provider advertisements, information specific to service provider businesses, links to service provider websites, and links to service provider phone numbers.
In one embodiment, only those entries that are not duplicative of entries already received by the client device are received. In another embodiment, only those entries which are not duplicative of entries previously sent to the client device are received.
The final step includes populating entries of a contact list 8060. In a preferred embodiment, all entries are received by the client device, but only those entries which were not previously received or previously used to populate the contact list will be use to populate the contact list. In one embodiment, the client device searches the contact list for entries matching the entries received from the service provider database. Only those entries that are not already included in the contact list will be used to populate the contact list. In another embodiment, the client device searches the contact list for entries that were previously included in the contact list but were subsequently deleted or hidden by the customer. Such entries will not be used to populate the contact list.
In a further embodiment, the client device searches the contact list to determine if it contains any service provider entries that were not received pursuant to the most recent update. In one embodiment, such entries will be removed from the contact list. In another embodiment, the client device will further determine if such entries have been manipulated by the customer (e.g., contain flags), and if they have, they will not be removed.
Although different embodiments of the present invention have been discussed, those skilled in the art will appreciate that variations may be made thereto without departing from the principles of the present invention. By way of example, the techniques described above may be used to populate the above-referenced service provider segment with specific advertisements. In addition, although the preferred embodiment has been described, different embodiments may be designed which do not include all of those features, and yet still fall within the spirit and scope of the present invention.
This application claims the benefit under 35 U.S.C. § 120 of U.S. Provisional Application No. 60/909,896, filed Apr. 3, 2007, the entirety of which is incorporated herein by reference.
| Number | Date | Country | |
|---|---|---|---|
| 60909896 | Apr 2007 | US |